bpm 105
meter 4
unit 1/4
key a4 harm
mode diatonic
Sweep ::= .3 .5 1 3 5 '1 '3 '5 ''1 ''3 ''5
Fall ::= ''7b/2 ''6/2 ''5/2 ''4/2 ''3/2 ''2/2 ''1/2 '7/2
'6/2 '5/2 '4/2 '3/2 '2/2 '1/2 7/2
6/2 5/2 4/2 3/2 2/2 1/2
.7/2 .6/2 .5/2 .4/2 .3/2 .2/2
Chrom ::= a#3 b3 c4 c#4 d4 d#4 e4 f4 f#4 g4 g#4 a4 a#4 b4 c5 c#5 d5 d#5 e5 f5 f#5 g5 g#5
Cadenza ::= - _4 .1 .1 _12
Sweep[:8]/2 ''1 _6 '7b/2 Fall[8:] .1 _6
Sweep[:9]/2 ''3 _6 Fall[5:] .1 _6
Sweep[:10]/2 ''5 _6 Fall[3:] .1 _6
Sweep/2 '''1 _6 Fall .1 _3
Chrom/2 a5/2 Chrom~/2
Cadenza
Detach ::= $1 /2 - /2
MotoLine ::= .1 .3 .5 .3 .2 .4 .5 .4 .3 1 .7b .6 .5 .4 .3 .2
Moto ::= Detach(MotoLine)
TurnA ::= .1 .3# .5 .3# .1 .4 .6 .4 ..7b .2
.1 _6 {.3, .5} {3, '1} _7/2 - _9/2
Moto Moto Detach(TurnA)
TurnB ::= .6 .2 ..7b .3 .5 .3
LiftLine ::= ..7 .2 .6 .4 .3 .1 1 .4# .5 .7 2 5 7 '2 '4 '5
Lift ::= Detach(LiftLine)
CadA ::= 1 3# 5 3# '1 7b 6 5 3# 4
bpm 166.75
Detach(TurnB) Lift Moto@12 Moto@12 Detach(CadA)
key a4 min
assert .7 == g4
Spill ::= Detach('2 '1 7 6 5)
Rung ::= Detach(.6 .5 .7 3)
Drop ::= Detach(6 '2 '1 7 6 5 4 2)
assert Rung@~-4 == Detach(.2 .1 .3 .6)
assert Drop \8 {6#/2} \12 {4#/2} == Detach(6 '2 '1 7 6# 5 4# 2)
assert Drop \14 {3/2} @~-3 == Detach(3 6 5 4 3 2 1 .7)
Spill Detach(4 3 2) Detach(1 .7 .6# .7 1)
Rung Rung@~-1 Rung@~-2 Rung@~-3 Rung@~-4
Detach(.1 ..7# .3 .6 ..7# ..7 .2 .6 .2 .3 .5 .7 3 .4 .6)
Detach(2 4 .5 .7 3 5 .6 1 3 6 .6# 4# 3 1 .7 7)
Detach(5 3 .7 6 4 2 1 '3)
Spill Detach(1)
Drop \8 {6#/2} \12 {4#/2}
Drop \12 {4#/2} @~-1
Drop @~-2
Drop \14 {3/2} @~-3
Detach(.6# 1)
key c4 maj
DimLine ::= c5 d#5 f#5 a5 c6
Dim ::= Detach(DimLine)
Cross ::= Detach(g3 c4 b3 g4 f4 d4 c4) Detach(e4)
Wheel ::= Detach(e4 c4 bb3 g4 e4 bb3 a3 f4)
Detach(c4 a3 g3 e4 bb3 g3 a3 f5)
Detach(c5 a4 g4 e5 c#5 g4 f4 d5)
Detach(a4 f4 e4 c#5 g4 e4 f4) Detach(d5)
assert Wheel[3:] == Detach(a4 f4 e4 c#5 g4 e4 f4 d5)
assert Chrom[22:] == g#5
assert Cross \0 {a4/2} \2 {g4/2} == Detach(a4 g4 b3 g4 f4 d4 c4 e4)
Dim Detach(f#5)
Detach(''1 '5 '3 '1 5 3 1 .5)
Detach('7 '5 '2 7 5 2 .7 .5) Detach(.6)
Detach(Chrom~)@4
Detach(1 3)
Cross \0 {a4/2} \2 {g4/2}
Cross
Cross \14 {g4/2}
Wheel[:3]
Wheel[3:] Wheel[:3]@5
assert Wheel[3:] == Wheel[3:4] Detach(d5)
assert Cross == Cross[:1] Detach(e4)
assert Chrom[22:]@4 == c6
Wheel[3:]@5 Wheel[:3]@10
Wheel[3:4] \12 {d4/2} @10
Detach(Chrom~)@4
Detach(1 3b)
Cross[:1] \0 {g#4/2} \2 {g4/2}
Detach(Chrom~) Detach(g#3)
Detach(f4 d#4 c4 g3)
Detach(d#4 c#4 a#3 g#3) Detach(g#4 d#4 c4 b3)
Detach(f#4 d#4 c4 a#3) Detach(a#4 f4 c#4 b3)
Detach(g#4 f4 d4 c4) Detach(c5 g4 d#4 c#4)
Detach(a#4 g4 c#4 a#3 g4)
key c#5 maj
assert .1 == c#4
assert MotoLine[:9] == .1 .3 .5 .3 .2 .4 .5 .4 .3
assert MotoLine[:4]@~1 == .2 .4 .6 .4
Churn ::= Detach(.1 .3 .5 .3 .2 .4 .5 .4 .3)
Detach(1 .7 .6 .5 .4 .3 .2)
Detach(.1 .3 .5 .3)
Detach(.1 .5 .7b .5 .2b .5 .7b .5)
Detach(.2 .4 .6 .4)
Detach(e4 c5 g4 e5 c5 a#5 g#5 f5 c5 g#4 e4 f4 g#4 f4 d#4 c#4)
Detach(c4 a#3 a4 a#4 c#5 a#4 g#4 g4 f4 d#4 d5 d#5 g5 d#5 g#5 d#5)
Detach(c5 g#4 g4 g#4 f#4 d#4)
Churn
Churn@2
Detach(.4 2 .7 .4 .3 3 1 .6 .5 3)
key b4 maj
assert .1 == b3
assert 3b == d5
assert .1 .3 == b3 d#4
Detach(3b .6 .5 5 3 .7 .5 4 2 .7 .5 .4 .2 ..7 .1 .3)
key b4 maj
Climb ::= Detach(.1 .3 .5 1 3 5 '1 '3)
Reach ::= Detach(b4 e5 b4 a4)
Tumble ::= Detach(a#5 g5 d#5 f#5 b5 f#5 d5 f5)
assert .1 Sweep[:7] == .1 .3 .5 1 3 5 '1 '3
assert Climb@~-2 == Detach(g#3 b3 d#4 g#4 b4 d#5 g#5 b5)
assert Moto[:18] == Detach(.1 .3 .5 .3 .2 .4 .5 .4 .3)
Climb[4:]
Detach(d#4 c#5 a#4 g4 d#4 c#4 a#3 g3)
Climb@~-2
Moto[:18]@5
Reach Detach(c5 e5 c5 a#4) Reach@2 Detach(d#5 f#5 d#5 c5)
Reach@4 Detach(e5 a#5 e5 d#5) Reach@7 Detach(g#5 b5 g#5 e5)
Detach(g5) Tumble Tumble@-2
Tumble@-4
Tumble \12 {d#5/2} \14 {f#5/2} @-6
Tumble@-7
Tumble \14 {f#5/2} @-9
bpm 164.75
key e5 maj
Hinge ::= Detach(d5 a4 f4 a4 d#5 a4 e4 g#4 b4 e5 g#5 b5 e6 g#6)
assert Hinge[12:] == Climb
Hinge Detach(f5 a5)
key a4 harm
assert 7 == g#5
assert Hinge@12 == Detach('4 '1 6 '1 '4# '1 5 7 '2 '5 '7 ''2 ''5 ''7)
Veer ::= .1 .3 .5 .3 .2 .4 .5 .4 .3 1 .7b .6 .5 .4 .3# .1
assert Veer == MotoLine \14 {.3#} \15 {.1}
assert Drop@~3 == Detach('2 '5 '4 '3 '2 '1 7 5)
assert Detach(DimLine~)@-3 == Detach(a5 f#5 d#5 c5 a4)
assert Sweep[:7]~ == '3 '1 5 3 1 .5 .3
Hinge@12
Moto@24 Detach(Veer)@24
Detach('4 '7b '6 '5 '4 '3 '2 7b)
Drop@~4
Drop@~3
Detach('1 '4 '3 '2 '1 7b 6 5)
Detach(d#5 c6) Detach(DimLine~)@-3 Detach(d#4)
Detach('3 '1 5 3 1 .5 .3 .1)
Detach('2 7 4 2 .7 .4 .2 ..7)
Detach(.1) Detach(Chrom~)@1 Detach(.1 .3)
key a4 harm
assert ..7 == g#3
Thirds ::= .2 .4 .3 .5
Spin ::= Detach(Thirds Thirds@~-2)
assert Thirds@~-2 == ..7 .2 .1 .3
assert Spin == Detach(b3 d4 c4 e4 g#3 b3 a3 c4)
Cross[:1] \0 {g#4/2} \2 {g4/2} @-3 Detach(.3)
Spin*3
Detach(Thirds ..7 .2) .1 _12
Sweep[:8] \0 {.3#} \3 {3#} \6 {'3#} /2 ''1 _6
'7/2 Fall[8:] \0 {'6#/2} \3 {'3#/2} \7 {6#/2} \10 {3#/2} \14 {.6#/2} \17 {.3#/2}
.1 _6
Sweep[:8] \0 {.3#} \3 {3#} \6 {'3#} /2
bpm 105.25
key a4 maj
assert Sweep[:3] == c#4 e4 a4
assert Fall[5:9] == b6/2 a6/2 g#6/2 f#6/2
''1/2 ''3 _6 Fall[5:] .1 _6
Sweep[:10]/2 ''5 _6 Fall[3:] .1 _6
Sweep/2 '''1 _6
assert Fall[0:1] == g7/2
assert Fall \0 {''7/2} == g#7/2 Fall[1:]
assert {.5, .3} {'1, 3} == {c#4, e4} {c#5, a5}
Fall \0 {''7/2} .1 _3
Chrom/2 a5/2 Chrom~/2
.1 _6 {.5, .3} {'1, 3} _11/2