Mercurial > hg > nodescore
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 |