|
| enum class | ChordQuality : std::uint8_t {
major = 0
, minor = 1
, diminished = 2
, augmented = 3
,
dominant7 = 4
, major7 = 5
, minor7 = 6
, half_diminished7 = 7
,
suspended2 = 8
, suspended4 = 9
, power = 10
, octave = 11
} |
| enum class | ChordExtension : std::uint8_t { ninth = 0
, eleventh = 1
, thirteenth = 2
} |
| enum class | ChordSuspension : std::uint8_t { second = 0
, fourth = 1
} |
| enum class | ChordAlteration : std::uint8_t {
flat_fifth = 0
, sharp_fifth = 1
, flat_ninth = 2
, sharp_ninth = 3
,
sharp_eleventh = 4
, flat_thirteenth = 5
} |
| enum class | MarkovError : std::uint8_t {
none = 0
, empty_model
, capacity_exceeded
, weight_count_mismatch
,
empty_transition_row
} |
| enum class | PatternError : std::uint8_t {
none = 0
, empty_pattern
, capacity_exceeded
, pulses_exceed_steps
,
invalid_probability
, invalid_mode
, unsupported_recipe_version
} |
| enum class | PatternWalkerMode : std::uint8_t { forward = 0
, reverse
, ping_pong
, random
} |
| enum class | CellularBoundary : std::uint8_t { fixed_off = 0
, wrap
} |
| enum class | PatternEventRole : std::uint8_t { anchor = 0
, primary
, ornament
, fill
} |
| | Describes how an event participates in density, fill, and morph operations. More...
|
| enum class | PatternDevelopmentError : std::uint8_t {
none = 0
, capacity_exceeded
, zero_event_id
, duplicate_event_id
,
duplicate_onset
, invalid_role
, accent_out_of_range
, invalid_set_operation
,
conflicting_event
, density_out_of_range
, density_below_anchor_count
, invalid_region
,
morph_amount_out_of_range
} |
| | Result codes returned by bounded pattern-development operations. More...
|
| enum class | PatternSetOperation : std::uint8_t { set_union = 0
, intersection
, difference
, symmetric_difference
} |
| | Supported onset-keyed set operations. More...
|
| enum class | PitchClass : std::uint8_t {
c = 0
, c_sharp = 1
, d = 2
, d_sharp = 3
,
e = 4
, f = 5
, f_sharp = 6
, g = 7
,
g_sharp = 8
, a = 9
, a_sharp = 10
, b = 11
} |
| enum class | NamedScale : std::uint8_t {
major = 0
, natural_minor = 1
, dorian = 2
, phrygian = 3
,
lydian = 4
, mixolydian = 5
, harmonic_minor = 6
, melodic_minor = 7
,
major_pentatonic = 8
, minor_pentatonic = 9
, locrian = 10
, chromatic = 11
,
blues = 12
, whole_tone = 13
} |
| enum class | RhythmRelationship : std::uint8_t { coincident = 0
, complementary
, independent
} |
| enum class | RhythmLengthMapping : std::uint8_t { wrap = 0
, proportional
} |
| enum class | RhythmCollisionPolicy : std::uint8_t { allow_source_overlap = 0
, avoid_source_overlap
} |
| enum class | RhythmDensityPolicy : std::uint8_t { preserve_candidates = 0
, exact_onsets
} |
| enum class | RhythmRelationshipError : std::uint8_t {
none = 0
, empty_source
, empty_target
, capacity_exceeded
,
invalid_relationship
, invalid_length_mapping
, invalid_collision_policy
, invalid_density_policy
,
insufficient_candidates
} |
| enum class | NoteLetter : std::uint8_t {
c = 0
, d = 1
, e = 2
, f = 3
,
g = 4
, a = 5
, b = 6
} |
| enum class | AccidentalPolicy : std::uint8_t { prefer_sharps = 0
, prefer_flats = 1
, minimize_accidentals = 2
} |
| enum class | VoicingMode : std::uint8_t {
closed = 0
, open = 1
, drop2 = 2
, drop3 = 3
,
spread = 4
} |
|
| constexpr std::optional< DiatonicChord > | diatonic_chord (const Scale &scale, std::size_t degree, std::size_t tone_count=3) noexcept |
| constexpr std::optional< ChordRecognitionList > | recognize_chord (PitchClassSet pitch_classes, std::optional< PitchClass > bass=std::nullopt) |
| constexpr std::optional< ChordRecognitionList > | recognize_chord (std::span< const int > midi_pitches) noexcept |
| template<std::size_t MaxSteps = 64> |
| constexpr PatternResult< MaxSteps > | euclidean_pattern (std::size_t steps, std::size_t pulses, std::int64_t rotation=0) noexcept |
| template<std::size_t MaxSteps = 64> |
| constexpr PatternResult< MaxSteps > | materialize_pattern (EuclideanPatternRecipe recipe) noexcept |
| template<std::size_t MaxSteps = 64> |
| constexpr PatternResult< MaxSteps > | cellular_evolve (const BinaryPattern< MaxSteps > &input, std::uint8_t rule, CellularBoundary boundary=CellularBoundary::wrap) noexcept |
| template<std::size_t MaxSteps = 64> |
| constexpr ShiftRegisterResult< MaxSteps > | looping_shift_register (const BinaryPattern< MaxSteps > &input, MutationChance chance, std::uint64_t random_word) noexcept |
| constexpr PatternEventId | make_pattern_event_id (std::uint64_t seed, timebase::RandomCoordinate coordinate) noexcept |
| | Produces a stable nonzero ID from a seed and musical coordinate.
|
| template<std::size_t MaxEvents = 64> |
| constexpr PatternDevelopmentResult< MaxEvents > | pattern_set (const DevelopmentPattern< MaxEvents > &lhs, const DevelopmentPattern< MaxEvents > &rhs, PatternSetOperation operation) noexcept |
| | Applies an onset-keyed set operation to two patterns.
|
| template<std::size_t MaxEvents = 64> |
| constexpr PatternDevelopmentResult< MaxEvents > | select_pattern_density (const DevelopmentPattern< MaxEvents > &source, DensitySelection selection) noexcept |
| | Selects an exact event count while retaining every anchor.
|
| template<std::size_t MaxEvents = 64> |
| constexpr PatternDevelopmentResult< MaxEvents > | apply_regional_fill (const DevelopmentPattern< MaxEvents > &base, const DevelopmentPattern< MaxEvents > &candidates, RegionalFillSelection selection) noexcept |
| | Applies candidate events within a selected half-open region.
|
| template<std::size_t MaxEvents = 64> |
| constexpr PatternDevelopmentResult< MaxEvents > | morph_patterns (const DevelopmentPattern< MaxEvents > &a, const DevelopmentPattern< MaxEvents > &b, PatternMorphSelection selection) noexcept |
| | Morphs two patterns using exact integer interpolation and stable thresholds.
|
| constexpr bool | is_valid (PitchClass pitch_class) noexcept |
| constexpr std::optional< PitchClass > | pitch_class_from_index (int index) noexcept |
| constexpr PitchClass | wrap_pitch_class (int index) noexcept |
| constexpr PitchClass | transpose (PitchClass pitch_class, int semitones) noexcept |
| constexpr std::optional< PitchClassSet > | scale_intervals (NamedScale scale) noexcept |
| template<std::size_t MaxSteps = 64> |
| constexpr RhythmRelationshipResult< MaxSteps > | derive_rhythm_relationship (const BinaryPattern< MaxSteps > &source, const RhythmRelationshipConfig &config) noexcept |
| constexpr std::string_view | spelling_name (SpelledPitchClass spelling) noexcept |
| constexpr std::optional< SpelledPitchClass > | spell_pitch_class (PitchClass pitch_class, AccidentalPolicy policy) noexcept |
| constexpr std::optional< SpelledChord > | spell_chord (PitchClass root, const ChordFormula &formula, AccidentalPolicy policy) |
| constexpr std::optional< SpelledChord > | spell_chord (const Chord &chord, AccidentalPolicy policy) noexcept |
| std::optional< Voicing > | voice_chord (int root_midi, const ChordFormula &formula, VoicingConstraints constraints={}) |
| std::optional< Voicing > | minimum_motion_voice_leading (std::span< const int > previous, PitchClass target_root, const ChordFormula &formula, MidiRange range={}) |