bpm 60
key d min
Motif ::= 1 _2 3 2 3 _2 5 _2
Ton ::= {.1, .3, .5} _8
Statement ::= {Motif*3 1 _8, Ton*4}
Statement
Climb ::= Motif Motif@~1 Motif@~2
Fall ::= '1 _2 7 _2 6 _2 5 _2 4 _2 3 _2 5 _4
Walk ::= .1 _8 .2 _8 .3 _8 .4 _8
Dom ::= {..5, ..7#, .4} _8
Sequence ::= {Climb Fall, Walk Dom}
assert Motif@~2 == 3 _2 5 4 5 _2 7 _2
Sequence
assert Motif@~1 == 2 _2 4 3 4 _2 6 _2
assert Motif@2 == 2 _2 4 3# 4 _2 6# _2
{Climb, Ton*3}
{Motif Motif@2 Motif@4, Ton Ton@2 Ton@4}
Sub ::= {.1, .4, .6} _8
Six ::= {..6, .1, .3} _8
Call ::= {Motif Motif@~1 Fall[2:] - _4,
Ton .2 _8 Sub Dom}
Answer ::= {Motif Motif@~-2 4 _2 3 _2 2 _4 .7# _4 1 _8,
Ton Six Sub/2 Dom Ton}
assert Fall[2:] == 6 _2 5 _2 4 _2 3 _2 5 _4
Call
Answer
Head ::= Motif[:3]
Drop ::= .1 _4 ..7 _4 ..6 _4 ..5 _4
Fragment ::= {Head Head@~-1 Head@~-2 Head@~-3 .5 _4 .7# _4 1 _8,
Drop Dom Six}
assert Head == 1 _2 3 2
Fragment
Statement
Sequence
Call
Fragment
Answer