bpm 140
meter 3
unit 1/4
key g4 maj
mode diatonic
Run ::= 5 _2 4 _2 3 _2 2 _2
assert Run == d5 _2 c5 _2 b4 _2 a4 _2
Run
Rise ::= 1 _2 2 _2 3 _2 4 _2
assert Rise == Run[::-1]@~-1
assert Rise@~3 == 4 _2 5 _2 6 _2 7 _2
Tune ::= | 5 _4 Rise |
| 5 _4 1 _4 1 _4 |
| 6 _4 Rise@~3 |
| '1 _4 1 _4 1 _4 |
Tune
Fall ::= | 4 _4 Run |
| 3 _4 Run@~-1 |
assert Run@~-1 == 4 _2 3 _2 2 _2 1 _2
assert Run@~-2 == 3 _2 2 _2 1 _2 .7 _2
Open ::= Fall
| .7 _4 1 _2 2 _2 3 _2 1 _2 |
| 2 _12 |
Close ::= Fall
| 2 _4 Run@~-2 |
| 1 _12 |
assert Open[:1] == Close[:1]
Open Close
Climb ::= 2 _2 3 _2 4# _2 5 _2 6 _2 7 _2
assert 4# == c#5
Away ::= | '3 _4 '1 _2 '2 _2 '3 _2 '1 _2 |
| '2 _4 5 _2 6 _2 7 _2 5 _2 |
| '1 _4 6 _2 7 _2 '1 _2 5 _2 |
| 4# _4 3 _2 4# _2 2 _4 |
Awayb ::= Climb
| '1 _4 7 _4 6 _4 |
| 7 _4 2 _4 4# _4 |
| 5 _12 |
Away Awayb
Tonic ::= {1, .5, .3}
assert Climb@-7 == .5 _2 .6 _2 .7 _2 1 _2 2 _2 3 _2
Home ::= | 5 _4 1 _2 .7 _2 1 _4 |
| 6 _4 1 _2 .7 _2 1 _4 |
| 5 _4 4 _4 3 _4 |
| 2 _2 1 _2 .7 _2 1 _2 2 _4 |
Homeb ::= Climb@-7
| 4 _4 3 _4 2 _4 |
| 3 _2 5 _2 1 _4 .7 _4 |
| Tonic _12 |
assert Homeb[:1] == Climb@-7
Home Homeb
First ::= Tune Open Tune Close
Second ::= Away Awayb Home Homeb
First*2
Second*2
bpm 140
meter 3
unit 1/4
key g4 maj
mode diatonic
Tune Open \14 {1 _3/2 3/2}
assert Open \14 {1 _3/2 3/2} == Open[:5] 1 _3/2 3/2 2 _12
Tune Close
Away Awayb
Home Homeb \13 {.3, .5, 1}