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.
- package/blocklySkini/blocklySkini.html +5 -1
- package/blocklySkini/scripts/hiphop_blocks.js +5 -6
- package/client/clientListe/clientListe.js +11 -0
- package/client/clientListe/clientListebundle.js +1755 -1909
- package/client/controleurHH/controleurHH.html +4 -0
- package/client/queueViewer/queue.html +34 -0
- package/client/queueViewer/queue.js +187 -0
- package/client/queueViewer/style.css +26 -0
- package/client/score/parto1.js +14 -11
- package/client/score/parto1bundle.js +55 -33
- package/client/score/score.html +8 -7
- package/doc/Doc Skini Node english.pdf +0 -0
- package/doc/Mode d'emploi Skini Node.pdf +0 -0
- package/doc/Tuto Skini.pdf +0 -0
- package/doc/quickstart.pdf +0 -0
- package/myReact/orchestrationHH.hh.js +147 -1843
- package/myReact/orchestrationHH.mjs +50 -231
- package/myReact/orchestrationHH.mjs.map +1 -1
- package/package.json +11 -8
- package/pieces/tutos/demoAbleton.csv +21 -0
- package/pieces/tutos/demoAbleton.js +100 -0
- package/pieces/tutos/demoAbleton.xml +180 -0
- package/pieces/tutos/demoHH.js +99 -0
- package/pieces/tutos/demoHH.xml +184 -0
- package/pieces/tutos/demoHHwait.js +100 -0
- package/pieces/tutos/demoHHwait.xml +175 -0
- package/pieces/tutos/tuto.csv +10 -0
- package/pieces/tutos/tuto.csv.good +1 -0
- package/pieces/tutos/tuto1.js +105 -0
- package/pieces/tutos/tuto1.xml +147 -0
- package/pieces/tutos/tuto10.back.js +106 -0
- package/pieces/tutos/tuto10.js +107 -0
- package/pieces/tutos/tuto10.xml +199 -0
- package/pieces/tutos/tuto11.js +111 -0
- package/pieces/tutos/tuto11.xml +124 -0
- package/pieces/tutos/tuto12.js +91 -0
- package/pieces/tutos/tuto12.xml +258 -0
- package/pieces/tutos/tuto2.back.js +106 -0
- package/pieces/tutos/tuto2.js +95 -0
- package/pieces/tutos/tuto2.xml +94 -0
- package/pieces/tutos/tuto3-2.js +105 -0
- package/pieces/tutos/tuto3-2.xml +96 -0
- package/pieces/tutos/tuto3.js +97 -0
- package/pieces/tutos/tuto3.xml +49 -0
- package/pieces/tutos/tuto4.js +107 -0
- package/pieces/tutos/tuto4.xml +106 -0
- package/pieces/tutos/tuto5.js +109 -0
- package/pieces/tutos/tuto5.xml +42 -0
- package/pieces/tutos/tuto6.js +105 -0
- package/pieces/tutos/tuto6.xml +26 -0
- package/pieces/tutos/tuto7.js +107 -0
- package/pieces/tutos/tuto7.xml +65 -0
- package/pieces/tutos/tuto8.js +105 -0
- package/pieces/tutos/tuto8.xml +76 -0
- package/pieces/tutos/tuto9.js +107 -0
- package/pieces/tutos/tuto9.xml +90 -0
- package/pieces/tutos/tutoAwait.js +111 -0
- package/pieces/tutos/tutoAwait.xml +171 -0
- package/pieces/tutos/tutoDoubleEmission.js +93 -0
- package/pieces/tutos/tutoDoubleEmission.xml +65 -0
- package/pieces/tutos/tutoESP32.js +104 -0
- package/pieces/tutos/tutoESP32.xml +246 -0
- package/pieces/tutos/tutoGame.js +126 -0
- package/pieces/tutos/tutoGame.xml +109 -0
- package/pieces/tutos/tutoGroups1.js +111 -0
- package/pieces/tutos/tutoGroups1.xml +137 -0
- package/pieces/tutos/tutoGroups2.js +97 -0
- package/pieces/tutos/tutoGroups2.xml +103 -0
- package/pieces/tutos/tutoGroups3.js +111 -0
- package/pieces/tutos/tutoGroups3.xml +128 -0
- package/pieces/tutos/tutoGroups4.js +111 -0
- package/pieces/tutos/tutoGroups4.xml +84 -0
- package/pieces/tutos/tutoIZ.js +95 -0
- package/pieces/tutos/tutoIZ.xml +135 -0
- package/pieces/tutos/tutoIf.js +111 -0
- package/pieces/tutos/tutoIf.xml +126 -0
- package/pieces/tutos/tutoMidi.js +126 -0
- package/pieces/tutos/tutoMidi.xml +62 -0
- package/pieces/tutos/tutoOS.js +121 -0
- package/pieces/tutos/tutoOSC.js +109 -0
- package/pieces/tutos/tutoOSC.xml +223 -0
- package/pieces/tutos/tutoOSCJonathan.js +94 -0
- package/pieces/tutos/tutoOSCJonathan.xml +312 -0
- package/pieces/tutos/tutoPatternInGroup.js +109 -0
- package/pieces/tutos/tutoPatternInGroup.xml +116 -0
- package/pieces/tutos/tutoRandomBlock.js +129 -0
- package/pieces/tutos/tutoRandomBlock.xml +194 -0
- package/pieces/tutos/tutoSuspend.js +107 -0
- package/pieces/tutos/tutoSuspend.xml +139 -0
- package/pieces/tutos/tutoSustain.js +107 -0
- package/pieces/tutos/tutoSustain.xml +109 -0
- package/pieces/tutos/tutoTank.csv +9 -0
- package/pieces/tutos/tutoTank.js +100 -0
- package/pieces/tutos/tutoTank.xml +326 -0
- package/pieces/tutos/tutoTestAll.csv +11 -0
- package/pieces/tutos/tutoTestAll.hh.js +401 -0
- package/pieces/tutos/tutoTestAll.js +101 -0
- package/pieces/tutos/tutoTestAll.xml +866 -0
- package/serveur/OSCandMidi.mjs +27 -3
- package/serveur/controleDAW.mjs +2 -1
- package/serveur/groupeClientsSons.mjs +27 -3
- package/serveur/ipConfig.json +2 -2
- package/serveur/skiniParametres.js +55 -10
- package/serveur/utilsSkini.mjs +1 -1
- package/serveur/websocketServer.mjs +14 -4
- package/skini.mjs +4 -0
- package/blocklySkini/archive/blocklyControleur.js +0 -87
- package/blocklySkini/archive/blocklySkini.js +0 -84
- package/blocklySkini/archive/blocklyhop.js +0 -75
- package/blocklySkini/archive/clientControleurBlocly.js +0 -170
- package/blocklySkini/archive/index.html +0 -76
- package/blocklySkini/archive/testHHsuspend.txt +0 -89
- package/blocklySkini/archive/testHHtrap.txt +0 -262
- package/blocklySkini/archive/testOrchestration.txt +0 -177
- package/blocklySkini/archive/testOrchestration.xml +0 -447
- package/blocklySkini/archive/testOrchestration2.xml +0 -456
- package/blocklySkini/scripts/hiphop_blocks.old.js +0 -3010
- package/blocklySkini/scripts/hiphop_blocks11-2025.js +0 -6104
- package/myReact/archive/Nodeemitvaluedlocal1.hh.js +0 -52
- package/myReact/archive/abort-parNode.js +0 -79
- package/myReact/archive/abroNode.js +0 -169
- package/myReact/archive/abroNode2.js +0 -80
- package/myReact/archive/atom.compile.hh.js +0 -52
- package/myReact/archive/await-countNode.js +0 -67
- package/myReact/archive/await-nowvalNode.js +0 -44
- package/myReact/archive/callHH.js +0 -96
- package/myReact/archive/emit-if2.hh.compiled.js +0 -113
- package/myReact/archive/every1Node.js +0 -35
- package/myReact/archive/if-runNode.js +0 -74
- package/myReact/archive/if1Node.js +0 -43
- package/myReact/archive/makeawait.js +0 -0
- package/myReact/archive/myReact.old.js +0 -684
- package/myReact/archive/orchestration.js +0 -281
- package/myReact/archive/orchestration1.js +0 -132
- package/myReact/archive/orchestration1.xml +0 -465
- package/myReact/archive/orchestration2.js +0 -161
- package/myReact/archive/orchestrationHH.mano.js +0 -280
- package/myReact/archive/orchestrationHHTest.js +0 -428
- package/myReact/archive/orchestrationHHTest.xml +0 -234
- package/myReact/archive/orchestrationHHTestRun.js +0 -104
- package/myReact/archive/orchestrationHHTestRun.xml +0 -34
- package/myReact/archive/orchestrationTest0.js +0 -178
- package/myReact/archive/orchestrationTest1.js +0 -181
- package/myReact/archive/orchestrationTest2.js +0 -281
- package/myReact/archive/run3pointsNode.js +0 -59
- package/myReact/archive/runNode.js +0 -123
- package/myReact/archive/runNode2.js +0 -91
- package/myReact/archive/testAwait1.js +0 -141
- package/myReact/archive/testAwait1.xml +0 -86
- package/myReact/archive/testEvery1.js +0 -122
- package/myReact/archive/testEvery1.xml +0 -79
- package/myReact/archive/testHH1.js +0 -135
- package/myReact/archive/testHH1.xml +0 -86
- package/myReact/archive/testHH1revu.js +0 -104
- package/myReact/archive/testHH2.js +0 -122
- package/myReact/archive/testHH2.xml +0 -79
- package/myReact/archive/testHH3.js +0 -130
- package/myReact/archive/testHH3.xml +0 -86
- package/myReact/archive/testHHabort.js +0 -121
- package/myReact/archive/testHHabort.xml +0 -83
- package/myReact/archive/testMakeawait.js +0 -202
- package/myReact/archive/testRun1.js +0 -168
- package/myReact/archive/testRun1.xml +0 -142
- package/myReact/archive/titi.js +0 -28
- package/myReact/archive/titi.xml +0 -110
- package/myReact/archive/toto.js +0 -73
- package/myReact/archive/toto.xml +0 -198
- package/myReact/archive/trap-await-parallelNode.js +0 -123
- package/myReact/inutiles/hiver2022.xml +0 -804
- package/myReact/inutiles/hopeNode.xml +0 -459
- package/myReact/inutiles/mars2022.xml +0 -871
- package/myReact/inutiles/mystique1.xml +0 -318
- package/myReact/inutiles/mystiqueOSC.xml +0 -277
- package/myReact/inutiles/opus5Node.xml +0 -1271
- package/myReact/inutiles/opus5NodeLinux.xml +0 -1241
- package/myReact/inutiles/orchestrationHH.xml +0 -541
- package/myReact/inutiles/orchestrationHH2.xml +0 -547
- package/myReact/inutiles/testHH.xml +0 -95
- 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;
|