This composition was part of the choreographic work CRONOS created by Andréine Bel and performed at the National Centre for the Performing Arts (Mumbai, India) and the Shri Ram Center (Delhi) in October 1994.
The following grammar "-gr.ShapesInRhythm " was written (in about 2 days) by Andréine and Bernard Bel.
There were six dancers on the stage: Smriti Mishra, Olivier Rivoirard, Vijayshree Chaudhary, Arindam Dasgupta, Somenath Chatterjee and Suresh Shetty.
The musical structure consists of 9 parts using very different sound patches played on Roland D-50 synthesiser with a Musitronics extension card. Each part is based on the rhythmic structure of a tihai : three equal repetitions of a rhythmic pattern, interspersed with two equal rests, with the constraint that the last unit must fall on the first beat of the rhythmic cycle. The cycle has 16 beats, or tintal in North-Indian music/dance. Tihais are basic figures of Kathak dance and tabla drumming.
On an old Mac IIci, this would take 14 minutes to produce and time! For this reason, subgrammar instructions have been optimised: instead of the standard "RND" mode, "ORD" has been used wherever possible, otherwise "SUB1", whose process is a unique "parallel" rewrite of the work string.
Playing the piece required a 30-millisecond quantization setting which reduced the size of the phase table by a factor of 222. See Complex ratios in polymetric expressions for a detailed explanation.
At the time this grammar was written, BP2 did not support articulation or glossaries . This grammar has highlighted the need for such features.
Smooth time and time patterns (with time-objects t1 , t2 and t3 ) were used because the dancers expected the first sections to start slowly and speed up. Thus, the composition starts at metronome 60, continues at metronome 80 and ends at 88. In this composition, however, striated time would be a much better option because speed changes can be managed using the "_tempo()" tool: forget time patterns , set the metronome to 88 and insert _tempo(60/88) then _tempo(80/88) and finally _tempo(1) to change speeds. This work was an incentive to implement the "_tempo()" performance tool…
Click this link to display the score of this piece.
“Shapes in Rhythm” composed by Andréine Bel and played by the Bol Prorcessor on a Roland D-50 synthesiser (1994)
➡ Video at the bottom of this page.
Show grammar
TIMEPATTERNS: t1 = 88/60 t2 = 88/80 t3 = 1/1 ORD _mm(88 .0000) _smooth GRAM#1[1] S --> Route script(Beep) _script(Wait for space) Part1 Gap12 Part2 Gap23 Part3 Gap34 Part4 Gap45 Part5 Gap56 Part6 Gap67 Part7 Gap78 Part8 Gap89 Part9 GRAM#1[2] Part1 --> _script(Tick cycle OFF) Route - _vel(127) _script(Tick cycle ON) _script(Reset tick cycle) {Tp1 Tp1 Tp1 Tp1 Tp1 Tp1 Tp1 Tp1, P1} {Tp1,Accord5,sol4 15} GRAM#1[3] Part2 --> Sablier _vel(127) {Tp2 Tp2 Tp2 Tp2 Tp2, P2}{Tp3,Dha1 15} GRAM#1[4] Part3 --> Maison _vel(35) {Tp3 Tp3 Tp3 Tp3, P3}_vel(45){Tp3,Dha5} GRAM#1[5] Part4 --> Toit _vel(127){Tp3 Tp3 Tp3 Tp3 Tp3 Tp3, P4} GRAM#1[6] Part5 --> Drapeau _vel(70){Tp3 Tp3 Tp3 Tp3, P5}{Tp3,Chhe 15} GRAM#1[7] Part6 --> CerfVolant _vel(127){Tp3 Tp3 Tp3 Tp3, P6}{Tp3,Tin ---} GRAM#1[8] Part7 --> Guimbarde _vel(127){Tp3 Tp3 Tp3 Tp3, P7} PedalOn {Tp3,Dha4 15} GRAM#1[9] Part8 --> Hippocampe _vel(90){Tp3 Tp3 Tp3, P8}{Tp3,la5 31} GRAM#1[10] Part9 --> VaisseauVolant _vel(90) {Tp3 Tp3 Tp3 Tp3 Tp3 Tp3 Tp3 Tp3 Tp3 Tp3 Tp3 Tp3 Tp3 Tp3 Tp3 Tp3 t3 t3 t3 t3, P9} GRAM#1[11] Gap12 --> _vel(80) Conque {Tp2,- _pitchbend(0) _pitchcont _mod(0) _modcont si3____ mod(16383) _pitchbend(8192) Sablier -} _mod(0) GRAM#1[12] Gap23 --> Maison {Tp3,16,_vel(2) _velcont - fa3 _ mi3 fa#3 fa3 mi3 sol3 fa3 sol#3 do3 _ _ _ _ vel(40)} GRAM#1[13] Gap34 --> Toit _vel(100) {Tp3,- sol#2 sol#2 sol#2 } GRAM#1[14] Gap45 --> Toit _vel(100) {Tp3 Tp3, - sol2 - sol2 sol2 - sol2 Drapeau -} GRAM#1[15] Gap56 --> CerfVolant _vel(60) {Tp3,- {6,do4,- do5} -}[{Tp3,PedalOn _vel(50) _velcont do2 sol#2 fa#2 do#3 PedalOff - _vel(90)}] GRAM#1[16] Gap67 --> Guimbarde {Tp3,{_vel(40) do3__ ,vel(40) _velcont -fa3 fa3 vel(60), ---fa2}} GRAM#1[17] Gap78 --> {Tp3,7 PedalOff -} GRAM#1[18] Gap89 --> _vel(110) Michiko {Tp3, - PedalOn _press(0) _presscont _pitchbend(8192) _pitchcont re5_____ _press(127) _pitchbend(12000) - PedalOff}_pitchbend(8192)_press(0)// Here we used the real values of pitchbend. Usually it is easier to use cent values but this wasn't yet implemented. SUB1 GRAM#2[1] P1 --> {16,8 Vi4,Accord1} {16,{8,So8} {8,Ar12},Accord2} {16,{8,Sm16}{8,Su24}} {16,{8,Ol32}{8,An48} GRAM#2[2] Accord1 --> do2 GRAM#2[3] Accord2 --> do2 GRAM#2[4] Accord5 --> do2 SUB1 GRAM#3[1] P2 --> Down12345 S5 Up12345 S5 Down12345 S5 Up12345 S5 Down12345 S3 Up12345 S3 Down12345 S3 Up12345 S3 Down12345 - Up12345 - Down12345 - Up12345 - Down12345 Up12345 Down12345 Up12345 Dha1 - Down12345 Up12345 Down12345 Up12345 Dha1 - Down12345 Up12345 Down12345 Up12345 GRAM#3[2] Down12345 --> si5 sol5 fa#5 mi5 re#5 GRAM#3[3] Up12345 --> si4 re#5 mi5 fa#5 sol5 GRAM#3[4] S5 --> ----- GRAM#3[5] S3 --> --- SUB1 GRAM#4[1] P3 --> P3T1 Dha3 P3T2 Dha4 {P3T1,P3T3} GRAM#4[2] P3T1 --> {3,do4 do5 do3 do3 do3 do3} {3, do#3 re3 la3 la#4 sol3 sol#4 do#4 do5 do3}{3,do#3 fa3 re#4 la#4 fa#3 sol4 mi4 la4 la#3 do5 re3 fa#3}{1,sol4 fa4} GRAM#4[3] Dha3 --> sol#4 GRAM#4[4] P3T2 --> {3,do#4 do5 do#3 fa3 mi4 la4} {3,si3 do5 do3 do#3 re#3 si3 do5 do#3 re3}{3,sol#3 la#4 sol#3 la4 la#3 si4 re3 sol#3 la#4 sol#3 la#4 sol#3}{1,la#4 la4} GRAM#4[5] Dha4 --> do5 GRAM#4[6] P3T3 --> {3,sol#3 la4 la#3 do5 re3 fa#3} {3,fa#4 fa4 sol4 re#4 do5 fa#3 fa#4 la4 do4}{3,do5 do3 do3 re#3 re#4 do5 re#3 do4 do5 do3 re#3 do4}{1,do5 do3} GRAM#4[7] Dha5 --> sol#4 SUB1 GRAM#5[1] P4 --> {12,Trio Trio Trio Trio} {12,Trio Trio Trio Trio,Quatuor Quatuor Quatuor Quatuor} {24,Trio Trio Trio Trio Trio Trio Trio Trio,Quatuor Quatuor Quatuor Quatuor Quatuor Quatuor Quatuor Quatuor,OlSeul32} GRAM#5[2] Trio --> {1,Sm,An,So} Tik Tik GRAM#5[3] Quatuor --> {1,Ar,Ol,Su,Vi} {1,mi6---,do6---} GRAM#5[4] OlSeul32 --> OlSeul4 OlSeul4 OlSeul4 OlSeul4 OlSeul4 OlSeul4 OlSeul4 OlSeul4 GRAM#5[5] OlSeul4 --> Ol Ol Ol Ol SUB1 GRAM#6[1] P5 --> {Tick32,Tihai5 Chhe Tihai5 Chhe Tihai5} GRAM#6[2] Tihai5 --> {4,Cinq2 Chhe Cinq2 Chhe} {6,Cinq2 Cinq2 Cinq2} SUB1 GRAM#7[1] P6 --> {Tick32,Tihai6 Tin Tihai6 Tin Tihai6} GRAM#7[2] Tihai6 --> {2,Huit}{2,Six}{2,Cinq}{2,Quatre}{2,- - Ek - - Do - -} SUB1 GRAM#8[1] P7 --> {Tick32,Tihai7 Dha4 Tihai7 Dha4 Tihai7} GRAM#8[2] Tihai7 --> {2,Huit2}{2,Sept2}{2,Six2}{2,Cinq2}{2,Quatre2} SUB1 GRAM#9[1] P8 --> Tihai8 Gap8 Tihai8 Gap8 Tihai8 GRAM#9[2] Tihai8 --> {fa4,do5} - fa5 do6 la5 la#5 sol5 do6 la5 - {fa4,do5} fa5 - do6 la5 la#5 sol5 do6 la5 - {fa4,do5} fa5 do6 - la5 la#5 sol5 do6 GRAM#9[3] Gap8 --> la5 - - - - - SUB1 GRAM#10[1] P9 --> {M1 M1 M1 M1 M2 M2 M2 M2 M2 M2 M2 M2 M3 M3 M3 M3 M3 M3 M3 M3 M4 M4 M4 M4 M4 M4 M4 M4 M5 M5 M5 M5 M5 M5 M5 M5 M6 M6 M6 M6 M6 M6 M6 M6,_vel(10){re3,mi3,fa3}} GRAM#10[2] M1 --> Smriti GRAM#10[3] M2 --> {Smriti,Olivier} GRAM#10[4] M3 --> {Smriti,Olivier,Vijayshree} GRAM#10[5] M4 --> {Smriti,Olivier,Vijayshree,Arindam} GRAM#10[6] M5 --> {Smriti,Olivier,Vijayshree,Arindam,Somenath} GRAM#10[7] M6 --> {Smriti,Olivier,Vijayshree,Arindam,Somenath,_vel(127) Suresh} ORD [Setting ratios with time patterns] GRAM#11[1] Tp1 --> t1 t1 t1 t1 t1 t1 t1 t1 GRAM#11[2] Tp2 --> t2 t2 t2 t2 t2 t2 t2 t2 GRAM#11[3] Tp3 --> t3 t3 t3 t3 t3 t3 t3 t3 SUB1 GRAM#12[1] Vi4 --> {4,Vi1 Vi1 Vi1 Vi1} GRAM#12[2] So8 --> {8,So1 So1 So1 So1 So1 So1 So1 So1} GRAM#12[3] Ar12 --> {12,Ar1 Ar1 Ar1 Ar1 Ar1 Ar1 Ar1 Ar1 Ar1 Ar1 Ar1 Ar1} GRAM#12[4] Sm16 --> {16,Sm1 Sm1 Sm1 Sm1 Sm1 Sm1 Sm1 Sm1 Sm1 Sm1 Sm1 Sm1 Sm1 Sm1 Sm1 Sm1} GRAM#12[5] Su24 --> {24,Su1 Su1 Su1 Su1 Su1 Su1 Su1 Su1 Su1 Su1 Su1 Su1 Su1 Su1 Su1 Su1 Su1 Su1 Su1 Su1 Su1 Su1 Su1 Su1} GRAM#12[6] Ol32 --> {32, Ol4 Ol4 Ol4 Ol4 Ol4 Ol4 Ol4 Ol4} GRAM#12[7] An48 --> An16 An16 An16 GRAM#12[8] An16 --> An4 An4 An4 An4 GRAM#12[9] An4 --> {4, An1 An1 An1 An1} GRAM#12[10] Ol4 --> Ol1 Ol1 Ol1 Ol1 GRAM#12[11] Vi1 --> fa3 - GRAM#12[12] So1 --> {mi3,fa#3} - GRAM#12[13] Ar1 --> {sol3,la#3} - GRAM#12[14] Sm1 --> do4 - GRAM#12[15] Su1 --> {do#4,fa4} - GRAM#12[16] Ol1 --> sol3 - GRAM#12[17] An1 --> sol4 - SUB1 GRAM#13[1] Smriti --> {3,Sm Sm Sm} GRAM#13[2] Olivier --> {5,Ol Ol Ol Ol Ol} GRAM#13[3] Vijayshree --> {2,Vi Vi} GRAM#13[4] Arindam --> {4,Ar Ar Ar Ar} GRAM#13[5] Somenath --> {6,So So So So So So} GRAM#13[6] Suresh --> {12,Su Su Su Su Su Su Su Su Su Su Su Su} SUB1 GRAM#14[1] Huit --> BigTik Tik Tik Tik Tik Tik Tik Tik GRAM#14[2] Six --> BigTik Tik Tik Tik Tik Tik GRAM#14[3] Cinq --> BigTik Tik Tik Tik Tik GRAM#14[4] Cinq2 --> BigTik Tik3 Tik3 Tik3 Tik3 GRAM#14[5] Quatre --> BigTik Tik Tik Tik GRAM#14[6] Huit2 --> BigTik2 Tik2 Tik2 Tik2 Tik2 Tik2 Tik2 Tik2 GRAM#14[7] Sept2 --> BigTik2 Tik2 Tik2 Tik2 Tik2 Tik2 Tik2 GRAM#14[8] Six2 --> BigTik2 Tik2 Tik2 Tik2 Tik2 Tik2 GRAM#14[9] Cinq2 --> BigTik2 Tik2 Tik2 Tik2 Tik2 GRAM#14[10] Quatre2 --> BigTik2 Tik2 Tik2 Tik2 GRAM#14[11] Ek --> Tik GRAM#14[12] Do --> Tik GRAM#14[13] Tin --> Tik GRAM#14[14] Chhe --> BigTik SUB1// The eight following rules are typical cases in which _staccato() should be used. GRAM#15[1] Dha1 --> {1,{si3,si4}---} GRAM#15[2] Su --> do6--- GRAM#15[3] Sm --> fa5--- GRAM#15[4] Ol --> mi6--- GRAM#15[5] So --> la5--- GRAM#15[6] Vi --> re6- GRAM#15[7] Ar --> mi5--- GRAM#15[8] An --> fa6--- GRAM#15[9] Dha4 --> {fa2,do4} GRAM#15[10] Tick32 --> _vel(40) do3 do3 do3 do3 do3 do3 do3 do3 do3 do3 do3 do3 do3 do3 do3 do3 do3 do3 do3 do3 do3 do3 do3 do3 do3 do3 do3 do3 do3 do3 do3 do3 GRAM#15[11] Tik --> do7 GRAM#15[12] Tik2 --> {do5,do6} GRAM#15[13] Tik3 --> {_vel(15) sol6,_vel(110) do7} GRAM#15[14] BigTik --> {do6,do8} GRAM#15[15] BigTik2 --> {fa3,fa4} SUB1 GRAM#16[1] Route --> X87 GRAM#16[2] Sablier --> X76 GRAM#16[3] Maison --> C13 GRAM#16[4] Toit --> X76 GRAM#16[5] Drapeau --> X36 GRAM#16[6] CerfVolant --> X63 GRAM#16[7] Guimbarde --> X86 GRAM#16[8] Hippocampe --> X72 GRAM#16[9] VaisseauVolant --> X36 GRAM#16[10] Conque --> I66 GRAM#16[11] Michiko --> X75 ORD[D-50 stuff] GRAM#17[1] Xcard --> _script(MIDI controller #98 = 1 channel 1) GRAM#17[2] Internal --> _script(MIDI controller #98 = 0 channel 1) GRAM#17[3] X13 --> Xcard _script(MIDI program 5) GRAM#17[4] X24 --> Xcard _script(MIDI program 12) GRAM#17[5] X26 --> Xcard _script(MIDI program 14) GRAM#17[6] X27 --> Xcard _script(MIDI program 15) GRAM#17[7] X36 --> Xcard _script(MIDI program 22) GRAM#17[8] X63 --> Xcard _script(MIDI program 43) GRAM#17[9] X68 --> Xcard _script(MIDI program 48) GRAM#17[10] X72 --> Xcard _script(MIDI program 50) GRAM#17[11] X75 --> Xcard _script(MIDI program 53) GRAM#17[12] X76 --> Xcard _script(MIDI program 54) GRAM#17[13] X83 --> Xcard _script(MIDI program 59) GRAM#17[14] X85 --> Xcard _script(MIDI program 61) GRAM#17[15] X86 --> Xcard _script(MIDI program 62) GRAM#17[16] X87 --> Xcard _script(MIDI program 63) GRAM#17[17] I42 --> Internal _script(MIDI program 26) GRAM#17[18] I62 --> Internal _script(MIDI program 42) GRAM#17[19] I66 --> Internal _script(MIDI program 46) GRAM#17[20] C13 --> Internal _script(MIDI program 67) GRAM#17[21] C42 --> Internal _script(MIDI program 90) GRAM#17[22] C56 --> Internal _script(MIDI program 102) GRAM#17[23] C23 --> Internal _script(MIDI program 75) GRAM#17[24] PedalOn --> _switchon(64,1) GRAM#17[25] PedalOff --> _switchoff(64,1)
An extract of this work is shown in the following video from 3mn 36s to 3mn 48s:
References