comparison nodescore.js @ 64:20758a107447

major fix of lots of bugs
author tzara <rc-web@kiben.net>
date Thu, 23 May 2013 22:41:23 +0000
parents 9bf133b91890
children ab53902406d4
comparison
equal deleted inserted replaced
63:9bf133b91890 64:20758a107447
187 //////////////////////////////////////////// 187 ////////////////////////////////////////////
188 // magic square sequencer (this should be modularised) 188 // magic square sequencer (this should be modularised)
189 //////////////////////////////////////////// 189 ////////////////////////////////////////////
190 // all the variables this sequencer needs are in scoreB.js 190 // all the variables this sequencer needs are in scoreB.js
191 requirejs(['scoreB'],function(scoreB) {}); 191 requirejs(['scoreB'],function(scoreB) {});
192 var sequencerState = 0; 192
193 var transect = 0 193 var sequencerState=0;
194 var countdowntick = function(seq){ 194 var numberoftransects=3
195 var order=8
196 var countdowntick=function(seq){
197 var unit=seq.units[seq.transect%numberoftransects][seq.counter];
198 var unitlast=seq.units[seq.transect%numberoftransects][seq.counter-1];
199 var voice=seq.voice;
195 var tempoms = Math.floor(60000/seq.mm) 200 var tempoms = Math.floor(60000/seq.mm)
196 var timemultiplier=1000 201 var timemultiplier=1000
197 var outcount = 2; var incount=3; 202 var outcount=2; var incount=2;
198 var time = (( seq.durations[seq.counter] ) 203 var dur=srcsqr[Math.floor(unit/order)][unit%order]
199 * timemultiplier ) 204 var time = dur;
200 + 1000 + (outcount*tempoms); 205 var ztime=time;
201 var time = Math.floor(time) 206 var totaltime=time
202 var ztime = time; 207
203 var totaltime = Math.floor(time/tempoms) 208 if (seq.counter == 7){ seq.nexttransect=seq.transect+1 ;
204 209 seq.nextunit=seq.units[seq.nexttransect%numberoftransects][seq.counter];
205 var unit = seq.units[transect%3][seq.counter]; 210 }
206 var unitlast = seq.units[transect%3][seq.counter-1]; 211 else
207 var voice = seq.voice; 212 seq.nextunit=seq.units[seq.transect%numberoftransects][seq.counter+1];
208 213
209 // initiate first page here 214 // initiate first page here
210 socket.broadcast.emit("pageFlipfromserver", 215 socket.broadcast.emit("pageFlipfromserver",
211 voice, unit, time, 216 voice, unit, time,
212 seq.mm,seq.counter,unitlast); 217 seq.mm,seq.counter,seq.nextunit );
213 socket.emit("pageFlipfromserver", 218 socket.emit("pageFlipfromserver",
214 voice, unit, time, 219 voice, unit, time,
215 seq.mm,seq.counter,unitlast); 220 seq.mm,seq.counter,seq.nextunit );
216 221
217 function sequenCer() { 222 function sequenCer() {
218
219 if (ztime >= 0 ){ 223 if (ztime >= 0 ){
220 // basic unit is still the second/1000ms - change this to tempoms? no i dont think so 224 var counter = ztime
221 // count in and count out 225 // flip the page
222 //////////////////////////////////////////// 226 if (counter == 0){
223 var counter = Math.floor(ztime/tempoms) 227 //increment the row position
228 seq.counter = (seq.counter + 1) % (order)
229 //increment the transect
230 if ( seq.counter==0 ){ seq.transect += 1 }
231 socket.broadcast.emit("pageFlipfromserver", voice, unit, time, seq.mm,seq.counter,seq.nextunit);
232
233 clearInterval(pulse)
234 step(seq);
235 }
224 236
225 if (counter >= 0 ){ 237 if (counter >= 0 ){
226 socket.broadcast.emit('counterText', 238 socket.broadcast.emit('counterText',
227 voice, unit, counter,seq.counter,unitlast); 239 voice, unit, counter,seq.counter,unitlast,seq.transect%numberoftransects);
228 socket.emit('counterText', 240 socket.emit('counterText',
229 voice, unit, counter,seq.counter,unitlast); 241 voice, unit, counter,seq.counter,unitlast,seq.transect%numberoftransects);
230 242
231 if (counter <= outcount ) { 243 if (counter <= outcount ) {
232 socket.broadcast.emit('countinFromServer', 244 socket.broadcast.emit('countinFromServer',
233 voice, counter, 245 voice, counter,
234 "","stop in: ", "red", "transparent",unit); 246 "","stop in: ", "red", "transparent",unit);
252 "","playing.. ", "green","transparent",unit); 264 "","playing.. ", "green","transparent",unit);
253 socket.emit('countinFromServer', 265 socket.emit('countinFromServer',
254 voice, "+", 266 voice, "+",
255 "","playing.. ", "green","transparent",unit); 267 "","playing.. ", "green","transparent",unit);
256 } 268 }
257
258 } 269 }
259 270
260 // on each beat do: 271 // on each beat do:
261 // push out the pulse to metronome 272 // push out the pulse to metronome
262 seq.metrobeat = (seq.metrobeat+1)%seq.beatsinbar ; 273 seq.metrobeat = (seq.metrobeat+1)%seq.beatsinbar ;
263 socket.broadcast.emit('metroPulse', tempoms, voice,seq.metrobeat); 274 socket.broadcast.emit('metroPulse', tempoms, voice,seq.metrobeat);
264 socket.emit('metroPulse', tempoms, voice,seq.metrobeat); 275 socket.emit('metroPulse', tempoms, voice, seq.metrobeat);
265 } 276 }
266 277
267 // flip the page 278
268 if (counter == 0){ 279
269
270 seq.counter = (seq.counter + 1) % seq.durations.length
271 socket.broadcast.emit("pageFlipfromserver", voice, unit, time, seq.mm,seq.counter);
272
273 if ( seq.counter==0 ){ transect += 1 }
274 console.log(voice, seq.counter,transect)
275
276 //delete tockTock;
277 step(seq);
278
279 }
280
281 // decrement the time 280 // decrement the time
282 ztime -= tempoms 281 ztime -= 1
283 282
284 283 // this shows undefined counter output - bug related
285 284 // console.log(counter)
286 } 285 }
287 286
288 var pulse = setInterval(sequenCer, tempoms); 287 var pulse = setInterval(sequenCer, 50);
289 288
290 socket.on('stopSeq', function () { 289 socket.on('stopSeq', function () {
291 //donaldduck = mickeymouse + 7 290 //donaldduck = mickeymouse + 7
292 sequenCer.clearInterval 291 sequenCer.clearInterval
293 console.log("sequencer stopping...") 292 console.log("sequencer stopping...")
297 stopChr(); 296 stopChr();
298 }); 297 });
299 }; 298 };
300 299
301 step = function (seq) { 300 step = function (seq) {
301
302 clearInterval(countdowntick); 302 clearInterval(countdowntick);
303 countdowntick(seq) 303 countdowntick(seq)
304 sequencerState=1; 304 sequencerState=1;
305 }; 305 };
306 306