nodeskini 1.0.5 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. package/blocklySkini/blocklySkini.html +5 -1
  2. package/blocklySkini/scripts/hiphop_blocks.js +5 -6
  3. package/client/clientListe/clientListe.js +11 -0
  4. package/client/clientListe/clientListebundle.js +1755 -1909
  5. package/client/controleurHH/controleurHH.html +4 -0
  6. package/client/queueViewer/queue.html +34 -0
  7. package/client/queueViewer/queue.js +187 -0
  8. package/client/queueViewer/style.css +26 -0
  9. package/client/score/parto1.js +14 -11
  10. package/client/score/parto1bundle.js +55 -33
  11. package/client/score/score.html +8 -7
  12. package/doc/Doc Skini Node english.pdf +0 -0
  13. package/doc/Mode d'emploi Skini Node.pdf +0 -0
  14. package/doc/Tuto Skini.pdf +0 -0
  15. package/doc/quickstart.pdf +0 -0
  16. package/myReact/orchestrationHH.hh.js +147 -1843
  17. package/myReact/orchestrationHH.mjs +50 -231
  18. package/myReact/orchestrationHH.mjs.map +1 -1
  19. package/package.json +11 -8
  20. package/pieces/tutos/demoAbleton.csv +21 -0
  21. package/pieces/tutos/demoAbleton.js +100 -0
  22. package/pieces/tutos/demoAbleton.xml +180 -0
  23. package/pieces/tutos/demoHH.js +99 -0
  24. package/pieces/tutos/demoHH.xml +184 -0
  25. package/pieces/tutos/demoHHwait.js +100 -0
  26. package/pieces/tutos/demoHHwait.xml +175 -0
  27. package/pieces/tutos/tuto.csv +10 -0
  28. package/pieces/tutos/tuto.csv.good +1 -0
  29. package/pieces/tutos/tuto1.js +105 -0
  30. package/pieces/tutos/tuto1.xml +147 -0
  31. package/pieces/tutos/tuto10.back.js +106 -0
  32. package/pieces/tutos/tuto10.js +107 -0
  33. package/pieces/tutos/tuto10.xml +199 -0
  34. package/pieces/tutos/tuto11.js +111 -0
  35. package/pieces/tutos/tuto11.xml +124 -0
  36. package/pieces/tutos/tuto12.js +91 -0
  37. package/pieces/tutos/tuto12.xml +258 -0
  38. package/pieces/tutos/tuto2.back.js +106 -0
  39. package/pieces/tutos/tuto2.js +95 -0
  40. package/pieces/tutos/tuto2.xml +94 -0
  41. package/pieces/tutos/tuto3-2.js +105 -0
  42. package/pieces/tutos/tuto3-2.xml +96 -0
  43. package/pieces/tutos/tuto3.js +97 -0
  44. package/pieces/tutos/tuto3.xml +49 -0
  45. package/pieces/tutos/tuto4.js +107 -0
  46. package/pieces/tutos/tuto4.xml +106 -0
  47. package/pieces/tutos/tuto5.js +109 -0
  48. package/pieces/tutos/tuto5.xml +42 -0
  49. package/pieces/tutos/tuto6.js +105 -0
  50. package/pieces/tutos/tuto6.xml +26 -0
  51. package/pieces/tutos/tuto7.js +107 -0
  52. package/pieces/tutos/tuto7.xml +65 -0
  53. package/pieces/tutos/tuto8.js +105 -0
  54. package/pieces/tutos/tuto8.xml +76 -0
  55. package/pieces/tutos/tuto9.js +107 -0
  56. package/pieces/tutos/tuto9.xml +90 -0
  57. package/pieces/tutos/tutoAwait.js +111 -0
  58. package/pieces/tutos/tutoAwait.xml +171 -0
  59. package/pieces/tutos/tutoDoubleEmission.js +93 -0
  60. package/pieces/tutos/tutoDoubleEmission.xml +65 -0
  61. package/pieces/tutos/tutoESP32.js +104 -0
  62. package/pieces/tutos/tutoESP32.xml +246 -0
  63. package/pieces/tutos/tutoGame.js +126 -0
  64. package/pieces/tutos/tutoGame.xml +109 -0
  65. package/pieces/tutos/tutoGroups1.js +111 -0
  66. package/pieces/tutos/tutoGroups1.xml +137 -0
  67. package/pieces/tutos/tutoGroups2.js +97 -0
  68. package/pieces/tutos/tutoGroups2.xml +103 -0
  69. package/pieces/tutos/tutoGroups3.js +111 -0
  70. package/pieces/tutos/tutoGroups3.xml +128 -0
  71. package/pieces/tutos/tutoGroups4.js +111 -0
  72. package/pieces/tutos/tutoGroups4.xml +84 -0
  73. package/pieces/tutos/tutoIZ.js +95 -0
  74. package/pieces/tutos/tutoIZ.xml +135 -0
  75. package/pieces/tutos/tutoIf.js +111 -0
  76. package/pieces/tutos/tutoIf.xml +126 -0
  77. package/pieces/tutos/tutoMidi.js +126 -0
  78. package/pieces/tutos/tutoMidi.xml +62 -0
  79. package/pieces/tutos/tutoOS.js +121 -0
  80. package/pieces/tutos/tutoOSC.js +109 -0
  81. package/pieces/tutos/tutoOSC.xml +223 -0
  82. package/pieces/tutos/tutoOSCJonathan.js +94 -0
  83. package/pieces/tutos/tutoOSCJonathan.xml +312 -0
  84. package/pieces/tutos/tutoPatternInGroup.js +109 -0
  85. package/pieces/tutos/tutoPatternInGroup.xml +116 -0
  86. package/pieces/tutos/tutoRandomBlock.js +129 -0
  87. package/pieces/tutos/tutoRandomBlock.xml +194 -0
  88. package/pieces/tutos/tutoSuspend.js +107 -0
  89. package/pieces/tutos/tutoSuspend.xml +139 -0
  90. package/pieces/tutos/tutoSustain.js +107 -0
  91. package/pieces/tutos/tutoSustain.xml +109 -0
  92. package/pieces/tutos/tutoTank.csv +9 -0
  93. package/pieces/tutos/tutoTank.js +100 -0
  94. package/pieces/tutos/tutoTank.xml +326 -0
  95. package/pieces/tutos/tutoTestAll.csv +11 -0
  96. package/pieces/tutos/tutoTestAll.hh.js +401 -0
  97. package/pieces/tutos/tutoTestAll.js +101 -0
  98. package/pieces/tutos/tutoTestAll.xml +866 -0
  99. package/serveur/OSCandMidi.mjs +27 -3
  100. package/serveur/controleDAW.mjs +2 -1
  101. package/serveur/groupeClientsSons.mjs +27 -3
  102. package/serveur/ipConfig.json +2 -2
  103. package/serveur/skiniParametres.js +55 -10
  104. package/serveur/utilsSkini.mjs +1 -1
  105. package/serveur/websocketServer.mjs +14 -4
  106. package/skini.mjs +4 -0
  107. package/blocklySkini/archive/blocklyControleur.js +0 -87
  108. package/blocklySkini/archive/blocklySkini.js +0 -84
  109. package/blocklySkini/archive/blocklyhop.js +0 -75
  110. package/blocklySkini/archive/clientControleurBlocly.js +0 -170
  111. package/blocklySkini/archive/index.html +0 -76
  112. package/blocklySkini/archive/testHHsuspend.txt +0 -89
  113. package/blocklySkini/archive/testHHtrap.txt +0 -262
  114. package/blocklySkini/archive/testOrchestration.txt +0 -177
  115. package/blocklySkini/archive/testOrchestration.xml +0 -447
  116. package/blocklySkini/archive/testOrchestration2.xml +0 -456
  117. package/blocklySkini/scripts/hiphop_blocks.old.js +0 -3010
  118. package/blocklySkini/scripts/hiphop_blocks11-2025.js +0 -6104
  119. package/myReact/archive/Nodeemitvaluedlocal1.hh.js +0 -52
  120. package/myReact/archive/abort-parNode.js +0 -79
  121. package/myReact/archive/abroNode.js +0 -169
  122. package/myReact/archive/abroNode2.js +0 -80
  123. package/myReact/archive/atom.compile.hh.js +0 -52
  124. package/myReact/archive/await-countNode.js +0 -67
  125. package/myReact/archive/await-nowvalNode.js +0 -44
  126. package/myReact/archive/callHH.js +0 -96
  127. package/myReact/archive/emit-if2.hh.compiled.js +0 -113
  128. package/myReact/archive/every1Node.js +0 -35
  129. package/myReact/archive/if-runNode.js +0 -74
  130. package/myReact/archive/if1Node.js +0 -43
  131. package/myReact/archive/makeawait.js +0 -0
  132. package/myReact/archive/myReact.old.js +0 -684
  133. package/myReact/archive/orchestration.js +0 -281
  134. package/myReact/archive/orchestration1.js +0 -132
  135. package/myReact/archive/orchestration1.xml +0 -465
  136. package/myReact/archive/orchestration2.js +0 -161
  137. package/myReact/archive/orchestrationHH.mano.js +0 -280
  138. package/myReact/archive/orchestrationHHTest.js +0 -428
  139. package/myReact/archive/orchestrationHHTest.xml +0 -234
  140. package/myReact/archive/orchestrationHHTestRun.js +0 -104
  141. package/myReact/archive/orchestrationHHTestRun.xml +0 -34
  142. package/myReact/archive/orchestrationTest0.js +0 -178
  143. package/myReact/archive/orchestrationTest1.js +0 -181
  144. package/myReact/archive/orchestrationTest2.js +0 -281
  145. package/myReact/archive/run3pointsNode.js +0 -59
  146. package/myReact/archive/runNode.js +0 -123
  147. package/myReact/archive/runNode2.js +0 -91
  148. package/myReact/archive/testAwait1.js +0 -141
  149. package/myReact/archive/testAwait1.xml +0 -86
  150. package/myReact/archive/testEvery1.js +0 -122
  151. package/myReact/archive/testEvery1.xml +0 -79
  152. package/myReact/archive/testHH1.js +0 -135
  153. package/myReact/archive/testHH1.xml +0 -86
  154. package/myReact/archive/testHH1revu.js +0 -104
  155. package/myReact/archive/testHH2.js +0 -122
  156. package/myReact/archive/testHH2.xml +0 -79
  157. package/myReact/archive/testHH3.js +0 -130
  158. package/myReact/archive/testHH3.xml +0 -86
  159. package/myReact/archive/testHHabort.js +0 -121
  160. package/myReact/archive/testHHabort.xml +0 -83
  161. package/myReact/archive/testMakeawait.js +0 -202
  162. package/myReact/archive/testRun1.js +0 -168
  163. package/myReact/archive/testRun1.xml +0 -142
  164. package/myReact/archive/titi.js +0 -28
  165. package/myReact/archive/titi.xml +0 -110
  166. package/myReact/archive/toto.js +0 -73
  167. package/myReact/archive/toto.xml +0 -198
  168. package/myReact/archive/trap-await-parallelNode.js +0 -123
  169. package/myReact/inutiles/hiver2022.xml +0 -804
  170. package/myReact/inutiles/hopeNode.xml +0 -459
  171. package/myReact/inutiles/mars2022.xml +0 -871
  172. package/myReact/inutiles/mystique1.xml +0 -318
  173. package/myReact/inutiles/mystiqueOSC.xml +0 -277
  174. package/myReact/inutiles/opus5Node.xml +0 -1271
  175. package/myReact/inutiles/opus5NodeLinux.xml +0 -1241
  176. package/myReact/inutiles/orchestrationHH.xml +0 -541
  177. package/myReact/inutiles/orchestrationHH2.xml +0 -547
  178. package/myReact/inutiles/testHH.xml +0 -95
  179. package/myReact/inutiles/trouveLaPercuTenor.xml +0 -349
@@ -0,0 +1,401 @@
1
+ // avec demoAbleton.als dans Live
2
+
3
+ "use strict";
4
+ import { createRequire } from 'module';
5
+ const require = createRequire(import.meta.url);
6
+ const ipConfig = require('../serveur/ipConfig.json');
7
+
8
+ import * as hh from "@hop/hiphop";
9
+ import * as utilsSkini from "../serveur/utilsSkini.mjs";
10
+ import * as tank from "../pieces/util/makeReservoir.mjs";
11
+
12
+ var par;
13
+ var debug = false;
14
+ var debug1 = true;
15
+ var midimix;
16
+ var oscMidiLocal;
17
+ var gcs;
18
+ var DAW;
19
+ var serveur;
20
+
21
+ // Avec des valeurs initiales
22
+ let CCChannel = 1;
23
+ let CCTempo = 100;
24
+ let tempoMax = 160;
25
+ let tempoMin = 40;
26
+ let tempoGlobal = 60;
27
+
28
+ export function setServ(ser, daw, groupeCS, oscMidi, mix){
29
+ if(debug) console.log("hh_ORCHESTRATION: setServ");
30
+ DAW = daw;
31
+ serveur = ser;
32
+ gcs = groupeCS;
33
+ oscMidiLocal = oscMidi;
34
+ midimix = mix;
35
+ tank.initMakeReservoir(gcs, serveur);
36
+ }
37
+
38
+ function setTempo(value, param){
39
+ tempoGlobal = value;
40
+
41
+ // if(midimix.getAbletonLinkStatus()) {
42
+ // if(debug1) console.log("ORCHESTRATION: set tempo Link:", value);
43
+ // midimix.setTempoLink(value);
44
+ // return;
45
+ // }
46
+
47
+ if ( value > tempoMax || value < tempoMin) {
48
+ console.log("ERR: Tempo set out of range:", value, "Should be between:", tempoMin, "and", tempoMax);
49
+ return;
50
+ }
51
+ var tempo = Math.round(127/(tempoMax - tempoMin) * (value - tempoMin));
52
+ if (debug1) {
53
+ console.log("Set tempo:", value, param.busMidiDAW, CCChannel, CCTempo, tempo, oscMidiLocal.getMidiPortClipToDAW() );
54
+ }
55
+ oscMidiLocal.sendControlChange(param.busMidiDAW, CCChannel, CCTempo, tempo);
56
+ }
57
+
58
+ let tempoValue = 0;
59
+ let tempoRythme = 0;
60
+ let tempoLimit = 0;
61
+ let tempoIncrease = true;
62
+ let transposeValue = 0;
63
+ let ratioTranspose = 1.763;
64
+ let offsetTranspose = 63.5;
65
+
66
+ // Création des signaux OUT de contrôle de la matrice des possibles
67
+ // Ici et immédiatement.
68
+ let signals = [];
69
+ let halt, start, emptyQueueSignal, patternSignal, stopReservoir, stopMoveTempo;
70
+ let tickCounter = 0;
71
+
72
+ export function setSignals(param) {
73
+ let interTextOUT = utilsSkini.creationInterfacesOUT(param.groupesDesSons);
74
+ let interTextIN = utilsSkini.creationInterfacesIN(param.groupesDesSons);
75
+
76
+ const TankUn = hiphop module () {
77
+ in stopReservoir;
78
+ in tank0IN;
79
+ in tank1IN;
80
+ in tank2IN;
81
+ in tank3IN;
82
+ out tank0OUT;
83
+ out tank1OUT;
84
+ out tank2OUT;
85
+ out tank3OUT;
86
+ ${ tank.makeReservoir(255, ["tank0","tank1","tank2","tank3"]) };
87
+ }
88
+
89
+ const TankDeux = hiphop module () {
90
+ in stopReservoir;
91
+ in tank4IN;
92
+ in tank5IN;
93
+ in tank6IN;
94
+ out tank4OUT;
95
+ out tank5OUT;
96
+ out tank6OUT;
97
+ ${ tank.makeReservoir(255, ["tank4","tank5","tank6"]) };
98
+ }
99
+
100
+ const Program = hiphop module() {
101
+ in start, halt, tick, DAWON, patternSignal, pulsation, midiSignal, emptyQueueSignal;
102
+ inout stopReservoir, stopMoveTempo, stopSolo, stopTransposition;
103
+ out ... ${ interTextOUT };
104
+ in ... ${ interTextIN };
105
+
106
+ loop{
107
+ await(start.now);
108
+ abort{
109
+ fork {
110
+ every(tick.now){
111
+ host{
112
+ //console.log("tick from HH", tickCounter++);
113
+ gcs.setTickOnControler(tickCounter++);
114
+ }
115
+ }
116
+ }par{
117
+ host{gcs.setTimerDivision(1);}
118
+ host{
119
+ gcs.setpatternListLength([3,255]);
120
+ setTempo(90, param);
121
+ }
122
+ host{
123
+ serveur.broadcast(JSON.stringify({
124
+ type: 'addSceneScore',
125
+ value:1
126
+ }));
127
+ }
128
+ host{
129
+ serveur.broadcast(JSON.stringify({
130
+ type: 'alertInfoScoreON',
131
+ value:'-*-*- Run tank'
132
+ }));
133
+ }
134
+ host {console.log('-*-*- Run tank');}
135
+ fork {
136
+ run ${ TankUn} () {*};
137
+ }
138
+ fork {
139
+ run ${ TankDeux} () {*};
140
+ }
141
+ await count(30,tick.now);
142
+ emit stopReservoir();
143
+ host{
144
+ serveur.broadcast(JSON.stringify({
145
+ type: 'alertInfoScoreON',
146
+ value:'-*-*- Random tanks during ticks'
147
+ }));
148
+ }
149
+ host {console.log('-*-*- Random tanks during ticks');}
150
+ yield;
151
+ signal stopM72719;
152
+ M72719 : {
153
+ fork{
154
+ run ${ TankDeux} () {*, stopM72719 as stopReservoir};
155
+ }par{
156
+ await count(20, tick.now);
157
+ emit stopM72719();
158
+ break M72719;
159
+ }
160
+ }
161
+ yield;
162
+ host{
163
+ serveur.broadcast(JSON.stringify({
164
+ type: 'alertInfoScoreON',
165
+ value:'-*-*- Run tanks pattern in group'
166
+ }));
167
+ }
168
+ host {console.log('-*-*- Run tanks pattern in group');}
169
+ emit groupe0OUT([true,255]);
170
+ host{gcs.informSelecteurOnMenuChange(255," groupe0", true) }
171
+
172
+ signal stopRG255720;
173
+ RG255720 : {
174
+ fork{
175
+ run ${ TankUn} () {*, stopRG255720 as stopReservoir};
176
+ }par{
177
+ run ${ TankDeux} () {*, stopRG255720 as stopReservoir};
178
+ }par{
179
+ await count(4, groupe0IN.now);
180
+ emit stopRG255720();
181
+ break RG255720;
182
+ }
183
+ }
184
+ emit groupe0OUT([false,255]);
185
+ host{gcs.informSelecteurOnMenuChange(255," groupe0", false) }
186
+ yield;
187
+ host{
188
+ serveur.broadcast(JSON.stringify({
189
+ type: 'alertInfoScoreON',
190
+ value:'-*-*- Run tanks waiting for pattern in DAW'
191
+ }));
192
+ }
193
+ host {console.log('-*-*- Run tanks waiting for pattern in DAW');}
194
+ emit groupe0OUT([true,255]);
195
+ host{gcs.informSelecteurOnMenuChange(255," groupe0", true) }
196
+ abort{
197
+ signal stopRG793200;
198
+ RG793200 : {
199
+ fork{
200
+ run ${ TankUn} () {*, stopRG793200 as stopReservoir};
201
+ }par{
202
+ run ${ TankDeux} () {*, stopRG793200 as stopReservoir};
203
+ }par{
204
+ await (patternSignal.now && (patternSignal.nowval[1] === "piano8"));
205
+ }
206
+ emit stopRG793200();
207
+ break RG793200;
208
+ }
209
+ host {console.log('-*-*- FIN TANK WAITING');}
210
+ } when count(20, tick.now);
211
+ emit groupe0OUT([false,255]);
212
+ host{gcs.informSelecteurOnMenuChange(255," groupe0", false) }
213
+ host{
214
+ DAW.cleanQueues();
215
+ gcs.cleanChoiceList(255);
216
+ }
217
+ host{
218
+ serveur.broadcast(JSON.stringify({
219
+ type: 'alertInfoScoreON',
220
+ value:'FIN TANK'
221
+ }));
222
+ }
223
+ host {console.log('-*-*- FIN TANK');}
224
+ yield;
225
+ host{
226
+ serveur.broadcast(JSON.stringify({
227
+ type: 'alertInfoScoreON',
228
+ value:'-*-*- Set group et unset group'
229
+ }));
230
+ }
231
+ host {console.log('-*-*- Set group et unset group');}
232
+ emit groupe0OUT([true,255]);
233
+ host{gcs.informSelecteurOnMenuChange(255," groupe0", true) }
234
+ await count(5,tick.now);
235
+ emit groupe0OUT([false,255]);
236
+ host{gcs.informSelecteurOnMenuChange(255," groupe0", false) }
237
+ yield;
238
+ host{
239
+ serveur.broadcast(JSON.stringify({
240
+ type: 'alertInfoScoreON',
241
+ value:'-*-*- Set group during ticks'
242
+ }));
243
+ }
244
+ host {console.log('-*-*- Set group during ticks');}
245
+ emit groupe0OUT([true,255]);
246
+ host{gcs.informSelecteurOnMenuChange(255," groupe0", true) }
247
+ emit groupe1OUT([true,255]);
248
+ host{gcs.informSelecteurOnMenuChange(255," groupe1", true) }
249
+ await count(5, tick.now);
250
+
251
+ emit groupe0OUT([false,255]);
252
+ host{gcs.informSelecteurOnMenuChange(255," groupe0", false) }
253
+ emit groupe1OUT([false,255]);
254
+ host{gcs.informSelecteurOnMenuChange(255," groupe1", false) }
255
+ yield;
256
+ host{
257
+ serveur.broadcast(JSON.stringify({
258
+ type: 'alertInfoScoreON',
259
+ value:'-*-*- Set group during patterns in groups'
260
+ }));
261
+ }
262
+ host {console.log('-*-*- Set group during patterns in groups');}
263
+ RG798518 : {
264
+ fork{
265
+ emit groupe0OUT([true,255]);
266
+ host{gcs.informSelecteurOnMenuChange(255," groupe0", true) }
267
+ emit groupe1OUT([true,255]);
268
+ host{gcs.informSelecteurOnMenuChange(255," groupe1", true) }
269
+ }par{
270
+ await count(2, groupe0IN.now);
271
+ break RG798518;
272
+ }par{
273
+ await count(2, groupe1IN.now);
274
+ break RG798518;
275
+ }
276
+ }
277
+ emit groupe0OUT([false,255]);
278
+ host{gcs.informSelecteurOnMenuChange(255," groupe0", false) }
279
+ emit groupe1OUT([false,255]);
280
+ host{gcs.informSelecteurOnMenuChange(255," groupe1", false) }
281
+ yield;
282
+ host{
283
+ serveur.broadcast(JSON.stringify({
284
+ type: 'alertInfoScoreON',
285
+ value:'-*-*- Set randomly group during ticks'
286
+ }));
287
+ }
288
+ host {console.log('-*-*- Set randomly group during ticks');}
289
+ emit groupe1OUT([true,255]);
290
+ host{gcs.informSelecteurOnMenuChange(255," groupe1", true) }
291
+ await count(10, tick.now);
292
+ emit groupe1OUT([false,255]);
293
+ host{gcs.informSelecteurOnMenuChange(255," groupe1", false) }
294
+ yield;
295
+ host{
296
+ DAW.cleanQueues();
297
+ gcs.cleanChoiceList(255);
298
+ }
299
+ host{
300
+ serveur.broadcast(JSON.stringify({
301
+ type: 'alertInfoScoreON',
302
+ value:'-*-*- wait for patterns in group'
303
+ }));
304
+ }
305
+ host {console.log('-*-*- wait for patterns in group');}
306
+ emit groupe0OUT([true,255]);
307
+ host{gcs.informSelecteurOnMenuChange(255," groupe0", true) }
308
+ emit groupe1OUT([true,255]);
309
+ host{gcs.informSelecteurOnMenuChange(255," groupe1", true) }
310
+ abort{
311
+ loop{
312
+ await count(1, groupe0IN.now);
313
+ host {console.log('pattern signal in group0');}
314
+ yield;
315
+ }
316
+ } when count(10, tick.now);
317
+ host{
318
+ DAW.cleanQueues();
319
+ gcs.cleanChoiceList(255);
320
+ }
321
+
322
+ host{
323
+ serveur.broadcast(JSON.stringify({
324
+ type: 'alertInfoScoreON',
325
+ value:'-*-*- wait for patterns in DAW'
326
+ }));
327
+ }
328
+ host {console.log('-*-*- wait for patterns in DAW');}
329
+ emit groupe0OUT([true,255]);
330
+ host{gcs.informSelecteurOnMenuChange(255," groupe0", true) }
331
+ emit groupe1OUT([true,255]);
332
+ host{gcs.informSelecteurOnMenuChange(255," groupe1", true) }
333
+ abort{
334
+ loop{
335
+ await immediate (patternSignal.now && (patternSignal.nowval[1] === 'piano11'));
336
+ host {console.log('pattern string piano 11');}
337
+ yield;
338
+ }
339
+ } when count(20, tick.now);
340
+
341
+ host{
342
+ DAW.cleanQueues();
343
+ gcs.cleanChoiceList(255);
344
+ }
345
+
346
+ host{
347
+ serveur.broadcast(JSON.stringify({
348
+ type: 'alertInfoScoreON',
349
+ value:'-*-*- Set group waiting for patterns in DAW'
350
+ }));
351
+ }
352
+ host {console.log('-*-*- Set group waiting for patterns in DAW');}
353
+ yield;
354
+ RG840039 : {
355
+ fork{
356
+ emit groupe0OUT([true,255]);
357
+ host{gcs.informSelecteurOnMenuChange(255," groupe0", true) }
358
+ emit groupe1OUT([true,255]);
359
+ host{gcs.informSelecteurOnMenuChange(255," groupe1", true) }
360
+ }par{
361
+ await immediate (patternSignal.now && (patternSignal.nowval[1] === 'piano11'));
362
+ break RG840039;
363
+ }par{
364
+ await immediate (patternSignal.now && (patternSignal.nowval[1] === 'piano9'));
365
+ break RG840039;
366
+ }par{
367
+ await immediate (patternSignal.now && (patternSignal.nowval[1] === 'piano8'));
368
+ break RG840039;
369
+ }
370
+ }
371
+ emit groupe0OUT([false,255]);
372
+ host{gcs.informSelecteurOnMenuChange(255," groupe0", false) }
373
+ emit groupe1OUT([false,255]);
374
+ host{gcs.informSelecteurOnMenuChange(255," groupe1", false) }
375
+ yield;
376
+ host{
377
+ serveur.broadcast(JSON.stringify({
378
+ type: 'alertInfoScoreON',
379
+ value:'-*-*- FIN GROUPE'
380
+ }));
381
+ }
382
+ host{
383
+ serveur.broadcast(JSON.stringify({
384
+ type: 'alertInfoScoreON',
385
+ value:'-*-*- FIN GROUPE'
386
+ }));
387
+ }
388
+ host{
389
+ DAW.cleanQueues();
390
+ gcs.cleanChoiceList(255);
391
+ }
392
+ host {console.log('-*-*- FIN GROUPE');}
393
+ }
394
+ } when (halt.now);
395
+ }
396
+ }
397
+ if(debug) console.log("orchestrationHH.mjs: setSignals", param.groupesDesSons);
398
+ var machine = new hh.ReactiveMachine( Program, {sweep:true, tracePropagation: false, traceReactDuration: false});
399
+ console.log("INFO: setSignals: Number of nets in Orchestration:",machine.nets.length);
400
+ return machine;
401
+ }
@@ -0,0 +1,101 @@
1
+
2
+ // Generated by Skini: Fri Dec 26 2025 19:00:34 GMT+0100 (heure normale d’Europe centrale)
3
+ "use strict"
4
+
5
+ // A utiliser si Processing en passerelle
6
+ exports.busMidiDAW = 1;
7
+
8
+ // Piece en OSC si la paramètre est false
9
+ // Sinon Skini parle MIDI
10
+ exports.directMidiON = true;
11
+
12
+ // Pour charger les fonctions et modules de scenes de type GOLEM
13
+ exports.scenesON = false;
14
+
15
+ exports.english = true;
16
+
17
+ /***********************************
18
+ Paramètres du simulateur
19
+ Si ces valeurs ne sont pas données c'est celle qui
20
+ sont dans le simulateur qui sont utilisées
21
+ ************************************/
22
+ exports.tempoMax = 500; // En ms
23
+ exports.tempoMin = 400; // En ms
24
+ exports.limiteDureeAttente = 33; // En pulsations
25
+
26
+ /********************************************************
27
+ AUTOMATE
28
+ *********************************************************/
29
+ // Pour un automate conforme à un rechargement selon les déclarations de module HipHop
30
+ exports.reactOnPlay = false;
31
+
32
+ // Pour une réaction à chaque pulsation
33
+ exports.pulsationON = false;
34
+
35
+ /*************************************
36
+ CHEMIN DES FICHIERS SONS MP3 pour les clients
37
+ Nom du sous répartoire ./sounds/xxxx
38
+ *************************************/
39
+ exports.soundFilesPath1 = "";
40
+
41
+ /***************************************
42
+ CHEMIN DES PARTITIONS DES PATTERNS ET CONFIG AVEC MUSICIENS
43
+ ****************************************/
44
+ exports.avecMusicien = false; // Pour mettre en place les spécificités au jeu avec des musiciens.
45
+ exports.decalageFIFOavecMusicien = 4; // Décalage de la FIFO vide avant le premier pattern dans une FIFO.
46
+ exports.patternScorePath1 ="";
47
+
48
+ /****************************************
49
+ ACTIVATION D'ALGORITHME D'ORGANISATION DES FIFOs
50
+ Si 0 ou undefined pas d'algorithme.
51
+ Si 1 algorithme de réorganisation Début, Milieu, Fin, Neutre (DFMN)
52
+ Dans le csv, D -> 1, M -> 2, F->3, N->4 (c'est fixé dans controleAbleton.js)
53
+ Si autre ... à créer...
54
+ ATTENTION: NE JAMAIS UTILISER EN SITUATION D'INTERACTION SI L'ALGORITHME
55
+ PEUT SUPPRIMER DES PATTERNS DES FIFOs
56
+ *****************************************/
57
+ exports.algoGestionFifo = 0;
58
+ exports.shufflePatterns = false;
59
+ /*****************************************************************************
60
+
61
+ Gestion de la Matrice des possibles
62
+ Automate de gestion de la matrice des possibles
63
+
64
+ ******************************************************************************/
65
+ exports.nbeDeGroupesClients = 3;
66
+
67
+ function setnbeDeGroupesClients(num) {
68
+ this.nbeDeGroupesClients = num;
69
+ }
70
+ exports.setnbeDeGroupesClients = setnbeDeGroupesClients;
71
+
72
+ exports.simulatorInAseperateGroup = false; // Si true, le dernier groupe client est réservé au simulateur.
73
+
74
+ // Pour un contrôle des Raspberries
75
+ exports.useRaspberries = false;
76
+ exports.playBufferMessage = "test";
77
+ exports.raspOSCPort = 4000;
78
+
79
+ // La synchro Midi, Link. Synchro Bitwig OSC par défaut si Midi et Link false.
80
+ exports.synchoOnMidiClock = false;
81
+ exports.synchroLink = true;
82
+ exports.synchroSkini = false;
83
+ exports.timer = 500;
84
+ exports.gameOSCSignals = false;
85
+
86
+ exports.sensorOSC = false;
87
+ exports.tempoSensorsInit = [0,0,0,0,0,0,0,0,0,0,0,0];
88
+ exports.sensorsSensibilities = [5,5,5,5,5,5,5,5,5,5,5,5];
89
+
90
+ const groupesDesSons = [
91
+ [ "tank0",0, "tank",100,100,1,"#5F6262",[],1 ],
92
+ [ "tank1",1, "tank",,,1,"#5F6262",[],1 ],
93
+ [ "tank2",2, "tank",,,1,"#5F6262",[],1 ],
94
+ [ "tank3",3, "tank",,,1,"#5F6262",[],1 ],
95
+ [ "tank4",4, "tank",200,100,2,"#5F6262",[],1 ],
96
+ [ "tank5",5, "tank",,,2,"#5F6262",[],1 ],
97
+ [ "tank6",6, "tank",,,2,"#5F6262",[],1 ],
98
+ [ "groupe0",7, "group",300,100,4,"#5F6262",[],1 ],
99
+ [ "groupe1",8, "group",400,100,4,"#5F6262",[],1 ],
100
+ ];
101
+ exports.groupesDesSons = groupesDesSons;