bpm 72
meter 4
unit 1/4
key a4 min
Ground ::= .1 _8 ..7 _8 ..6 _8 ..5 _8 ..4 _8 ..5 _8 .1 _16
assert .1 _8 == .1 +7
assert .1 _8 == .1 _4 _2
assert .1 _16 == .1 _8 _2
assert Ground == .1 +7 ..7 +7 ..6 +7 ..5 +7 ..4 +7 ..5 +7 .1 +15
Ground
Head ::= 3 _4 2 _4 3 _4 5 _4
Tune ::= Head 6 _4 5 _4 4 _4 3 _4 4 _4 3 _4 2 _4 .7# _4 1 _16
assert Head == c5 _4 b4 _4 c5 _4 e5 _4
assert Head == m72 _4 m71 _4 m72 _4 m76 _4
assert Head == c5 _4 s-1 _4 s1 _4 s2 _4
key c5 min
assert Head == eb5 _4 d5 _4 eb5 _4 g5 _4
Head c5 _4 b4 _4 c5 _4 e5 _4
key a4 min
{Tune, Ground}
Reply ::= Head Head~ Head@~-1 Head~@~-1
assert Head~ == Head[::-1]
assert Head~ == 5 _4 3 _4 2 _4 3 _4
assert Head@~-1 == 2 _4 1 _4 2 _4 4 _4
assert Head@-2 == bb4 _4 a4 _4 bb4 _4 d5 _4
assert Head~@~-1 == Head@~-1~
{Reply, Ground}
Chords ::= 1Min _8 .7Maj _8 .6Maj _8 .5Min _8 .4Min _8 .5Maj _8 1Min _16
assert 1Min == {1, 3, 5}
assert 1Min == aMin
assert 1Dia == 1Min
assert .5Dia == .5Min
assert .5Maj == {.5, .7#, 2}
{Tune, Chords, Ground}
Tonic ::= {.1 .3 .5 .3}_2
Walk ::= | Tonic {..7 .2 .4 .2}_2 |
| {..6 .1 .3 .1 ..5 ..7 .2 ..7}_2 |
| {..4 ..6 .1 ..6 ..5 ..7# .2 ..7#}_2 |
| Tonic {.5 .3 .1 .1}_2 |
assert Tonic == .1 _2 .3 _2 .5 _2 .3 _2
assert | Tonic | == {.1 .3 .5 .3}_4
assert | Tonic Tonic | == Tonic Tonic
assert | Tonic Tonic |*2 == Tonic Tonic Tonic Tonic
{Tune, Walk}
assert Ground@~7 == Ground@12
assert Ground@12@12 == Ground@24
assert Ground@24 == Ground@~14
{Ground@24, Chords, Walk}
Close ::= {6 _8 7# _8 '1 _16, .4Min _8 .5Maj _8 1Min _16, ..1 _32}
assert Tune[0:4] == Head
assert Reply[0:4] == Head
assert Ground[4:] == ..4 _8 ..5 _8 .1 _16
Ground
{Tune, Ground}
{Tune, Chords, Ground}
{Reply, Walk}
{Ground@24, Chords, Walk}
{Tune, Chords, Walk}
Close