Skip to main content

sim/
music_algorithm_exports.rs

1/// Deterministic numeric signal contracts and their loadable runtime library.
2///
3/// The SDK intentionally exposes the reusable transform boundary, not the
4/// crate's implementation modules or cookbook helpers.
5#[cfg(feature = "signal")]
6pub mod signal {
7    pub use sim_lib_numbers_signal::{
8        Direction, LengthPolicy, Normalization, PaddingPolicy, PlacementPolicy, SignConvention,
9        SignalBuffer, SignalError, SignalNumbersLib, SignalView, SpectrumPacking, Stride,
10        TransformKind, TransformPlan, TransformPrecision, TransformReport, TransformResources,
11        call_signal_transform, reference_dft, signal_transform_symbol, transform,
12        transform_in_place,
13    };
14}
15
16/// Bounded deterministic search controls, extension traits, results, and
17/// receipts.
18#[cfg(any(feature = "discrete-search", feature = "music-algorithms"))]
19pub mod discrete_search {
20    pub use sim_lib_discrete_search::{
21        NeverInterrupt, SearchControl, SearchError, SearchInterrupt, SearchOrder, SearchProblem,
22        SearchReceipt, SearchRun, SearchStatus, SearchStep, WorkCosts, solve,
23    };
24}
25
26/// Exact musical ratio values, policies, analysis, and bounded relation
27/// contracts.
28///
29/// Compatibility-only mean dialects stay crate-local to direct users of
30/// `sim-lib-pitch-ratio`; the SDK facade presents the stable exact-ratio path.
31#[cfg(any(feature = "pitch-ratio", feature = "music-algorithms"))]
32pub mod pitch_ratio {
33    pub use sim_lib_pitch_ratio::{
34        ApproximationStrategy, FactorVector, PitchRatio, PitchRatioError, RatioApproximation,
35        RatioChordReport, RatioCoverage, RatioPolicy, RatioRelation, RatioRelationPath,
36        analyze_ratio_chord, analyze_ratio_chord_with_root, approximate_ratio,
37        approximate_ratio_with_strategy, expand_ratio_relation_tree, rank_ratio, ratio_coverage,
38        ratio_interval_matrix, root_normalized_tones, unrank_ratio,
39    };
40}
41
42/// Exact consonance reports and identity-preserving additive completion.
43#[cfg(any(feature = "music-consonance", feature = "music-inference"))]
44pub mod music_consonance {
45    pub use sim_lib_music_consonance::{
46        Addition, AdditionKind, ChordAddition, CompletionConstraints, CompletionError,
47        CompletionProvenance, CompletionRequest, CompletionResult, ConsonanceError,
48        ConsonancePatch, ConsonancePolicy, ConsonanceReport, ConstraintError, DoublingAddition,
49        MetricBounds, MetricFamily, MetricReport, MetricThreshold, MusicConsonanceLib,
50        NoteAddition, OrnamentAddition, PatchError, PedalAddition, PitchRangeConstraint,
51        PreservationConstraints, Provenance, ProvenanceKind, SoundingNote, SoundingWindow,
52        StyleConstraints, TimeSpan, VoiceAddition, WindowSonance, apply_patch, complete_staff,
53        evaluate, evaluate_midi_timeline, evaluate_staff, install_music_consonance_lib,
54        music_consonance_evaluate_symbol, remove_patch, slice_sounding_windows, sounding_windows,
55        staff_content_key,
56    };
57}
58
59/// Exact counterpoint analysis, bounded generation, and stretto graph
60/// contracts.
61///
62/// The SDK omits the generator's compiled CSP planner records; hosts compose
63/// through rule data, generation policy, bounded search controls, and receipts.
64#[cfg(any(feature = "music-counterpoint", feature = "music-inference"))]
65pub mod music_counterpoint {
66    pub use sim_lib_music_counterpoint::{
67        AlignmentWindow, AnalysisProvenance, CadencePolicy, ContrapuntalForm,
68        CounterpointGeneration, CounterpointGenerationPolicy, CounterpointGenerationReceipt,
69        CounterpointGenerationResult, CounterpointReport, DissonanceContext, DissonanceRules,
70        DiversityPolicy, DurationRules, GenerationError, IntervalRules, MetricEvidence, Motion,
71        MotionDirection, MotionRules, MusicCounterpointLib, NoteEvidence, OverlapEvidence,
72        PitchRange, RuleError, RuleSet, Species, StrettoChain, StrettoCluster,
73        StrettoCompatibility, StrettoCouple, StrettoEntry, StrettoError, StrettoFusion,
74        StrettoGraph, StrettoPolicy, StrettoRejection, StrettoTransform, TimeSpan, Violation,
75        VoiceEvidence, VoiceRules, analyze_counterpoint, cluster_overlap, fuse_stretto_entries,
76        generate_counterpoint, install_music_counterpoint_lib, materialize_transform,
77        music_counterpoint_analyze_symbol, music_counterpoint_generate_symbol,
78        music_stretto_graph_symbol, stretto_graph,
79    };
80}