bpm 90
meter 4
unit 1/4
key c maj
Wave ::= 1 _2 3 _2 2 _2 4 _2 3 _2 5 _2 4 _2 2 _2
Rise ::= Wave Wave@~1 Wave@~2 Wave@~3
Close ::= '1 _2 7 _2 6 _2 5 _2 4 _2 3 _2 2 _2 1 _2
Rise Close
Cell ::= {1 5 3 5}_2 = {2 5 4 5}_2 = {1 6 4 6}_2 = {.7 5 2 5}_2
Bass ::= | Cell#1 Cell#1 | Cell#2 Cell#1 | Cell#3 Cell#1 | Cell#4 Cell#1 |
Bass
{Rise, Bass}
Fall ::= .5 _2 .7 _2 2 _2 1 _2
= 1 _2 2 _2 4 _2 3 _2
= 3 _2 5 _2 '1 _2 7 _2
= 5 _2 '1 _2 3 _2 2 _2
enum Fall
assert Fall#asc == Fall#.5;any
assert Fall#desc == Fall#any;'1
Down ::= Fall#desc Fall#3 Fall#2 Fall#asc
Up ::= Fall#asc Fall#2 Fall#3 Fall#desc
Down Up
{Up Down, Bass}
Walk ::= Cell#1 Cell#1@~-1 Cell#1@~-2 Cell#1@~-3
Ground ::= Walk Walk@~-4
Tune ::= Wave@~4 Wave@~3 Wave@~2 Close
assert Walk@~-4 == Cell#1@~-4 Cell#1@~-5 Cell#1@~-6 Cell#1@~-7
{Tune@~2, Ground@~2}
{Tune, Ground}
Theme ::= '1 _2 7 _2 '1 _2 5 _2 6 _2 5 _2 3 _2 1 _2
Theme Theme[::-1]
Theme[0:4] Theme[0:4]@~1 Theme[4:] Theme[4:]@~-1
{Theme[::2] Theme[::2]@~1 Theme[4:] Theme[0:4], Walk}
Arp ::= s2 _2 s2 _2 s3 _2
Sweep ::= 1 _2 Arp .7 _2 Arp .6 _2 Arp .5 _2 Arp
assert 1 _2 Arp == 1 _2 3 _2 5 _2 '1 _2
Sweep
{Sweep, Walk}
{Theme[::-1] Close, Cell#3 Cell#2 Cell#4 Cell#1}