-
Notifications
You must be signed in to change notification settings - Fork 2
/
-gr.765432
executable file
·203 lines (192 loc) · 8.13 KB
/
-gr.765432
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
// Bol Processor BP3
// Grammar saved as "-gr.765432". Date: 2024-08-17 06:48:21
-se.765432
// This is "765432", a polyrhythmic piece composed by Andrine Bel for the Cronos dance production (1994). It was performed by Suresh, Smriti, Olivier, etc. as you will guess from variable names.
// Computation takes about 3mn 50sec on Mac II-ci.
// It's a good idea to use "Find" if you want to trace variables across the grammar.
// Glossaries had not yet been implemented when this grammar was designed. The last subgrammar could be replaced with "-gl.D50"
ORD
GRAM#1[1] S --> Internal C47 Part1 Canon C46 _vel(90) Part2
GRAM#1[2] Part1 --> {Suresh1, _rest Smriti1, _rest Olivier1, _rest Vijayshree1, _rest Arindam1, _rest Andreine1}
GRAM#1[3] Part2 --> {Suresh2, Smriti2 _rest, Olivier2 _rest, Vijayshree2 _rest, Arindam2 _rest, Andreine2 _rest}
// Here we've used undetermined silences: '…'. It would have been a headache to calculate their durations!
// Try to figure out the same on a commercial MIDI sequencer...
-------------------------
ORD
GRAM#2[1] Suresh1 --> SuMov7x7 SuSil7x7 SuMov6x7 SuSil6x7 SuMov5x7 SuSil5x7 SuMov4x7 SuSil4x7 SuMov3x7 SuSil3x7 SuMov2x7 SuSil2x7 SuMov1x7 SuSil1x7
GRAM#2[2] Smriti1 --> SmMov6x6 SmSil6x6 SmMov5x6 SmSil5x6 SmMov4x6 SmSil4x6 SmMov3x6 SmSil3x6 SmMov2x6 SmSil2x6 SmMov1x6 SmSil1x6
GRAM#2[3] Olivier1 --> OlMov5x5 OlSil5x5 OlMov4x5 OlSil4x5 OlMov3x5 OlSil3x5 OlMov2x5 OlSil2x5 OlMov1x5 OlSil1x5
GRAM#2[4] Vijayshree1 --> ViMov4x4 ViSil4x4 ViMov3x4 ViSil3x4 ViMov2x4 ViSil2x4 ViMov1x4 ViSil1x4
GRAM#2[5] Arindam1 --> ArMov3x3 ArSil3x3 ArMov2x3 ArSil2x3 ArMov1x3 ArSil1x3
GRAM#2[6] Andreine1 --> AnMov2x2 AnSil2x2 AnMov1x2 AnSil1x2
-------------------------
ORD
GRAM#3[1] Suresh2 --> SuMov7x7 SuMov6x6 SuMov5x5 SuMov4x4 SuMov3x3 SuMov2x2 SuMov1x1
GRAM#3[2] Smriti2 --> SmMov6x6 SmMov5x5 SmMov4x4 SmMov3x3 SmMov2x2 SmMov1x1
GRAM#3[3] Olivier2 --> OlMov5x5 OlMov4x4 OlMov3x3 OlMov2x2 OlMov1x1
GRAM#3[4] Vijayshree2 --> ViMov4x4 ViMov3x3 ViMov2x2 ViMov1x1
GRAM#3[5] Arindam2 --> ArMov3x3 ArMov2x2 ArMov1x1
GRAM#3[6] Andreine2 --> AnMov2x2 AnMov1x1
-------------------------
ORD
GRAM#4[1] SuMov1x7 --> SuCycle7
GRAM#4[2] SuSil1x7 --> SuMov1x7
GRAM#4[3] SuMov2x7 --> SuCycle7 SuCycle7
GRAM#4[4] SuSil2x7 --> SuMov2x7
GRAM#4[5] SuMov3x7 --> SuCycle7 SuCycle7 SuCycle7
GRAM#4[6] SuSil3x7 --> SuMov3x7
GRAM#4[7] SuMov4x7 --> SuCycle7 SuCycle7 SuCycle7 SuCycle7
GRAM#4[8] SuSil4x7 --> SuMov4x7
GRAM#4[9] SuMov5x7 --> SuCycle7 SuCycle7 SuCycle7 SuCycle7 SuCycle7
GRAM#4[10] SuSil5x7 --> SuMov5x7
GRAM#4[11] SuMov6x7 --> SuCycle7 SuCycle7 SuCycle7 SuCycle7 SuCycle7 SuCycle7
GRAM#4[12] SuSil6x7 --> SuMov6x7
GRAM#4[13] SuMov7x7 --> SuCycle7 SuCycle7 SuCycle7 SuCycle7 SuCycle7 SuCycle7 SuCycle7
GRAM#4[14] SuSil7x7 --> SuMov7x7
GRAM#4[15] SuMov1x1 --> SuCycle1
GRAM#4[16] SuSil1x1 --> SuMov1x1
GRAM#4[17] SuMov2x2 --> SuCycle2 SuCycle2
GRAM#4[18] SuSil2x2 --> SuMov2x2
GRAM#4[19] SuMov3x3 --> SuCycle3 SuCycle3 SuCycle3
GRAM#4[20] SuSil3x3 --> SuMov3x3
GRAM#4[21] SuMov4x4 --> SuCycle4 SuCycle4 SuCycle4 SuCycle4
GRAM#4[22] SuSil4x4 --> SuMov4x4
GRAM#4[23] SuMov5x5 --> SuCycle5 SuCycle5 SuCycle5 SuCycle5 SuCycle5
GRAM#4[24] SuSil5x5 --> SuMov5x5
GRAM#4[25] SuMov6x6 --> SuCycle6 SuCycle6 SuCycle6 SuCycle6 SuCycle6 SuCycle6
GRAM#4[26] SuSil6x6 --> SuMov6x6
--------------------------
ORD
GRAM#5[1] SmMov1x6 --> SmCycle6
GRAM#5[2] SmSil1x6 --> SmMov1x6
GRAM#5[3] SmMov2x6 --> SmCycle6 SmCycle6
GRAM#5[4] SmSil2x6 --> SmMov2x6
GRAM#5[5] SmMov3x6 --> SmCycle6 SmCycle6 SmCycle6
GRAM#5[6] SmSil3x6 --> SmMov3x6
GRAM#5[7] SmMov4x6 --> SmCycle6 SmCycle6 SmCycle6 SmCycle6
GRAM#5[8] SmSil4x6 --> SmMov4x6
GRAM#5[9] SmMov5x6 --> SmCycle6 SmCycle6 SmCycle6 SmCycle6 SmCycle6
GRAM#5[10] SmSil5x6 --> SmMov5x6
GRAM#5[11] SmMov6x6 --> SmCycle6 SmCycle6 SmCycle6 SmCycle6 SmCycle6 SmCycle6
GRAM#5[12] SmSil6x6 --> SmMov6x6
GRAM#5[13] SmMov1x1 --> SmCycle1
GRAM#5[14] SmSil1x1 --> SmMov1x1
GRAM#5[15] SmMov2x2 --> SmCycle2 SmCycle2
GRAM#5[16] SmSil2x2 --> SmMov2x2
GRAM#5[17] SmMov3x3 --> SmCycle3 SmCycle3 SmCycle3
GRAM#5[18] SmSil3x3 --> SmMov3x3
GRAM#5[19] SmMov4x4 --> SmCycle4 SmCycle4 SmCycle4 SmCycle4
GRAM#5[20] SmSil4x4 --> SmMov4x4
GRAM#5[21] SmMov5x5 --> SmCycle5 SmCycle5 SmCycle5 SmCycle5 SmCycle5
GRAM#5[22] SmSil5x5 --> SmMov5x5
---------------------------
ORD
GRAM#6[1] OlMov1x5 --> OlCycle5
GRAM#6[2] OlSil1x5 --> OlMov1x5
GRAM#6[3] OlMov2x5 --> OlCycle5 OlCycle5
GRAM#6[4] OlSil2x5 --> OlMov2x5
GRAM#6[5] OlMov3x5 --> OlCycle5 OlCycle5 OlCycle5
GRAM#6[6] OlSil3x5 --> OlMov3x5
GRAM#6[7] OlMov4x5 --> OlCycle5 OlCycle5 OlCycle5 OlCycle5
GRAM#6[8] OlSil4x5 --> OlMov4x5
GRAM#6[9] OlMov5x5 --> OlCycle5 OlCycle5 OlCycle5 OlCycle5 OlCycle5
GRAM#6[10] OlSil5x5 --> OlMov5x5
GRAM#6[11] OlMov1x1 --> OlCycle1
GRAM#6[12] OlSil1x1 --> OlMov1x1
GRAM#6[13] OlMov2x2 --> OlCycle2 OlCycle2
GRAM#6[14] OlSil2x2 --> OlMov2x2
GRAM#6[15] OlMov3x3 --> OlCycle3 OlCycle3 OlCycle3
GRAM#6[16] OlSil3x3 --> OlMov3x3
GRAM#6[17] OlMov4x4 --> OlCycle4 OlCycle4 OlCycle4 OlCycle4
GRAM#6[18] OlSil4x4 --> OlMov4x4
---------------------------
ORD
GRAM#7[1] ViMov1x4 --> ViCycle4
GRAM#7[2] ViSil1x4 --> ViMov1x4
GRAM#7[3] ViMov2x4 --> ViCycle4 ViCycle4
GRAM#7[4] ViSil2x4 --> ViMov2x4
GRAM#7[5] ViMov3x4 --> ViCycle4 ViCycle4 ViCycle4
GRAM#7[6] ViSil3x4 --> ViMov3x4
GRAM#7[7] ViMov4x4 --> ViCycle4 ViCycle4 ViCycle4 ViCycle4
GRAM#7[8] ViSil4x4 --> ViMov4x4
GRAM#7[9] ViMov1x1 --> ViCycle1
GRAM#7[10] ViSil1x1 --> ViMov1x1
GRAM#7[11] ViMov2x2 --> ViCycle2 ViCycle2
GRAM#7[12] ViSil2x2 --> ViMov2x2
GRAM#7[13] ViMov3x3 --> ViCycle3 ViCycle3 ViCycle3
GRAM#7[14] ViSil3x3 --> ViMov3x3
---------------------------
ORD
GRAM#8[1] ArMov1x3 --> ArCycle3
GRAM#8[2] ArSil1x3 --> ArMov1x3
GRAM#8[3] ArMov2x3 --> ArCycle3 ArCycle3
GRAM#8[4] ArSil2x3 --> ArMov2x3
GRAM#8[5] ArMov3x3 --> ArCycle3 ArCycle3 ArCycle3
GRAM#8[6] ArSil3x3 --> ArMov3x3
GRAM#8[7] ArMov1x1 --> ArCycle1
GRAM#8[8] ArSil1x1 --> ArMov1x1
GRAM#8[9] ArMov2x2 --> ArCycle2 ArCycle2
GRAM#8[10] ArSil2x2 --> ArMov2x2
---------------------------
ORD
GRAM#9[1] AnMov1x2 --> AnCycle2
GRAM#9[2] AnSil1x2 --> AnMov1x2
GRAM#9[3] AnMov2x2 --> AnCycle2 AnCycle2
GRAM#9[4] AnSil2x2 --> AnMov2x2
GRAM#9[5] AnMov1x1 --> AnCycle1
GRAM#9[6] AnSil1x1 --> AnMov1x1
----------------------------
ORD
GRAM#10[1] Canon --> Twist Walk Stretch Bend Jump Turn
GRAM#10[2] Twist --> Sm Tik Tik Tik Tik Tik Su Tik Tik Tik Tik Ol Tik Tik Tik Ar Tik Tik Vi Tik An
GRAM#10[3] Walk --> Sm Su Tik Ol Tik Tik Ar Tik Tik Tik Vi Tik Tik Tik Tik An Tik Tik Tik Tik Tik
GRAM#10[4] Stretch --> Twist
GRAM#10[5] Bend --> Walk
GRAM#10[6] Jump --> Twist
GRAM#10[7] Turn --> Walk
----------------------------
SUB1
GRAM#11[1] SuCycle7 --> Su Tik Tik Tik Tik Tik Tik
GRAM#11[2] SuCycle6 --> Su Tik Tik Tik Tik Tik
GRAM#11[3] SuCycle5 --> Su Tik Tik Tik Tik
GRAM#11[4] SuCycle4 --> Su Tik Tik Tik
GRAM#11[5] SuCycle3 --> Su Tik Tik
GRAM#11[6] SuCycle2 --> Su Tik
GRAM#11[7] SuCycle1 --> Su
GRAM#11[8] SmCycle6 --> Sm - - - - -
GRAM#11[9] SmCycle5 --> Sm - - - -
GRAM#11[10] SmCycle4 --> Sm - - -
GRAM#11[11] SmCycle3 --> Sm - -
GRAM#11[12] SmCycle2 --> Sm -
GRAM#11[13] SmCycle1 --> Sm
GRAM#11[14] OlCycle5 --> Ol - - - -
GRAM#11[15] OlCycle4 --> Ol - - -
GRAM#11[16] OlCycle3 --> Ol - -
GRAM#11[17] OlCycle2 --> Ol -
GRAM#11[18] OlCycle1 --> Ol
GRAM#11[19] ViCycle4 --> Vi - - -
GRAM#11[20] ViCycle3 --> Vi - -
GRAM#11[21] ViCycle2 --> Vi -
GRAM#11[22] ViCycle1 --> Vi
GRAM#11[23] ArCycle3 --> Ar - -
GRAM#11[24] ArCycle2 --> Ar -
GRAM#11[25] ArCycle1 --> Ar
GRAM#11[26] AnCycle2 --> An -
GRAM#11[27] AnCycle1 --> An
----------------------------
SUB1
GRAM#12[1] Su --> {1,do4-}
GRAM#12[2] Sm --> {1,mi4-}
GRAM#12[3] Ol --> {1,sol4-}
GRAM#12[4] Vi --> {1,do5-}
GRAM#12[5] Ar --> {1,mi5-}
GRAM#12[6] An --> {1,sol5-}
GRAM#12[7] Tik --> {1,do7-}
----------------------------
ORD
// D-50 stuff. We could use a glossary to replace this subgrammar
GRAM#13[1] Internal --> _script(MIDI program 1) _script(MIDI controller #98 = 0 channel 1)
GRAM#13[2] C46 --> _script(MIDI program 94)
GRAM#13[3] C47 --> _script(MIDI program 95)
GRAM#13[4] PedalOn --> _switchon(64,1)
GRAM#13[5] PedalOff --> _switchoff(64,1)