Files
khodowany ffdbe48258
ci / checks (push) Failing after 43m34s
Validation
2026-10-05 20:33:14 -05:00

300 lines
4.9 KiB
JSON

{
"version": 1,
"provenance": "Generic target-relative approach/enclosure operators. Target-guided review motivated an explicitly separated enclosure and spelling-independent function. No pitches, chord progressions, bar schedules or extracted phrase templates are stored.",
"license": "MIT",
"patterns": [
{
"id": "below",
"kind": "approach",
"semitones": [
-1
],
"durations": [
"1/2"
],
"gap": "0"
},
{
"id": "above",
"kind": "approach",
"semitones": [
1
],
"durations": [
"1/2"
],
"gap": "0"
},
{
"id": "upper_lower",
"kind": "enclosure",
"semitones": [
1,
-1
],
"durations": [
"1/2",
"1/2"
],
"gap": "0"
},
{
"id": "lower_upper",
"kind": "enclosure",
"semitones": [
-1,
1
],
"durations": [
"1/2",
"1/2"
],
"gap": "0"
},
{
"id": "ascending",
"kind": "connection",
"semitones": [
-2,
-1
],
"durations": [
"1/2",
"1/2"
],
"gap": "0"
},
{
"id": "descending",
"kind": "connection",
"semitones": [
2,
1
],
"durations": [
"1/2",
"1/2"
],
"gap": "0"
},
{
"id": "delayed_below",
"kind": "approach",
"semitones": [
-1
],
"durations": [
"1/2"
],
"gap": "1/2"
},
{
"id": "mapped_upper_lower",
"kind": "enclosure",
"semitones": [
2,
-1
],
"durations": [
"1/2",
"1/2"
],
"gap": "0",
"diatonic_indices": [
0
]
},
{
"id": "lower_mapped_upper",
"kind": "enclosure",
"semitones": [
-1,
2
],
"durations": [
"1/2",
"1/2"
],
"gap": "0",
"diatonic_indices": [
1
]
},
{
"id": "separated_lower_upper",
"kind": "enclosure",
"semitones": [
-1,
2
],
"durations": [
"1/2",
"1/2"
],
"internal_gaps": [
"1/2"
],
"gap": "0",
"diatonic_indices": [
1
]
},
{
"id": "chromatic_scalar_up",
"kind": "approach",
"semitones": [
-3,
-2
],
"durations": [
"1/2",
"1/2"
],
"gap": "0",
"diatonic_indices": [
1
]
},
{
"id": "chromatic_scalar_down",
"kind": "approach",
"semitones": [
3,
2
],
"durations": [
"1/2",
"1/2"
],
"gap": "0",
"diatonic_indices": [
1
]
},
{
"id": "short_chromatic_up",
"kind": "connection",
"semitones": [
-2,
-1
],
"durations": [
"1/4",
"1/4"
],
"gap": "0",
"difficulty": "sixteenth"
},
{
"id": "short_chromatic_down",
"kind": "connection",
"semitones": [
2,
1
],
"durations": [
"1/4",
"1/4"
],
"gap": "0",
"difficulty": "sixteenth"
},
{
"id": "triplet_chromatic_up",
"kind": "connection",
"semitones": [
-2,
-1
],
"durations": [
"1/3",
"1/3"
],
"gap": "0",
"difficulty": "triplet"
},
{
"id": "triplet_chromatic_down",
"kind": "connection",
"semitones": [
2,
1
],
"durations": [
"1/3",
"1/3"
],
"gap": "0",
"difficulty": "triplet"
},
{
"id": "quarter_below",
"kind": "approach",
"semitones": [
-1
],
"durations": [
"1"
],
"gap": "0"
},
{
"id": "quarter_above",
"kind": "approach",
"semitones": [
1
],
"durations": [
"1"
],
"gap": "0"
}
],
"blues": [
{
"id": "minor_to_major_third",
"degree": 3,
"alter": -1,
"target_degree": 3
},
{
"id": "flat_fifth_to_fifth",
"degree": 5,
"alter": -1,
"target_degree": 5
}
],
"max_approach": "3/2",
"delayed_approach": {
"id": "bounded_semitone_resolution",
"max_note": "1/2",
"deadline": "4",
"steps": [
-1,
1
],
"arrivals": [
"1",
"3/2",
"2",
"5/2",
"3",
"7/2",
"4"
],
"holds": [
"1/2",
"1"
]
},
"passing": {
"id": "chromatic_passing",
"max_note": "1/2",
"steps": [
-1,
1
],
"endpoints": "Source-key/chord motion or separately validated colors; contiguous same-direction semitones."
}
}