1#![forbid(unsafe_code)]
9#![deny(missing_docs)]
10
11mod additive;
12mod allowance;
13mod anchor;
14mod array;
15mod audition;
16mod candidate_filter;
17mod canon;
18mod chromatic;
19mod completion;
20mod cycle;
21mod deploy;
22mod derived;
23mod error;
24mod event;
25mod evidence;
26mod extract;
27mod hypothesis;
28mod integral;
29mod invariant;
30mod modal;
31mod nesting;
32mod order;
33mod origin;
34mod parameter;
35mod pitch_map;
36mod plan;
37mod practice;
38mod practice_builtin;
39mod reading;
40mod realization;
41mod realizer;
42mod referential;
43mod registry;
44mod render;
45mod report;
46mod spine;
47mod strict;
48mod techniques;
49mod time_point;
50
51pub use additive::AdditiveStaffPatch;
52pub use allowance::{
53 ReferentialSubsetAllowance, SerialAllowanceKind, SerialAllowanceMatch,
54 SerialCompletionAllowances,
55};
56pub use anchor::ReferentialEmphasis;
57pub use array::{
58 AggregateArrayReport, AggregatePartitionReport, ColumnPartition, PartitionCoverageReport,
59 SerialArray, SerialArrayError, SerialArrayRow, VerticalAggregateRequirement,
60};
61pub use audition::{
62 SerialSurfaceError, lower_serial_score, render_serial_audition_score, write_serial_smf,
63};
64pub use canon::{
65 CanonDeployment, CanonError, CanonOrchestration, CanonRealizationEvent, CanonSpec,
66 CanonSymmetryCertificate, CanonSymmetryRequirement, CanonVoiceProfile, CanonVoiceSpec,
67 build_canon,
68};
69pub use chromatic::{ChromaticSerialRealizer, strict_chromatic_realizer_id};
70pub use completion::{
71 AcceptedSerialAddition, AcceptedSerialCategory, AcceptedSerialNote, AdditionKind,
72 ChordAddition, CompletionCandidate, CompletionError, CompletionProvenance, CompletionRequest,
73 CompletionResult, DoublingAddition, NoteAddition, OrnamentAddition, PedalAddition,
74 PitchRangeConstraint, SerialCompletionError, SerialCompletionRequest, SerialCompletionResult,
75 VoiceAddition, complete_serial,
76};
77pub use cycle::{
78 CyclicOrder, CyclicProjection, CyclicProjectionSpec, ParameterTrackKind, project_cyclic_order,
79};
80pub use deploy::{
81 AggregateRotationSpec, InterlockingPartitionSpec, MelodyAccompanimentSpec, SerialDeployError,
82 SerialDeployer, SerialDeployerKind, SerialDeployerParameter, SerialDeployerSpec,
83 SimultaneousFormsSpec, TechniquePlan, TechniquePlanBuilder, VerticalBlocksSpec,
84 complete_horizontal_statement, interlocking_partition, melody_accompaniment_distribution,
85 motivic_partition, schoenberg_partitioned, simultaneous_forms, strict_aggregate,
86 verticalize_selected_blocks,
87};
88pub use derived::{
89 DerivedCellDeployment, DerivedCellOccurrence, InvariantCertificate, InvariantFormCandidate,
90 InvariantFormCandidates, InvariantRequirement, SymmetryCertificate, SymmetryRequirement,
91 UnsatisfiedInvariantRequest, deploy_derived_cells, forms_with_invariant,
92};
93pub use error::SerialPlanError;
94pub use event::{
95 EventPlacement, OrdinalRef, PlannedSerialEvent, RowInstanceId, SerialEventId,
96 SimultaneousGroupId, StructuralLicense, StructuralReadingId, VoiceId,
97};
98pub use evidence::{ExtractionEvidence, ExtractionOutcome};
99pub use extract::{
100 SerialExtractionError, SerialExtractionRequest, SerialExtractionServices,
101 extract_serial_hypotheses,
102};
103pub use hypothesis::{
104 RankedSerialHypothesis, SerialAliasEvidence, SerialObservation, SerialObservationBlock,
105 SerialReadingOrder, SerialStableRank, SerialTimeSpan,
106};
107pub use integral::{
108 ArticulationTrack, BoundParameterTrack, DurationTrack, DynamicsTrack, ErasedParameterBinding,
109 Exhaustion, IntegralError, IntegralPlan, ParameterOrdinalLedgerEntry, ParameterProjection,
110 ParameterStep, ParameterTrack, RegisterTrack, TimbreTrack,
111};
112pub use invariant::{EvidenceId, InvariantLedger, InvariantLedgerEntry, InvariantStatus, WaiverId};
113pub use modal::{
114 MarkedChromaticInflectionRealizer, ModalDegreeCycleRealizer, NearestScaleToneRealizer,
115 NonPitchSpineRealizer,
116};
117pub use nesting::{
118 NestedSerialValue, NestingError, NestingExpansion, NestingLimits, expand_nested,
119 rotate_sequence_left,
120};
121pub use order::PrecedenceGraph;
122pub use origin::{SerialOrigin, SerialRole};
123pub use parameter::{ParameterAlphabet, ParameterError, ParameterSeries, ParameterValue};
124pub use pitch_map::MapWitness;
125pub use plan::SerialPlan;
126pub use practice::{
127 BuiltInPracticeRule, DeclaredWaivers, PracticeId, PracticeRule, PracticeRuleId,
128 PracticeRuleKind, PracticeRuleParameter, PracticeRuleSpec, SerialPractice,
129};
130pub use reading::SerialReading;
131pub use realization::{
132 RealizedSerialEvent, RealizedSerialNote, RealizedSerialOrigin, SerialRealization,
133 StrictRealizationError,
134};
135pub use realizer::{
136 EventSound, RealizationContext, RealizationService, RealizationServices, RealizerId,
137 RegisterBounds, SerialRealizer, SimultaneousRenderPolicy, StrictEventSpec, StrictPitchLayout,
138 StrictRealizationContext, TiePolicy, VoiceBounds,
139};
140pub use referential::{
141 ReferentialClaim, ReferentialContextReport, ReferentialEvidence, ReferentialEvidenceKind,
142 ReferentialRatioSummary, ReferentialReport, ReferentialRequest, analyze_referential_subset,
143};
144pub use registry::{SerialRealizerRegistry, default_realizer_registry};
145pub use render::{
146 SerialRenderOptions, render_serial_piano_roll, render_serial_score, render_serial_staff,
147};
148pub use report::SerialPracticeReport;
149pub use spine::{
150 ChromaticAggregateIdentity, SerialRepeatedDegree, SerialSonanceContext, SerialSpineCollision,
151 SerialSpineEntry, SerialSpineKind, SerialSpineLabel, SerialSpineReport,
152};
153pub use strict::realize_strict;
154pub use time_point::{TimePointAlphabet, TimePointError, TimePointRow, TimePointSystem};
155
156pub static RECIPES: sim_cookbook::EmbeddedDir =
158 include!(concat!(env!("OUT_DIR"), "/cookbook_recipes.rs"));
159
160#[cfg(test)]
161mod tests;
162#[cfg(test)]
163mod tests_array_time_point;
164#[cfg(test)]
165mod tests_audition;
166#[cfg(test)]
167mod tests_completion;
168#[cfg(test)]
169mod tests_deploy;
170#[cfg(test)]
171mod tests_extract;
172#[cfg(test)]
173mod tests_integral;
174#[cfg(test)]
175mod tests_realizer;
176#[cfg(test)]
177mod tests_techniques;