bpm 60
meter 4
unit 1/4
key d4 min
mode diatonic
Lift ::= .6/2 .7/2 1/2
Fall ::= .7 .6 .5
Turn ::= 6 7 5 6
assert Lift == bb3/2 c4/2 d4/2
assert Fall == c4 bb3 a3
assert Turn == bb4 c5 a4 bb4
assert Turn@5 == eb5 f5 d5 eb5
Lift
Fall
Turn
Turn@5
Cry ::= '5 _2 -/2 '4/4 '3/4 '2/4 '1/4 7#/2 '1
Reply ::= 5 _2 -/2 2/2 3/2 .7#/2 1
assert Cry == a5 _2 -/2 g5/4 f5/4 e5/4 d5/4 c#5/2 d5
assert Reply == a4 _2 -/2 e4/2 f4/2 c#4/2 d4
{Cry, Cry@-12} -*3 {Reply, Reply@-12} -*3 {Cry, Cry@-12}@-24 -*3
{ -*4 {c#3, e3, bb3} _8 {d3, a3} _4 -*7 c#3
, -*4 g3 _9 e3 f#3 _2 -*8
, -*4 {c#4, e4} _8 d4 _4 -*7 c#4
, d2 _16 -*8 }
Coil ::= 1 _2/3 2 _2/3 .7 _2/3
Home ::= 1 _2/3 2 _2/3 .7# _2/3
Step ::= 1 2
assert Home == d4 _2/3 e4 _2/3 c#4 _2/3
assert Coil@~2 == f4 _2/3 g4 _2/3 e4 _2/3
assert Coil@~4 == a4 _2/3 bb4 _2/3 g4 _2/3
assert Step@~2 == f4 g4
Wave ::= Home*3 Step Coil@~2*3 Step@~2 Coil@~4*3 5 -*8
Waves ::= Wave 7# Wave@12 '5
{Waves, Waves@-12}
Chain ::= '4 _2/3 '6 _2/3 '2 _2/3
Sharp ::= 2 _2/3 4 _2/3 .7# _2/3
assert Chain == g5 _2/3 bb5 _2/3 e5 _2/3
assert Chain@~-3 == d5 _2/3 f5 _2/3 bb4 _2/3
assert Sharp == e4 _2/3 g4 _2/3 c#4 _2/3
Arc ::= Chain*2 Chain@~-1*2 Chain@~-2*2 Chain@~-3*2 Chain@~-4*2
Chain@~-5*2 Chain@~-6*2 Chain@~-7*2 Chain@~-8*2 Sharp*2
{ Arc -*4 bb4 _17/2 a4/2 g4/2 f4/2 e4/2 d4/2 c#4/2 b3/2 c#4 a3 c#4 e4/2 g4/2 f4 _3 e4
, Arc@-12 -*4 {c#3, e3, g3, bb3} _8 -*12
, -*44 {c#4, e4, g4} _8 -*12
, -*40 d2 _12 -*12 }
Drone ::= -/2 a4*15 a4/2
Tumble ::= 5 6 4 5 Turn@-5 1 4 2 3 1 2 .7#
assert Tumble == a4 bb4 g4 a4 f4 g4 e4 f4 d4 g4 e4 f4 d4 e4 c#4
{ {d2, d3, d4, f4} _4 -*3 a4 '1 '2 '3 '1 '2 Turn@7 '4 '5 '3 '4 '5 '6 '4 '5
Turn@7 Turn@4 Tumble 1 Tumble@-12
, - _17/2 a4*7 a4/2 Drone*3 }
Cascade ::= d4/2 f4/2 bb4/2 f4/2 c4/2 e4/2 a4/2 e4/2 -/2 d4/2 g4/2 d4/2 -/2 c#4/2 e4/2 a4/2
Tread ::= d3 _2 c3 _2 bb2 _2
Spray ::= { Cascade d4 bb4 - a4 - g4
, -*9 f4 - e4 - d4
, -*4 bb3/2 -*3/2 a3/2 -*7/2 a3 - bb3 -
, -*8 Tread }
d3 _2 Spray
{a2, e3, c#4, e4, a4} _2 Spray
Toll ::= { d5 bb5 a4 a5 bb4 g5 {e4, c#5, e5, a5} _2
, - f5 - e5 - d5 -*2 }
{ a4 _9/2 g4/2 f4/2 e4/2 d4/2 c#4/2 b3/2 c#4/2 a3/2 b3/2 c#4/2 d4/2 e4/2 f4/2 g4/2 a4/2 g4/2 f4/2 e4/2 f4/2 d4/2 f4/2 a4/2 c#5/2
d5/2 a4/2 b4/2 c#5/2 d5/2 e5/2 f5/4 g5/4 a5/2 bb5 _2
Toll {Cascade@12, -*4 bb4/2 - _3/2 a4/2 - _3/2} Toll b4 _2
, {a2, e3, c#4, e4} _4 -*42 {b3, d4, f4} _2
, -*22 Tread a2 _2 -*8 Tread a2 _2 g#2 _2 }
{ a4 _4 a4 c#5 e5/2 g5/2 bb5 a5/2 g5/2 f5/2 e5/2 f5/2 e5/2 d5/2 c#5/2 d5/2 c5/2 bb4/2 a4/2 g4/2 f4/2 e4/2 d4/2
, c#5 _3 b4 -*12
, {g2, a3, e4} _4 -*12 }
Rock ::= 7# _2/3 '2 _2/3 7# _2/3 6 _2/3 7# _2/3 6 _2/3
Bend ::= 4 _2/3 6 _2/3 4 _2/3 2 _2/3 4 _2/3 6 _2/3
Reach ::= .7# _2/3 2 _2/3 .7# _2/3 2 _2/3 4 _2/3 2 _2/3
Tremble ::= 4 _2/3 6 _2/3 4 _2/3 6 _2/3 4 _2/3 6 _2/3
assert Rock == c#5 _2/3 e5 _2/3 c#5 _2/3 bb4 _2/3 c#5 _2/3 bb4 _2/3
assert Rock@-6 == g4 _2/3 bb4 _2/3 g4 _2/3 e4 _2/3 g4 _2/3 e4 _2/3
assert Bend[:5] == Rock[:5]@-6
assert Tremble@6 == c#5 _2/3 e5 _2/3 c#5 _2/3 e5 _2/3 c#5 _2/3 e5 _2/3
Descent ::= c#5 _26/3 Rock[1:] Rock*3 Rock@-6
Close ::= Rock@-6*2 Rock@-12*4 Reach*4
{ Descent Bend Close Tremble*2
, {Descent Rock@-6 Close}@-9 Tremble@-15 Tremble@-9
, {g3, c#4, g4, bb4, e5} _8 -*72 }
{ 7# _2/3 6 _2/3 7# _2/3 '2 _2/3 7# _2/3 '2 _2/3 Tremble@6
{c#4, e4, a4, c#5, e5, a5} _4 {d4, f4, a4, d5, f5, a5} _4
{d4, g4, bb4, d5, g5} _4 -*4 {c#4, e4, a4, c#5, e5, g5} _4
-*11 {e4, a4, c#5} {d4, f4, a4, d5} _2 d4 _4 c#4 _2 d4 _8
, Tremble~@-6*2 a3 _4 a3 _4 -*23 a3 a3 _2 f4 _2 e4 _4 -*8
, -*8 g3 _4 f3 _4 bb3 _6 a3 g3 a3 _3 e3 f3 Turn@-20 b2 c#3 a2 bb2 g#2 a2
g3 f3 _2 a3 _5 g3 _3 f3 e3 f3 _4
, -*48 {d3, a3} _8
, -*42 d3 _2 a2 _4 d2 _8 }
Walk ::= 4 3 2 1 .7# 1 2 3 .5 .6# .7# 1 .7# 1 2
Axis ::= $1 5
Subject ::= 5 4 5 3 5 2 5 1 5 .7# 5 1 5 2 5 3 5 .5 5 .6# 5 .7# 5 1 5 .7# 5 1 5 2 5 3 _2
assert Subject == 5 Axis(Walk) 3 _2
assert Subject == a4 g4 a4 f4 a4 e4 a4 d4 a4 c#4 a4 d4 a4 e4 a4 f4 a4 a3 a4 b3 a4 c#4 a4 d4 a4 c#4 a4 d4 a4 e4 a4 f4 _2
assert Subject@5 == d5 c5 d5 bb4 d5 a4 d5 g4 d5 f#4 d5 g4 d5 a4 d5 bb4 d5 d4 d5 e4 d5 f#4 d5 g4 d5 f#4 d5 g4 d5 a4 d5 bb4 _2
{ -*33 Subject@5 d5 _2 bb4 _2 d5 _2
, - Subject f#4 _2 g4 _2 c4 _2 bb3 _2 a3 _2 bb3 _2 c4 _2 d4 _2 f#3 _2 g3 _2 a3 _2 bb3 _2 a3 _2 bb3 _2 f#3 _2 g3 g4 g3 g4 d4 g4 d4 g4 }
{ eb5 _2 g4 _2 eb5 _2 g4 _2 c5 _2 a4 _2 c5 _2 a4 _2 d5 _2 f4 _2 d5 _2 f4 _2 bb4 _2 g4 _2 bb4 _2 g4 _2
c#5 _2 e4 _2 c#5 _2 e4 _2 a4 _2 f4 _2 a4 _2 f4 _2 g4 _2 c#4 _2 g4 _2 c#4 _2 f4 _2 d4 _2 f4 _2 d4 _2
, c4 eb4 c4 eb4 c4 eb4 c4 eb4 c4 f4 c4 f4 c4 f4 c4 f4 bb3 d4 bb3 d4 bb3 d4 bb3 d4 bb3 e4 bb3 e4 bb3 e4 bb3 e4
a3 c#4 a3 c#4 a3 c#4 a3 c#4 f3 d4 f3 d4 f3 d4 f3 d4 e3 bb3 e3 bb3 e3 bb3 e3 bb3 d3 a3 d3 a3 d3 a3 d3 a3 }
{ e4 _2 bb3 _2 e4 _2 bb3 _2 - Subject[:31]@12 f5 a5 e5 a5 d5 a5 c5 a5
, e3 g3 e3 g3 e3 g3 e3 g3 a3 _2*16 a3 _4 d4 _4
, -*8 f3 _2 e3 _2 d3 _2 g3 _2 f3 _2 e3 _2 f3 _2 c#3 _2 d3 _2 c#3 _2 d3 _2 e3 _2 f3 _2 e3 _2 f3 _2 c#3 _2 d3 _4 f3 _4 }
Peal ::= 6 '5 7 '5 '1 '4 6 '4 '2 '4 '1 '4 7 '4 6 '4
assert Peal == bb4 a5 c5 a5 d5 g5 bb4 g5 e5 g5 d5 g5 c5 g5 bb4 g5
assert Peal@~-1 == a4 g5 bb4 g5 c5 f5 a4 f5 d5 f5 c5 f5 bb4 f5 a4 f5
{ Peal Peal@~-1 Peal[:8]@~-2 7# Peal[9:]@~-2
, d4 _4 -*4 c4 _4 c4 _4 c4 _4 -*4 bb3 _4 bb3 _4 bb3 _4 -*4 a3 _4 a3 _4
, g3 _4 -*4 c3 _4 e3 _4 f3 _4 -*4 bb2 _4 d3 _4 e3 _4 -*4 a2 _4 c#3 _4 }
Sigh ::= -*2 d4 _2 c#4 _2 c#4 _2 d4 _2 d4 _2 e4 _4
{ f4 e5 g4 e5 a4 d5 f4 d5 e4 e5 e4 e5 f4 d5 f4 d5
bb4 c#5 bb4 c#5 a4 d5 f4 d5 e4 e5 e4 e5 f4 d5 f4 d5
- d5 c#5 d5 b4 d5 c#5 b4 c#5 _4 e4 g4 f4 e4
, -*41 a4 g4 a4 -*4
, a3 _4 Sigh Sigh -*12
, d3 _4 -*2 f3 _2 bb3 _2 bb3 _2 a3 _2 a3 _2 g3 _4 -*2 a3 _2 bb3 _2 bb3 _2 a3 _2 a3 _2 g#3 _4 -*12 }
assert Subject[:31]@-19 == d3 c3 d3 bb2 d3 a2 d3 g2 d3 f#2 d3 g2 d3 a2 d3 bb2 d3 d2 d3 e2 d3 f#2 d3 g2 d3 f#2 d3 g2 d3 a2 d3
assert d5 _2*3 == d5 _2 d5 _2 d5 _2
{ f4 _4 d4 _4 c#5 _4 e5 _6 d5 _4 c#5 _2 c5 _4 bb4 _4 a4 _4 a4 _4 g4 _4 eb4 _6
a4 _4 c5 _4 bb4 a4 bb4 _2 g5 _4 f#5 _2 g5 _4 bb4 _2 d5 _2*11
d5 g5 Turn@7 d5 e5 c5 a5 g5 a5 Turn@7
d5 bb5 a5 bb5 g5 a5 f5 g5 e5 c6 Turn@12 g5 a5
, - d5 c#5 d5 f5 d5 c#5 b4 a3 a4 g4 a4 -*24 f#4 _4 f4 _4 -*30
a4 _2 bb4 _2 f#4 _2 g4 _2 f#4 _2 g4 _2 a4 _2 bb4 _2 a4 _2 bb4 _2 f#4 _2
g4 bb4 a4 bb4 g4 a4 f4 g4 e4 c5 Turn g4 a4
f4 d5 c5 d5 Turn g4 e5 d5 e5 c5 d5 bb4 c5
, -*12 c#4 g4 f4 e4 f4 _4 e4 _4 d4 _2 a4 _4 g4 _6 -*8 g4 _4 f#4 _2 d4 _2 f#4 _2 eb5 _2 d5 _4 -*2 bb4 _2 a4 _4 d5 _2 c5 _2 -*56
, -*17 d4 c#4 d4 a3 a3 g3 a3 f#3 d4 c#4 d4 g3 f4 eb4 d4 c#4 e4 a3 c#4 d3 eb4 d4 c4 b3 d4 g3 b3 c3 d4 c4 bb3 a3 c4 f#3 a3 d3 c4 bb3 a3 bb3 a4 g4 f#4 g4 bb3 a3 g3
d4 _4 -*2 d4 _2 d4 _2 d4 _2 d4 _2 c4 _2 bb3 _2 d4 _2 d4 _2 c4 _2 bb3 _2 d4 _2 d4 _2 c4 _2 bb3 _4 -*28
, -*65 Subject[:31]@-19 bb2 _4 -*2 b2 _2 c3 _4 -*2 c#3 _2 d3 _4 -*2 d3 _2 e3 _4 -*2 e3 _2 }
Climb ::= .3 .2 .3 .4 .5 ..7 .1 .2
Nail ::= $1 .7
assert Nail(Climb) == f3 c4 e3 c4 f3 c4 g3 c4 a3 c4 c3 c4 d3 c4 e3 c4
{ a4 _2 f4 _2 bb4 a4 bb4 a4 bb4 d5 bb4 a4 g4 bb4 g4 f4 e4 f4 e4 f4 g4 _2 e4 _2 a4 _4 c5 _2 bb4 _2
, -*4 d5 c5 g4 f4 g4 bb4 g4 f4 e4 g4 e4 d4 c4 d4 g4 a4 -*4 f4 _4 -*4
, f5 eb5 d5 c5 -*16 bb4 d5 c5 bb4 -*8
, -*25 c4 bb3 c4 a3 c4 g3 c4
, f3 _2 a2 _2 bb2 _2 d3 _2 g2 _4 -*2 bb2 _4 a2 _2 g2 _2 c3 _2 f2 _4 -*4 }
{ a4 _2 g4 _2 a4 _2 bb4 _2 c5 _2 e4 _2 f4 _2 g4 _2 a4 _2 g4 _2 a4 _2 bb4 _2 c5 bb4 a4 g4 f4 eb4 d4 c4
, -*16 f3 c4 e3 c4 f3 c4 g3 c4 a3 _4 -*4
, Nail(Climb) -*16 }
Sink ::= .6 _2 6 5 4 3 2 1
Ring ::= '1 7 -*6
Ping ::= '5 '3 -*3 '3 -*2
Call ::= 3 _2 '2 '3 7 _2 '2 '3
Echo ::= 2 _2 '1 '2 7 _2 '1 '2
assert Sink == bb3 _2 bb4 a4 g4 f4 e4 d4
assert Sink@~3 == e4 _2 e5 d5 c5 bb4 a4 g4
assert Ring@~2 == f5 e5 -*6
assert Ping@~-1 == g5 e5 -*3 e5 -*2
assert Call == f4 _2 e5 f5 c5 _2 e5 f5
assert Echo == e4 _2 d5 e5 c5 _2 d5 e5
{ Sink Sink@~1 Sink@~2 Sink@~3 Call*2 Echo*2 Call*2 Echo*2
, Ring Ring@~1 Ring@~2 Ring@~3 Ping*2 Ping@~-1*2 Ping Ping[:4] -*18
, -*80 Ping@~-1*2 }
OnG ::= 6# 4 6# '1 '3 '5 '3 '1
OnC ::= 6 4 6 7 '2 '4 '2 7
OnBb ::= 5 3 5 7 '1 '3 '1 6
OnA ::= 4 2 4 6 7# '2 7# 6
assert OnG == b4 g4 b4 d5 f5 a5 f5 d5
assert OnA == g4 e4 g4 bb4 c#5 e5 c#5 bb4
{ d4 _2 f5 e5 d5 c5 b4 a4 OnG*2 OnC*2 OnBb*2 OnA*2
, f5 g5 -*70 }
{ - Subject[:27]@12 d5 _2 e5 _2 d5 _2 c5 _2 bb4 _2 a4 _2
, -*34 a4 _2 g4 _2 f#4 _2
, a4 _2 c#5 _2 d5 _2 g4 _2 f4 _2 a4 _2 b4 _2 c#5 _2 d5 _2 c#5 _2 d5 _2 e5 _2 f5 _2 e5 _2 f5 _2 c#5 _2 - f#4 e4 f#4 - d4 c4 d4
, -*29 a4 g4 a4 -*8 }
Curl ::= ..7# ..5 ..7# .2 .4 .6 .4 .2
Drop ::= .1 ..5 .1 .3 .5 1 .5 .3
Rise ::= .2 ..7# .2 .4 .6 .7# .6 .4
Lap ::= .3 .1 .3 .5 -*3 .5
Bell ::= 1 3 1
assert Curl == c#3 a2 c#3 e3 g3 bb3 g3 e3
assert Drop == d3 a2 d3 f3 a3 d4 a3 f3
assert Rise == e3 c#3 e3 g3 bb3 c#4 bb3 g3
assert Lap@~1 == g3 e3 g3 bb3 -*3 bb3
{ g4 _2 g4 f4 e4 d4 c#4 b3 -*72
, bb4 a4 -*62 Drop Rise
, bb3 c4 bb3 a3 g3 f3 e3 d3 Curl Curl Drop Drop Curl Curl Drop -*16 }
{ -*12 Bell -*5 Bell -*21 Bell -*5 Bell -*5 c#4 e4 c#4 bb3 -*4 c#4 e4 c#4 bb3 -*4 Bell -
, Rise Lap Lap Rise Rise Lap Lap Lap[:5]@~1 - Lap[:5]@~1 - a3 f3 a3 c#4 -*3 a3 }
Slide ::= .6 .5 .4 .3 .4 .3 .2 .1
assert Slide == bb3 a3 g3 f3 g3 f3 e3 d3
assert Subject@-14 == g3 f3 g3 eb3 g3 d3 g3 c3 g3 b2 g3 c3 g3 d3 g3 eb3 g3 g2 g3 a2 g3 b2 g3 c3 g3 b2 g3 c3 g3 d3 g3 eb3 _2
{ - d4 bb3 -*34 f4 e4 d4 a4 -*4 e5 d5 c#5
, bb3 -*2 g3 f3 a3 f3 d3 a2 d3 a2 f2 d2 d3 c#3 b2 c#3 Slide*2
e3/2 f3/2 g3/2 a3/2 b3/2 c#4/2 d4 -*3 a3 b3/2 c#4/2 d4/2 e4/2 f4/2 g4/2 a4 g4 f4 e4 }
{ d5 eb5/2 d5/2 c5/2 bb4/2 a4/2 g4/2 f#4 _2 a4 _4 g4 _2 c5 _2 b4 _2 eb5 _2 d5 _2 eb5 _2 b4 _2
c5 _2 b4 _2 c5 _2 d5 _2 eb5 _2 d5 _2 eb5 _2 f5 _2 g5 _33 g5 f5 g5 Turn@5
, f4 _2 -*3 eb4 d4 c4 bb3 _2 b3 _2 c4 _2 g4 _2 g4 _25 Subject[:30]@-2 d4 eb4 _2 d4 _2 g4 g#4 f4 g4
, -*9 Subject@-14 d3 _2 c3 _2 b2 _2 c3 _2 d3 _2 eb3 _2 f3 _2 g3 _2 b2 _2 c3 _2 d3 _2 eb3 _2 d3 _2 eb3 _2 f3 _2 g3 _2 b2 _2 c3 _2 d3 _2 }
{ c5 f5 Turn@5 c5 d5 bb4 eb5 d5 eb5 c5 d5 bb4 c5 a4 d5 c5 d5 Turn g4 bb4 a4 bb4 c5 bb4 a4 g4
, eb4 _2 c4 _2 f4 g4 eb4 f4 d4 _2 bb3 _2 Turn@-7 c4 _2 f#4 _2 g4 a4 f4 g4 eb4 g4 f#4 g4 a4 g4 f#4 e4
, eb3 _2 a2 _2 bb2 _2 c3 _2 d3 _2 g2 _2 a2 _2 bb2 _2 c3 _2 d3 _2 g3 _2 d3 _2 eb3 _2 bb2 _2 a2 _2 c3 _2 }
{ f#4 _2 a4 _2 d5 g4 c5 f#4 bb4 g4 d5 a4 bb4 Turn@-3 d5 f#4 d5 g4 d5 a4 d5 bb4 g4 d5 a4 bb4 g4 c5 a4 d5 c5 bb4 a4 bb4 a4 bb4 g4 a4 bb4 c5 d5 eb5 d5 c5 d5
, - Subject@-7 a3 _2 g3 _8 f#3 _4
, d3 _36 -*2 g2 _2 c3 _2 a2 _2 d3 _2 d2 _2 }
{ Turn g4 _2 b4 _2 c5 eb5 f5 g5 g#5 g5 f5 g5 Turn@5 c5 _2 bb4 _2 a4 _2 bb4 _4 a4 _4 g4 _4 f#4 _2 f4 _2 eb4 _4 d4 bb4
, g3 _2 a3 _2 bb3 a3 g3 f3 eb3 _2 eb4 _2 d4 _4 c4 _2 d4 _2 Turn@-7 c4 eb4 d4 f4 g4 f4 eb4 f4 d4 bb3 eb4 d4 c#4 a3 d4 c4 b3 g3 c4 bb3 a3 f3 bb3 d4
, g2 _4 -*2 g2 _2 c3 _6 b2 _2 c3 _4 -*28 }
{ a4 bb4 a4 g4 f#4 eb5 d5 c5 bb4 a5 g5 f#5 g5 _3 f5 Turn@5 c#5 _4 d5 _4 c5 _4
, -*24 a4 _4 f#4 _4
, -*21 bb4 a4 g4 -*8
, c4 d4 c4 bb3 a3 c4 bb3 a3 g3 c4 bb3 a3 bb3 c4 bb3 a3 g3 a3 f3 g3 e3 _4 f#3 _4 d3 _4
, -*25 eb4 d4 c4 d4 c4 bb3 a3 }
{ bb4 _4 a4 _2 c#5 _2 d5 _2 e5 _2 f5 _4 e5 _8 d5 _6 f5 _2 g5 _2 d5 _2 c#5 _2 d5 _2 e5 _2 d5 _2 c#5 _2 d5 _2 e5 _2 d5 _2 c#5 _2 d5 _2 e5 _2 g5 _2 f5 _2 d5 _2
, -*4 c#4 _2 e4 _2 f4 _2 g4 _2 -*18 a4 _2 g4 _2 a4 _2 g4 _2 f4 _2 g4 _2 f4 _2 e4 _2 a4 _2 bb4 _2 a4 _2 g4 _2 f4 _2 a4 _2 e5 _2 d5 _2 a4 _2
, g4 f4 eb4 d4 -*8 a4 g4 d5 _6 c#5 _4 a4 bb4 g4 a4 f4 _2 -*34
, -*14 a4 f4 -*48
, g3 _4 a3 bb3 a3 g3 f3 g3 e3 a3 d3 _4 g4 a4 g4 a4 bb4 a4 g4 a4 Turn@-5 d4 c4 bb3 a3 bb3 a3 g3 f3 e3 f3 e3 d3 c#3 a2 d3 a2 e3 a2 f3 a2 g3 a2 f3 a2 e3 a2 d3 a2 c#3 a3 a2 a3 d3 a3 f3 d4 }
{ bb4 _2 e5 _2 d5 _2 d5 _2 c#5 _4 d5 _2 e5 _2 f5 _2 e5 _2 f5 _2 c#5 _2 d5 _2 c#5 _2 d5 _2 e5 _2 f5 _2 e5 _2 f5 _2 g5 _2
a5 bb5 g5 a5 Turn@7 d5 a4 c#5 a4 d5 a4 e5 a4 f5 a4 e5 a4 f5 a4 g5 a4 a5 a4 e5 a4 f5 a4 g5 a4 a5 _4 -*28
, g4 _2 g4 _2 a4 _2 f4 _2 -*96
, f3 d4 e3 c#4 f3 d4 d3 d4 a3 _18 a3 _50 -*28
, -*8 e4 Subject[:17] - Subject[18:] e4 _2 d4 _2 g4 _2 f4 _2 e4 _2 f4 _2 c#4 _2 d4 _2 c#4 _2 d4 _2 b3 _2 c#4 _2 g4 _2 f4 _2 d4 _2 c#4 _4 -*28
, -*73 Subject[:31]@-12 }
{ - e5 d5 c#5 d5 _2 - f5 e5 f5 g5 a5 bb5 a5 g5 a5 f5 _2 e5 _2 d5 _2 f5 eb5
, -*21 e5 -*2
, - g4 f4 e4 f4 c#4 d4 _6 c#4 _4 d4 a4 b4 c#5 -*2 c5 _2
, f3 _4 -*2 f3 _2 g3 _2 e3 _2 a3 _2 a2 _2 d3 _4 -*2 a2 _2 }
OnCm ::= .7 2b .7 .6
OnGm ::= 4 6 4 1
OnFs ::= 3# 5 3# 2b
Tap ::= .1 _4 -*4
Wind ::= .3# .1 .3# .4 .5 1 .5 .4
Gust ::= .4 .1 .4 .5 .6 1 .6 .5
assert OnCm == c4 eb4 c4 bb3
assert OnFs == f#4 a4 f#4 eb4
assert Wind == f#3 d3 f#3 g3 a3 d4 a3 g3
assert Wind \7 {.3#} == f#3 d3 f#3 g3 a3 d4 a3 f#3
assert Gust[:6] .7 .6 == g3 d3 g3 a3 bb3 d4 c4 bb3
{ d5 c5 bb4 a4 g4 a4 bb4 c5 a4 _4 -*2 c5 _4 bb4 _2 -*2 g5 _2 Turn@5 c5 bb4 a4 g4
, f4 _6 eb4 _3 c4 a3 f3 a3 c4 eb4 c4 d4 bb3 g3 d3 g3 bb3 d4 g4 c4 d4 bb3 c4 a3 g3 f#3 e3
, bb2 _2 g2 _2 c3 _2 c2 _2 f2 _4 -*2 a2 _2 bb2 _4 -*2 bb2 _2 c3 _4 -*2 a2 _2 }
{ a4 _4 -*32 OnCm -*4 OnCm -*4 OnGm -*4 OnGm -*4 OnFs -*4 OnFs
, Wind Wind \7 {.3#} Gust Gust[:6] .7 .6 -*48
, Tap*4 a3 f#3 a3 bb3 -*4 a3 f#3 a3 bb3 -*4 a3 bb3 d4 f#4 -*4 bb3 g3 bb3 d4 -*4 c4 a3 c4 eb4 -*4 c4 a3 c4 eb4 -*4
, -*32 Tap*6 }
assert Subject[:8]@-19 == d3 c3 d3 bb2 d3 a2 d3 g2
assert Subject[:7]@-14 == g3 f3 g3 eb3 g3 d3 g3
{ d4 _2 -*2 d5 _2 c5 _2 bb4 _4 c5 _2 d5 _2 eb5 _4 f5 _2 g5 _2 a5 _4 f5 _2 eb5 _2 bb4 _2
d5 c5 bb4 c5 bb4 a4 g4 c5 bb4 a4 g4 a4 g4 f#4 g4 f4 e4 d4 c#4 _2 e4 _2 f4 g4 a4 b4 c#5 d5 e5 f5
, -*4 g4 _2 f#4 _2 g4 _4 g4 _2 b4 _2 c5 _4 c5 _2 e5 _2 f5 _4 bb4 _2 a4 _2 -*32
, f#3 _2 -*2 g3 _2 a3 _2 bb3 _4 eb4 _2 b3 _2 -*16 d5 eb5 -*30
, - Subject[:8]@-19 Subject[:7]@-14 g3 _4 c4 _2 bb3 _2 a3 _4 bb3 _2 c4 _2
d4 g4 f4 eb4 d4 eb4 d4 c4 bb3 eb4 d4 c4 bb3 c4 bb3 a3 bb3 a3 g3 f3 e3 _2 g3 _2 a3 b3 c#4 d4 e4 f4 g4 a4
, -*16 c3 c3 bb2 c3 a2 c3 g2 c3 f2 f3 eb3 f3 d3 f3 c3 f3 bb2 _2 eb3 _2 f3 _2 f2 _2 g2 _2 c3 _2 d3 _2 d2 _2 g2 _4 - a2 g2 a2 f2 _2 d2 _2 a2 _4 }
{ g5 _2 f5 e5 d5 _2 c#5 _2 d5 _2 e5 _2 f5 _2 g5 _2 a5 _2 c#5 _2 d5 _2 e5 _2 f5 _2 e5 _2 f5 _2 d5 _2
, bb4 _2 Subject[:2] Subject[3:29] .6# 5
, d2 _24 -*6 d3 _2 }
{ e5 _2 d5 _2 d5 _2 c#5 _2 d5 _2 f5 _2 e5 _4
, -*2 a4 _2 bb4 _2 a4 _2 a4 _2 d5 _2 -*4
, -*12 d5 _2 c5 _2
, c#4 _2 d4 _2 g4 _2 e4 _2 f4 _2 a4 _2 bb4 _2 a4 _2
, a2 _2 f2 _2 g2 _2 a2 _2 f2 _2 d2 _2 g2 _2 a2 _2 }
{ {f4, bb4, d5} _8 -/2 f5/2 g5/2 a5/2 bb5/2 a4/2 bb4/2 c5/2 d5/2 c5/2 d5/2 eb5/2 f5/2 f4/2 g4/2 a4/2 bb4/2
a4/2 bb4/2 c5/2 d5/2 a4/2 g4/2 f4/2 eb4/2 g4/2 a4/2 bb4/2 c5/2 g4/2 f4/2 eb4/2 d4/2 f4/2 g4/2 a4/2 bb4/2
-*2 c4/2 d4/2 eb4/2 f4/2 -*6 bb3/2 c4/2 d4/2 eb4/2 -*2 c4/2 d4/2 e4/2 f#4/2 eb4/2 d4/2 c4/2 bb3/2 f#4/2 g4/2 a4/2 bb4 _2
, - _93/2 c5/2 d5/2 g4/2
, {f3, bb3, d4} _8 - _37/2 a3/2 bb3/2 c4/2 d4/2 -*2 f3/2 g3/2 a3/2 bb3/2 a3/2 bb3/2 c4/2 d4/2 c4/2 bb3/2 a3/2 g3/2 -*2 d4/2 c4/2 bb3/2 a3/2 - _15/2
, bb2 _8 -*40 }
{ {e4, g4, bb4, e5} _12 d5 _12 -*8
, -*12 a4 _4 {d4, f4, b4} _8 -*8
, -*12 f4 _4 -*16
, c#4 _12 d4 _4 b3 _8 -*8
, c#3 _8 f3 _6 d3 _2 g#2 _8 - g#3 b3 f3 g#3 d3 f3 b2 }
key c4 maj
Twirl ::= 5/2 4/2 5/2 3/2
Bright ::= g#4/2 f#4/2 g#4/2 e4/2
assert Twirl == g4/2 f4/2 g4/2 e4/2
assert Twirl@~-2 == e4/2 d4/2 e4/2 c4/2
assert Twirl@~4 == d5/2 c5/2 d5/2 b4/2
{ -*6 {e4, g#4, b4, d5} _2 e4 _16 -/2
Twirl Twirl@~-2 Twirl@~1 Twirl@~-1 Twirl@~2 Twirl Twirl@~3 Twirl@~4 Twirl@~5
Twirl@~6 Twirl@~7 Twirl@~3 Twirl@~4 Bright Twirl@~3 Twirl@~-1
b4/2 a4/2 b4/2 c4/2 a4/2 g4/2 a4/2 b3/2 Bright - _3/2
, -*8 c5 _8 c5 _8 -*40
, -*8 a4 _6 g4 f4 -*48
, -*6 {e3, g#3, b3} _2 c4 _16 - _77/2 c4/2 b3/2 a3/2
, -*8 e3 _16 -*40
, -*8 a3 _8 g3 _8 -*40
, d3 g#2 a2 _2 e2 _20 -*40 }
Slip ::= -/2 2/2 1/2 .7/2
assert Slip == -/2 d4/2 c4/2 b3/2
assert Slip@~3 == -/2 g4/2 f4/2 e4/2
{ Slip Slip@~1 Slip@~2 Slip@~3 d4/2 a4/2 g4/2 f4/2 e4/2 g4/2 a4/2 b4/2 c5 _4
{e4, a4, c#5} _2 -/2 c#4/2 e4/2 a4/2 c#5 _2 {e4, a4, c#5} _2
{f4, a4, d5} _2 -/2 d4/2 f4/2 a4/2 d5 _2 {f4, a4, d5} _2
{d4, g4, b4} _2 - d4/2 g4/2 b4 _2 {d4, g4, b4} _2
{e4, g4, c5} _2 -/2 c4/2 e4/2 g4/2 c5 _2 {e4, g4, c5} _2
{c4, f4, a4} _2 - c4/2 f4/2 a4 _2 {c4, f4, a4} _2
{d4, f4, bb4} _2 - d4/2 f4/2 bb4 _2 {d4, f4, bb4} _2
, -*14 {c4, e4, g4} _2 -*48
, g#3/2 - _3/2 a3/2 - _3/2 b3/2 - _3/2 c4/2 - _15/2 g3 _2 -*48
, -*14 e3 _2 a3 _2 a3/2 - _7/2 a3 _2 a3 _2 a3/2 - _7/2 a3 _2
b3 _2 g3/2 b3/2 -*3 g3 _2 g3 _2 g3/2 - _7/2 g3 _2
a3 _2 f3/2 a3/2 -*3 f3 _2 f3 _2 f3/2 bb3/2 -*3 f3 _2
, -*16 g3 _2 -*4 g3 _2 f3 _2 -*4 f3 _2 f3 _2 -*4 f3 _2 e3 _2 -*4 e3 _2 e3 _2 -*4 e3 _2 d3 _2 -*4 d3 _2 }
key d4 min
{ {e4, g4, bb4} _2 - _3/2 c#4/2 bb4 _2 {c#4, e4, g4, bb4} _2 {d4, f#4, a4} _2 - d4/2 f#4/2 a4 _2
a4 _6 g4 _8 d4 _8 c4 _8 bb3 _4 a3 _16
, -*14 f#4 _2 d4 _8 e4 _4 f4 _4 e4 _8 d4 _24
, -*14 d4 _2 bb3 _8 c#4 _4 -*36
, e3 _2 e3/2 g3/2 bb3/2 - _5/2 e3 _2 f#3 _2 d3/2 a3/2 -*3 f#3 _2 g3 _8 bb3 _4 a3 _4 a3 _8 f3 _4 g3 _4 f3 _16
, c#3 _2 -*4 c#3 _2 c3 _2 -*4 c3 _2 g2 _4 bb2 _4 e2 _4 f2 _4 a2 _8 bb2 _4 g2 _4 d3 _16
, -*48 d2 _16 }