bpm 50
meter 4
key d4 maj
Maj ::= {1, 3, 5}
Min ::= {1, 3b, 5}
Call ::= 5 _2 '1 _2 5 _4 2 _2 1 _6
assert 1 3 5 == 1 i4 i3
assert 1 3b 5 == 1 i3 i4
{Call, Maj _16}
{Call, Min _16}
assert 1Maj == Maj
assert 1Min == Min
assert 1Dim == {1, 3b, 5b}
assert 1Aug == {1, 3, 5#}
Lift ::= 1Maj 1Aug .6Min .4Maj .4Min 1Maj .7Dim 1Maj
Line ::= 5 5# 6 '1 6b 5 2 1
Lift _4
{Line@12 _4, Lift _4}
assert 1Dia == Maj
assert 2Dia == 2Min
assert 7Dia == 7Dim
Ladder ::= 1Dia 2Dia 3Dia 4Dia 5Dia 6Dia 7Dia '1Dia
Ladder _2 Ladder~ _2
Canon ::= 1Dia .5Dia .6Dia .3Dia .4Dia 1Dia .4Dia .5Dia
Ground ::= ..1 ..5 ..6 ..3 ..4 ..1 ..4 ..5
Sigh ::= '3 '2
Lean ::= 6 7
Tune ::= Sigh Sigh@~-2 Sigh@~-4 Lean
{Tune _4, Canon _4, Ground _4}
assert 1Dia == {1, 3, 5}
assert .6Dia == {.6, 1, 3}
assert .4Dia == {.4, .6, 1}
{Lean _4 '1 _8, Canon[6:] _4 1Dia _8, Ground[6:] _4 ..1 _8}
{Lean _4 '1 _8, Canon[6:] _4 .6Dia _8, Ground[6:] _4 ..6 _8}
{Lean _4 '1 _8, Canon[6:] _4 .4Dia _8, Ground[6:] _4 ..4 _8}
key d min
{Tune _4, Canon _4, Ground _4}
{Lean _4 '1 _8, Canon[6:] _4 1Dia _8, Ground[6:] _4 ..1 _8}
key d harm
assert 5Dia == 5Maj
assert 3Dia == 3Aug
{Tune _4, Canon _4, Ground _4}
{Lean _4 '1 _8, Canon[6:] _4 1Dia _8, Ground[6:] _4 ..1 _8}
key d4 maj
Open ::= {..1, .5, 3, '1}
Wide ::= {..1, .1, 3, 5, '1}
assert Maj@~3 == 4Dia
assert Maj@~4 == 5Dia
Maj@~3 _4 Maj@~4 _4 Maj _8
Open@~3 _4 Open@~4 _4 Open _8
Wide@~3 _4 Wide@~4 _4 Wide _8
key d4 maj
{Tune _4, Canon _4, Ground _4}
key d harm
Home ::= {1Maj, '1}
{Tune _4 '1 _16, Canon _4 Home _16, Ground _4 ..1 _16}