-
Notifications
You must be signed in to change notification settings - Fork 2
/
-da.checkPoly
executable file
·392 lines (305 loc) · 20.5 KB
/
-da.checkPoly
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
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
// Bol Processor BP3 compatible with version BP2.9.8
// Data saved as "-da.checkPoly". Date: 2021-03-29 05:59:08
-ho.abc1
-mi.abc1
-se.checkPoly
// All things you can do with “polymetric expressions”
// (See on-line help under this entry
// Select any of these expressions and do “Expand selection” (see Control panel)
// Let us first study simple polymetric expressions.
// Select each expression and click button "Expand selection" on the Control panel.
// You may also play expressions to see the locations of pivots of sound-objects or notes.
C4 D4, E4 F4 G4
// is equivalent to {C4 D4, E4 F4 G4}
C4 D4 • E4 F4 G4
// is equivalent to {C4 D4 • E4 F4 G4}
{{C4 D4, E4 F4 G4}, E5}
{*2/1 A4 B4, *3/1 A5 B5}
{*2/1 A4 B4,A5 B5}
/3 {{C4_ _ D4_ _, E4_ F4 - G4_}, E5_ _ _ _ _}
{C4 D4 B3, A#3 G3}
/1 {*1/1 C4 D4 B3,*3/2 A#3 G3}
// expands as:
// /1 {*1/1 C4 D4 B3,*3/2 A#3 G3} [This is the compact form]
// /2{C4_ D4_ B3_,/2 A#3_ _ G3_ _}[This is the expanded form]
// The resulting expression lasts for 3 beats
// The order of the two fields (sequences) in a polymetric expression is not arbitrary. Thus,
{A#3 G3, C4 D4 B3}
// expands as:
// {A#3 G3,*2/3 C4 D4 B3}
// {A#3_ _ G3_ _,/3 C4_ D4_ B3_}
// The resulting expression lasts for 2 beats
// The duration is determined by that of the leftmost field. It may be changed by an
// absolute speed marker. Here for instance, "/3" indicates "speed 3". See the result...
/3 {C4 D4 B3, A#3 G3}
// expands as:
// /3 {*1/3 C4 D4 B3,*1/2 A#3 G3}
// /6{C4_ D4_ B3_,/6 A#3_ _ G3_ _}
// Note that "/3" is an obsolete notation. We recommend using relative speed markers. Thus,
_tempo(3) {C4 D4 B3, A#3 G3}
// expands as:
// /3 {*1/3 C4 D4 B3,*1/2 A#3 G3}
// /6{C4_ D4_ B3_,/6 A#3_ _ G3_ _}
// Here the result is unchanged because "/3" was in the beginning of the expression.
// Expressions may be multilevelled. The following example uses sound-objects a, b, c...
// but they are treated in the same way as simple notes.
{a b c,{d e, f g h i}}
// expands as:
// {a b c,*3/2 {d e,*3/4 f g h i} *3/2 }
// /4{a_ _ _ b_ _ _ c_ _ _,/4{d_ _ _ _ _ e_ _ _ _ _,/4 f_ _ g_ _ h_ _ i_ _} /4}
// If you play this expression you'll see strange durations on the graphics due to properties
// of the sound-objects. The thing you must watch here is the positions of their pivots.
// Curled brackets {} may be removed. Thus,
abc,de
// expands as:
// /1 a b c,*3/2 d e
// /2 a_ b_ c_,/2 d_ _ e_ _
// which is equivalent to
{abc,de}
// These are sequences in which each “beat” (indicated with a period) must be resized to a duration determined by the first beat. This is called “period notation” (see on-line help).
// Periods may be notated ‘•’ or ‘.’. We recommend ‘•’.
C4 D4 B3 • A#3 G3
// is expanded as:
// C4 D4 B3 *3/2 A#3 G3
// /2 C4_ • D4_ • B3_ • A#3_ • _ G3 • _ _
// Of course, period notation resembles the “comma” notation in polymetric expressions...
// You may for instance compare "{C4 D4 B3 • A#3 G3}" with "{A#3 G3, C4 D4 B3}"
// More examples using sound-objects. If you play these examples, beware that f, g h, i
// are empty sound-objects and won't appear on the graphs.
{a b • c d e}
a.b.c.ab.cd.ef.abc.def.ghi
a.b.c.ab.cd.ef.a.b.c
a.b.c.ab.cd.ef.abc.a.b.c
{ab.cd}efg{hi.jk}
{a.b.c.ab.cd}{ef.abc.def.ghi}
// Multilevelled expressions define sorts of "sub-beats".
{a b c • {d e • a b c d}}
// expands as:
// {a b c *3/4 {d e *3/8 a b c d *3/4 } /1 }
// a • b • c /8 • d_ _ _ _ _ e_ • _ _ _ _ a_ _ b • _ _ c_ _ d_ _
// Periods and commas may be combined. Periods have priority.
{ab•c,de}
// expands as:
// {a b *2/1 c /1 ,*2/1 d e}
// {a b c_, d_ e_}
{abc•de,abc}
// which expands as:
// {a b c *3/2 d e /1 ,*2/1 a b c}
// {a b c /2 d_ _ e_ _ /2, a_ _ _ b_ _ _ c_ _ _}
// is equivalent to:
{{abc•de},abc}
// Here the first field contains an integer duration. These items are monodic and
// will therefore be interpreted with the “period notation”.
{2,c d e}
{- -, c d e}
{_ _, c d e f g h}
// Durations may also not be intege numbers. In the “period”
// notation, the last incomplete beat, if any, is padded with silences for the sake of
// consistency
{5/3, C3 D3 B2}
// is expanded as:
// {*5/9 C3 D3 B2}
// /9 C3_ _ _ _ D3_ _ _ • _ B2_ _ _ _---
{3 1/2, C3 D3 B2}
// is expanded as:
// {*7/6 C3 D3 B2}
// /6 C3_ _ _ _ _ • _ D3_ _ _ _ • _ _ B2_ _ _ • _ _ _---
{1/4,C6}{2,G5,B6}
// is expanded as:
// {/4 C6} /1 {*2/1 G5,B6}
// {/4 C6} /4{ G5_ _ _ _ _ _ _,B6_ _ _ _ _ _ _}
C4 C5 3/2 D5 E5
// is expanded as:
// C4 C5 /2 - _ _ /1 D5 E5
// C4 • C5 • /2 - _ • _ D5 • _ E5 • _-
[Simplified by quantization] C4 C5 36001/24000 D5 E5
[Complex processing] C4 35542/24783 D5
// is expanded as:
// /1 C4 /100 - _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /1 D5
[Complex processing] {35542/24783, A4}
[Complex processing] C4 C5 35542/24783 D5 E5 [The ratio will be simplified to 143/100]
// is expanded as:
// C4 C5 /100 - _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /1 D5 E5
// C4 • C5 • /100 - _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ • _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ D5_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ • _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ E5_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ • _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _---------------------------------------------------------
[Complex processing] _tempo(80/39){F1,C2}_tempo(80/39){2,F2}667/480 {53/480,G1,G2}{1/2,Ab1,Ab2}{1/2,B1,B2}
// is expanded as:
// *39/80 {*39/80 F1,*39/80 C2} *39/80 {*39/80 - _,*39/40 F2} *13/12800 - _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ *39/80 {*1/1000 - _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ *39/80 ,*689/12800 G1,*689/12800 G2} *39/80 {*39/160 - *39/80 ,*39/160 Ab1,*39/160 Ab2} *39/80 {*39/160 - *39/80 ,*39/160 B1,*39/160 B2}
[Complex processing] {_tempo(3/5) _vel(72) _chan(1){5/2,{1/2,F3,Ab3,Db4}{2,F3,Ab3,Db4}, 767/480 433/480,{1/2,Bb1}Bb1& _tempo(5/9){473/480,&Bb1 F2 Ab2 Bb2 Db3 F3 Ab3 Bb3 Eb4 Db4 Ab3 F3 Ab3 Bb3 Db4 E4 F4 Ab4 Bb4 Eb5 Db5 Bb4 Ab4 F4 Ab4 Bb4 Db5 Eb5 F5 Ab5 Bb5 Eb6 Db6 Bb5 Ab5 F5 Ab5 Bb5 Db6 E6 F6 Ab6 Bb6}7/480}}
// is expanded as:
// /1 {*5/3 _vel(72) _chan(1){*5/6 - _ _ _ _ *5/3 ,*5/3 {*5/6 - *5/3 ,*5/6 F3,*5/6 Ab3,*5/6 Db4} *5/3 {*5/3 - _,*10/3 F3,*10/3 Ab3,*10/3 Db4} *5/3 ,*1/288 - _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /288 - _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ *5/3 ,*125/99 {*125/198 - *125/99 ,*125/198 Bb1} *125/99 Bb1& *25/11 {*5/1056 - _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ *25/11 ,*5/96 &Bb1 F2 Ab2 Bb2 Db3 F3 Ab3 Bb3 Eb4 Db4 Ab3 F3 Ab3 Bb3 Db4 E4 F4 Ab4 Bb4 Eb5 Db5 Bb4 Ab4 F4 Ab4 Bb4 Db5 Eb5 F5 Ab5 Bb5 Eb6 Db6 Bb5 Ab5 F5 Ab5 Bb5 Db6 E6 F6 Ab6 Bb6} *5/1056 - _ _ _ _ _ _ *25/11 } *5/3 }
{a • b • c d • b a} 4/3 {/2 a b • d c}
// is expanded as:
// {a b /2 c d b a /1 } /3 - _ _ _ /1 {/2 a b d c /1 }
// a • b • /6 c_ _ d_ _ • b_ _ a_ _ • -_ __ __ • __ a_ _ b • _ _ d_ _ c • _ _----
/1 abcde • ba
{{1/2,E5} • F5 • A5} • {B5 • C6}
a b 5/3 {a b,c d e}
// Check parenthesis imbedding with two equivalent expressions
{{1/2,E5} • F5 • A5} {B5 • C6}
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{1/2,E5}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} • F5 • A5} {B5 • C6}
// both expanding as:
// {{/2 E5} /2 F5 A5 /1 }{B5 C6}
// /2 E5/2 F5 • A5 B5 • _ C6 • _-
// Polymetric expressions may contain "undetermined rests" (see on-line doc) notated
// _rest or '…'
{3/2 c d e, … f g, a b … c d}
/1 {/2 - _ _ /1 c d e,/2 - _ _ _ _ /1 f g,a b /2 - /1 c d}
/1 {/2 - _ _ /1 c_ d_ e_,/2 - _ _ _ _ /1 f_ g_,a_ b_ /2 - /1 c_ d_}
{C3 D3 B2, … C4 D4 B3}
{{1/2,E5} • F5 • A5} • {B5 _rest • C6}
// Since version 2.8.1 (June 1998) any number of rests is allowed in the same field
{C3 D3 B2, _rest C4 D4 _rest B3}
// which expands as:
// {*3/3 C3 D3 B2,*3/8 - *3/4 C4 D4 *3/8 - *3/4 B3}
// {C3 D3 B2,/8 -_ _ /8 C4_ _ _ _ _ D4_ _ _ _ _ /8 -_ _ /8 B3_ _ _ _ _}
// Polymetric expressions using the concatenation sign ‘&’
// You must play them to see how the notes or sound-objects are concatenated.
{1,C4,C3&}{2,D4,&C3}
// expands as:
// {C4,C3&}{*2/1 D4,&C3}
// {C4,C3&}{ D4_,&C3_}
{1/4,G#5&,C6,E6,B6&}{2,&G#5,&B6}
// expands as:
// {/4 G#5&,C6,E6,B6&} /1 {*2/1 &G#5,&B6}
// {/4 G#5&,C6,E6,B6&} /4{ &G#5_ _ _ _ _ _ _,&B6_ _ _ _ _ _ _}
{2,{- _rest,-{2,F#3}},2{F5,A5}}{4,{1/2,G#3,E5,G5}{3/2,Bb4&}{2,&Bb4}}
// expands as:
// {*2/3 {-{*4/3 F#3} *2/3 },- _{F5,A5}} /1 {{/2 G#3,E5,G5} /1 {*3/2 A#4&} /1 {*2/1 &A#4} /1 }
// {/6{-_ _ _{ F#3_ _ _ _ _ _ _}},-_ _ _ __ _ _{F5_ _ _,A5_ _ _}} /6{{/6 G#3_ _,E5_ _,G5_ _} /6{/6 A#4_ _ _ _ _ _ _ _&} /6{ &A#4_ _ _ _ _ _ _ _ _ _ _}}
{3,C5 D5 E5& F5}{2,G5 &E5}
// expands as:
// {*3/4 C5 D5 E5& F5} /1 {G5 &E5}
// /4 C5_ _ D5 • _ _ E5_ • _& F5_ _ • G5_ _ _ & • E5_ _ _
// Durations in sequences: the duration of each beat is fixed by the first beat. For instance,
/5 abc • d
// expands as:
// /5 a b c *3/5 d
// /5 a b c d_ • _----
// Be careful with removing {} brackets because leftmost digits might be interpreted
// as part of a “section header”. (See on-line help)
// More expressions with periods
/3 {abc•de,fgh}
// expands as:
// /3 {a b c /2 d e /3 ,*2/3 f g h}
// /6{a_ b_ c_ /6 d_ _ e_ _ /6, f_ _ _ g_ _ _ h_ _ _}
// This is not a recommended notation (and it might be declared illicit in the future).
// The “/2” absolute speed marker should normally be located on the leftmost side.
// The effect here is that “d e” will be forced to tempo 2, and other beats will be resized
// accordingly.
abc • ab /2 de • cd
// expands as:
// /1 a b c /1 a b /2 d e *3/2 c d
// /2 a_ • b_ • c_ • a_ • b_ • d e • c_ • _ d • _ _
// A better and comprehensive notation is:
abc • ab _tempo(2) de • cd
// which yields the same expanded expressions:
// /1 a b c /1 a b /2 d e *3/2 c d
// /2 a_ • b_ • c_ • a_ • b_ • d e • c_ • _ d • _ _
// More expressions with undetermined rests (see supra)
abcd • e … a • cd
// expands as:
// a b c d e - _ a *2/1 c d
// a b c d e - _ a c_ d_
C5•D5•G5• … F5 G5 C5
// expands as:
// C5 D5 G5 /4 - F5 G5 C5
// C5 • D5 • G5 • /4 - F5 G5 C5
// (This is a nice way of letting BP2 figure out a proper silence in the final part)
abc • e _rest /2 b • c
// expands as:
// a b c e /2 - _ _ /2 b *3/1 c
// a • b • c • e • /2 - _ • _ b • c_ • _ _ • _ _
// Same remark: the proper notation would be:
abc • e _rest _tempo(2) b • c
// Try the two ones:
abc•e _rest /2 {abc,de}•a
abc•e _rest _tempo(2) {abc,de}•a
// Here, empty beats will be ignored. Beware, ‘…’ is not ‘...’
a b....c d e
// expands as:
// a b *2/3 c d e
// a • b • /3 c_ d • _ e_
// Beats containing only silences are “resized”, except the first beat which serves as a duration reference. (This is dual to the “,” operation)
a b.-.c d
a b.3.c d
a b.5/3.c d
a b.5/3 _rest.c d
2.abc.defg
{5/3 • C4 D4 • E4 B3} [Don't remove {} otherwise “5” will be taken as part of header]
// expands as:
// {/3 - _ _ _ _ *5/6 C4 D4 E4 B3 /1 }
// /6 -_ __ __ • __ __ C4_ • _ _ _ D4_ _ • _ _ E4_ _ _ • _ B3_ _ _ _
a b. … •c d e [Undetermined rest is also resized]
// expands as:
// a b - _ *2/3 c d e
// a • b • - • _ • /3 c_ d • _ e_
// This one contains a variable yielding an undetermined duration…
// PolyExpand() will use the second field ‘a b’ for calculating duration.
{X,a b,c d e}
// expands as:
// {a b,*2/3 c d e}
// {a b,/3 c_ d_ e_}
// Other structures with variables: these are simply ignored.
{a b,X c d e}
{a b,X Y, c d e}
Z.a b.X Y.c d
// Out-time sound objects: they have no duration…
{a <<c>> b, c d e}
// expands as:
// {a <<c>> b,*2/3 c d e}
// {a <<c>> b,/3 c_ d_ e_}
a <<c>> b • c d e
a b •<<c>>• c d e
{a b,<<c>>, c d e}
{<<c>><<a>>, a b, c d e}
<<c>><<a>>• a b • c d e
// … but they can be followed by empty objects or silences.
{a b,<<c>>_ _ _ _, c d e}
{a b,<<c>> - - - -, c d e}
a b • <<c>> - - - - • c d e
// Here we'll get a three-time unit structure because the first field is three units…
{<<a>> - - -,a b, c d e}
{<<a>> 3,a b, c d e}
// Even worse: some fields are empty!
// This situation may occur there are erasing rules in a grammar...
{a b,,,c d e,}
a b....c d e.
{,a b,c d e} •a b.c d
{,,a b,c d e} •.a b.c d e
// Here we have either silences ‘-’ or empty objects ‘_’ that count for one beat
{--,c d e}
{__,c d e}
{-_,c d e}
{_-,c d e}
_ _•c d e
// Now, empty structures
{}
{a b {},c {} d e}
{a b {•},c {• •} d e}
a b {,} • c {• , •} d e
{{},c d e}
[Brackets are balanced] {{{},},a b {},c {{{•{}}}} d e}
{{{<<a>>},},a b {},c {{{{}}}} d e}
{a b {},{{<<a>>},},c {{{{}}}} d e}
{a b {},{{- <<a>>},},c {{{{}}}} d e}
// Structures containing instructions
{{{_press(114)},},a b {},c {{{{}}}} d e}
{a b,_volume(50) _chan(2) _script(English convention) _mod(80) _pitchbend(40) _press(121) _switchon(64,1) _switchoff(64,1) c d _chan(2) e}
{a b,_volume(50) _chan(2) _script(English convention) _mod(80) _pitchbend(40) _press(121) _switchon(64,1) _switchoff(64,1), c d e}
{_vel(50) _chan(2),a b, c _press(50) d _press(60) e}
{_volume(50) <<a>> _chan(2),a b, c d e}
{_vel(50) <<a>> - - - _chan(2),a b, c d e}
[Here we get a three-time unit structure because the first field is three units…]
_vel(50) <<a>> -- _chan(2) • a b • c d e
_vel(50) _chan(2) • a b • c d e
// The following doesn't make much sense since it contains an empty beat
_vel(50)• a b • _chan(2) • c d e
// The item produced by ‘-gr.Ames’
[Charles Ames' example] _transpose(-12){{2,{- _rest,-{2,F#3}},2{F5,A5}}{4,{1/2,G#3,E5,G5}{3/2,Bb4&}{2,&Bb4}},_rest{1/4,G#5&,C6,E6,B6&}{2,&G#5,&B6}}
// expands as:
// /1 {*1/1 {*2/3 {*2/3 -{*4/3 F#2} *2/3 } *2/3 ,*2/3 - _{*2/3 F4,*2/3 A4} *2/3 } *1/1 {*1/1 {*1/2 G#2,*1/2 E4,*1/2 G4} *1/1 {*3/2 A#3&} *1/1 {*2/1 &A#3} *1/1 } *1/1 ,*1/4 - _ _ _ _ _ _ _ _ _ _ _ _ _ _ /1 {*1/4 G#4&,*1/4 C5,*1/4 E5,*1/4 B5&} *1/1 {*2/1 &G#4,*2/1 &B5} *1/1 }
// /12{{/12{-_ _ _ _ _ _ _{F#2_ _ _ _ _ _ _ _ _ _ _ _ _ _ _}},-_ _ _ _ _ _ _ __ _ _ _ _ _ _{F4_ _ _ _ _ _ _,A4_ _ _ _ _ _ _}} /12{{/12G#2_ _ _ _ _,E4_ _ _ _ _,G4_ _ _ _ _} /12{/12A#3_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _&} /12{&A#3_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _}},/12-_ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ /12{/12G#4_ _&,C5_ _,E5_ _,B5_ _&} /12{&G#4_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _,&B5_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _}}
// Applying the ‘_tempo’ tool repeatedly
A3 {B3 C4 -, F3} _tempo(1.414) A3 {B3 C4 -, F3} {_tempo(1.414) A3 {B3 C4 -, F3} {_tempo(1.414) A3 {B3 C4 -, F3} {_tempo(1.414) A3 {B3 C4 -, F3}{_tempo(1.414) A3 {B3 C4 -, F3}}}}}
// expands as:
// /1 A3{*1/1 B3 C4 -,*3/1 F3} *500/707 A3{*500/707 B3 C4 -,*1500/707 F3} *500/707 {*2501/5000 A3{*2501/5000 B3 C4 -,*7503/5000 F3} *2501/5000 {*3537/10000 A3{*3537/10000 B3 C4 -,*10611/10000 F3} *3537/10000 {*2501/10000 A3{*2501/10000 B3 C4 -,*7503/10000 F3} *2501/10000 {*1769/10000 A3{*1769/10000 B3 C4 -,*5307/10000 F3} *1769/10000 } *2501/10000 } *3537/10000 } *2501/5000 }