bpm 104
meter 4
unit 1/4
key g harm
Subject ::= 1 _2 .7 _2 1 _8 .5 _8 2 _2 3 _2 4 _4 3 _4 2 _4 3 _8 1 _8
Subject
{Subject Subject, - _16 {Subject}@-12 {Subject}@-12}
Subject {Subject}^
Tail ::= 4 _2 3 _2 2 _2 .7 _2 1 _8
Subject Tail
bpm 104
meter 4
unit 1/4
key g4 harm
mode diatonic
Prod ::= 2 _2/3 3 _2/3
assert Prod _3 == 2 _2 3 _2
assert Prod _3 == a4 _2 bb4 _2
assert Prod*3 == Prod Prod Prod
assert Subject[4:6] == Prod _3
assert Subject[4:] == Prod _3 4 _4 3 _4 2 _4 3 _8 1 _8
assert Subject[4:] == a4 _2 bb4 _2 c5 _4 bb4 _4 a4 _4 bb4 _8 g4 _8
Lift ::= Prod@~1 _3 5 _4 4 _4
assert Lift == 3 _2 4 _2 5 _4 4 _4
assert Lift == bb4 _2 c5 _2 d5 _4 c5 _4
assert Lift == Subject[4:6]@~1 5 _4 4 _4
assert .7b == f4
assert .7 == f#4
assert {4, 2} == {c5, a4}
assert {6, 1} == {eb5, g4}
assert {5, .7} == {d5, f#4}
Sally ::= | .5 _4 1 _4 3 _4 2 _4 |
Subject Lift
| 3 _4 {4, 2} _8 .7b _4 |
5 _4 {6, 1} _8 1 _8 {5, .7} _12
Sally
assert Subject[4:]@5 == d5 _2 eb5 _2 f5 _4 eb5 _4 d5 _4 eb5 _8 c5 _8
assert Subject[4:]@~2 == c5 _2 d5 _2 eb5 _4 d5 _4 c5 _4 d5 _8 bb4 _8
assert Subject[4:8] == Prod _3 4 _4 3 _4
assert {2, 5, 7} == {a4, d5, f#5}
Retort ::= 5 _4 Subject[4:]@5 Subject[4:]@~2 Lift
| 3 _4 Subject[4:8] |
| 2 _4 3 _4 Prod _3 1 _4 |
'1 _4 {2, 5, 7} _8 {5, 1} _8 '1 _4 '2 _4 '3 _2 '2 _2
Retort
assert {Subject[:4]}@12 == g5 _2 f#5 _2 g5 _8 d5 _8
assert 6 _2 5 _2 4 _2 3 _2 == eb5 _2 d5 _2 c5 _2 bb4 _2
LastWord ::= {Subject[:4]}@12 6 _2 5 _2 4 _2 3 _2 Prod*3
| 2 _2 - 1 1 _12 |
LastWord