bpm 144
meter 4
unit 1/4
key e4 harm
Tick ::= $1 -
Call ::= Tick(1 3 1 5)
Doot ::= 1 -*3 1 -*3 Call
Answer ::= Tick(6 4) Tick(6 4) Tick(5 3) Tick(4 2)
Dit ::= 6 -*3 6 -*3 Answer[2:]
assert Answer[2:] == Tick(5 3 4 2)
Doot Dit Doot Dit
Ground ::= .1 _16 .6 _16 ..4 _16 .3 _16
Scale ::= '6 '5 '4 '3 '2 '1 7 6
{{Doot Dit}*2,
Ground,
-*56 {Scale[:4]@-24} _2}
Rock ::= .3 .5 .3 .1
Home ::= Rock@~1 \3 {.1}
Bass ::= Rock Home
Under ::= Rock@~-4 Home
assert Home == .4 .6 .4 .1
Stair ::= Scale~@~-17
assert Stair == ..3 ..4 ..5 ..6 ..7 .1 .2 .3
{{Doot Dit}*4,
Bass _2 Scale _2 Under _2 Stair _2 Bass _2 Scale _2 Under _2 Stair@~-1 _2,
Ground*2}
Roll ::= Tick(1 3 1 .5) Call
Ring ::= Roll \6 {3}
assert Ring == Tick(1 3 1 3 1 3 1 5)
Peal ::= '4 '5 '4 '3 '2 '1 7 '1
Knell ::= Peal^
assert Peal[2:7] == Scale[2:7]
assert Knell == ..5 ..4 ..5 ..6 ..7 .1 .2 .1
{{Roll Answer Ring Answer}*2,
Bass _2 Scale _2 Under _2 Stair _2 Bass _2 Peal _2 Under _2 Knell _2,
Ground*2}
Toll ::= '4 '5 '4 '5 7 '1 7 '1
assert Doot^@~-2 == .6 -*3 .6 -*3 Tick(.6 .4 .6 .2)
assert Answer^@~-2 == Tick(.1 .3 .1 .3 .2 .4 .3 .5)
assert Toll^ == ..5 ..4 ..5 ..4 .2 .1 .2 .1
Verse ::= {Doot Bass _2 Doot Answer Doot Bass _2 Doot Bass _2 {Roll Answer Ring Answer}*2,
-*16 Bass@~5 _2 -*48 Bass@~5 _2 Stair _2 Bass@~5 _2 Bass _2 Scale _2 Under _2 Stair _2 Bass _2 Toll _2 Under _2 Toll^ _2,
Doot^@~-2 -*16 Doot^@~-2 Answer^@~-2 Doot^@~-2 -*16 Doot^@~-2 {Knell \7 {-}} _2 -*128,
-*96 Scale _2 Knell@24 _2 Ground*2}
Verse
assert Answer@~-2 == Tick(4 2 4 2 3 1 2 .7)
Rise ::= Tick(.7 .5 2 .7 4 2 6 4)
Stack ::= ..1 ..3 ..5 ..7
assert Stack@~13 == .7 2 4 6
{Answer@~-2 Answer@~3 Answer@~-6 Rise Answer@~-2 {Answer[:3]@~3 7 _2 5 -} Answer@~-6,
-*32 ..4 _16 Stack _4 Bass _2 {Toll \6 {-}} _2 Under _2,
Ground[:2] -*32 Ground[:3]}
Lift ::= Rock Rock@~2
assert Lift == .3 .5 .3 .1 .5 .7 .5 .3
Lean ::= 1 3 .7 2
{Lift@~-7 Lift@~-3 Lift@~1 Lift@~-1
Lift@~-7 Lift@~-3 Lift@~1 Rock@~-2 Rock@~-7
Lift@~-7 Lift@~-3 Lift@~1 Lift@~5
Lift@~1 Lift@~-1 Lift@~1 Rock@~-2 Rock@~-7 Lift@~1 Lift,
-*96 Lift@~7 Lift@~5 Lift@~3 Lift@~1 Lean _4,
Stack@~6 _4 -*16 Stack@~6 _4 -*16 Stack@~6 _4 Stack@~14 _4 -*32 Lean@~-6 _4,
Stack _4 -*16 Stack _4 -*16 Stack _4 Stack@~8 _4 -*48}
Verse
{Answer@~-2 Answer@~3 Answer@~-6 Answer[:3]@~-15 ..3 - ..1,
Ground[:2] -*31}