Mercurial > hg > nodescore
diff nodescore.js @ 54:66bf613fb818
pre clean up push - moved vars into scoreB.js - called up with requirejs
added requirejs dep
author | tzara <rc-web@kiben.net> |
---|---|
date | Wed, 19 Dec 2012 13:36:19 +0000 |
parents | a0ae699ac444 |
children | 474c1ad1e811 |
line wrap: on
line diff
--- a/nodescore.js Sun Oct 14 00:26:42 2012 +0000 +++ b/nodescore.js Wed Dec 19 13:36:19 2012 +0000 @@ -14,6 +14,17 @@ , fs = require('fs') , static = require('node-static'); +var requirejs = require('requirejs'); + +requirejs.config({ + //Pass the top-level main.js/index.js require + //function to requirejs so that node modules + //are loaded relative to the top-level JS file. + nodeRequire: require, + findNestedDependencies: true + +}); + // run webserver serving static html //////////////////////////////////////////// var clientFiles = new static.Server('/usr/share/nodescore/www'); @@ -30,6 +41,9 @@ var pinging=0 console.log("ping set to 0") +//requirejs(['socketsstuff'],function(socketsstuff) {}); + + //////////////////////////////////////////// // connect to websockets //////////////////////////////////////////// @@ -71,59 +85,59 @@ fs.write( id, timestring+" " + socket.nickname + ": "+ msg+"\n", null, 'utf8', function(){}); }); }); - + +// /* //////////////////////////////////////////// - // metronome + // chronometer + sequencer controls (all this should be modularised) //////////////////////////////////////////// - - socket.on('metroStop', stopMetro) - function stopMetro () { - metroState=0; - }; -var chronstate=0; + socket.on('stopWatch', function (state) { stopWatch(state);}); + socket.on('stopChr', function () { stopChr();}); + socket.on('resetChr', function () { resetChr();}); + socket.on('startSeq', function () { startChr();}); + var chronstate=0; - + // send the date/time every second xdatetime = setInterval(function () { d = ch.xdateTime() socket.broadcast.emit('dateTime', d) - socket.emit('dateTime', d) + socket.emit('dateTime', d) }, 1000) - - - socket.on('startSeq', function () { startChr();}); - // if not already started start the chronometer - function startChr() { if (chronstate !== 1) { + + + // if not already started start the chronometer and sequencer + function startChr(socket) { if (chronstate !== 1) { chronstate = 1; chronCtrl(1,100); step(seqA);step(seqB); step(seqC); step(seqD); -} - } - - - socket.on('stopWatch', function (state) { stopWatch(state);}); + } + } + // if not already started start the chronometer function stopWatch(state) { if (chronstate !== 1) { if (state==1){ chronstate = 1; chronCtrl(1,100);} } + + // if get 0 then stop the chron + if (state==0){ + chronstate = 0; + clearInterval(xstopwatch); + } + // if get 2 then reset the chron + if (state==2){ + chronstate = 0; + c=ch.zeroChron() + socket.broadcast.emit('chronFromServer', c) + socket.emit('chronFromServer', c) + } + } - if (state==0){ - chronstate = 0; - clearInterval(xstopwatch); - } - if (state==2){ - chronstate = 0; - c=ch.zeroChron() - socket.broadcast.emit('chronFromServer', c) - socket.emit('chronFromServer', c) - } - } - - +////////////////////////////// +// /* this should be moved to its own file chronometer.js function chronCtrl (state,interval){ console.log("=========================== chronstate=" + chronstate) @@ -132,35 +146,32 @@ var starttime = new Date().getTime() / 1000; //var interval = 1020 - date.getMilliseconds(); xstopwatch = setInterval(function () { - var nowtime = new Date().getTime() / 1000; - now = nowtime-starttime - hours = parseInt( now / 3600 ) % 24; - minutes = parseInt( now / 60 ) % 60; - seconds = parseInt(now % 60); - milliseconds = Math.floor((now-seconds)*10)%60; - - time = (hours < 10 ? "0" + hours : hours) + ":" + (minutes < 10 ? "0" + minutes : minutes) + ":" + (seconds < 10 ? "0" + seconds : seconds) + "."+milliseconds; - console.log(time) + var nowtime = new Date().getTime() / 1000; + now = nowtime-starttime + hours = parseInt( now / 3600 ) % 24; + minutes = parseInt( now / 60 ) % 60; + seconds = parseInt(now % 60); + milliseconds = Math.floor((now-seconds)*10)%60; + time = (hours < 10 ? "0" + hours : hours) + ":" + (minutes < 10 ? "0" + minutes : minutes) + ":" + (seconds < 10 ? "0" + seconds : seconds) + "."+milliseconds; + //console.log(time) socket.broadcast.emit('chronFromServer', time) socket.emit('chronFromServer', time) - }, 200) + }, 100) } if (state==0) { clearInterval(xstopwatch); } } - +//*/ // stop the chronometer - socket.on('stopChr', function () { stopChr();}); + function stopChr() {console.log("stop chron................................................") chronCtrl(0) chronstate=0 } - + function pad(number) { return (number < 10 ? '0' : '') + number } - - socket.on('resetChr', function () { resetChr();}); function resetChr() {//clearInterval(); chronstate = 0; zecsec = 0; seconds = 0; @@ -172,53 +183,36 @@ socket.emit('chronFromServer', chron) } + //////////////////////////////////////////// - // magic square sequencer + // magic square sequencer (this should be modularised) //////////////////////////////////////////// -// var score = require('./score'); -// var c = require('/usr/share/nodescore/www/m/js/chronometer'); + + // all the variables this sequencer needs are in scoreB.js -// var mm = score.mm + requirejs(['scoreB'],function(scoreB) {}); + var sequencerState = 0; - - - // var srcsqr = score.srcsqr - var srcsqr = [] - srcsqr[0] = [22,21,24,25,06,07]; - srcsqr[1] = [20,23,27,26,05,04]; - srcsqr[2] = [03,00,17,16,35,34]; - srcsqr[3] = [01,02,19,18,33,32]; + var countdowntick = function(seq){ -// var seqA = score.seqA -// var seqB = score.seqB -// var seqC = score.seqC -// var seqD = score.seqD - - var seqA = { metrobeat:0, voice:1, name: "A", counter: 0, mm: 60, beatsinbar: 4, durations: srcsqr[0], units: [1,2,3,1,2,4]}; - var seqB = { metrobeat:0, voice:2, name: "B", counter: 0, mm: 120, beatsinbar: 4, durations: srcsqr[1], units: [3,2,1,1,2,3]}; - var seqC = { metrobeat:0, voice:3, name: "C", counter: 0, mm: 90, beatsinbar: 4, durations: srcsqr[2], units: [4,5,6,5,4,2]}; - var seqD = { metrobeat:0, voice:4, name: "D", counter: 0, mm: 105, beatsinbar: 4, durations: srcsqr[3], units: [2,3,4,2,3,1]}; - - - - var countdowntick = function(seq){ - // var tempoms = Math.floor(60000/seq.mm) + // var tempoms = Math.floor(60000/seq.mm) var tempoms = Math.floor(60000/seq.mm) - //console.log(tempoms) - var timemultiplier=1 + + var timemultiplier=1000 var outcount = 4; var incount=4; var time = ((seq.durations[seq.counter]+1) *timemultiplier) + 30000 + (outcount*tempoms); var time = Math.floor(time) var ztime = time; var totaltime = Math.floor(time/tempoms) var unit = seq.units[seq.counter]; - + var voice = seq.voice; + console.log(time) // initiate first page here - socket.broadcast.emit("pageFlipfromserver", seq.voice, unit, time, seq.mm,seq.counter); - socket.emit("pageFlipfromserver", seq.voice, unit, time, seq.mm,seq.counter); + socket.broadcast.emit("pageFlipfromserver", voice, unit, time, seq.mm,seq.counter); + socket.emit("pageFlipfromserver", voice, unit, time, seq.mm,seq.counter); function sequenCer() { - // console.log(ztime) + // console.log(ztime) if (ztime >= 0 ){ // basic unit is still the second/1000ms - change this to tempoms? no i dont think so @@ -228,30 +222,29 @@ var counter = Math.floor(ztime/tempoms) //console.log(counter) if (counter >= 0 ){ - socket.broadcast.emit('counterText', seq.voice, seq.counter, counter); - socket.emit('counterText', seq.voice, seq.counter, counter); + socket.broadcast.emit('counterText', voice, seq.counter, counter); + socket.emit('counterText', voice, seq.counter, counter); if (counter <= outcount ) { - socket.broadcast.emit('countinFromServer', seq.voice, counter, "","stop in: ", "red", "transparent"); + socket.broadcast.emit('countinFromServer', voice, counter, "","stop in: ", "red", "transparent"); } if (counter > (totaltime)-incount && counter <= totaltime ) { - socket.broadcast.emit('countinFromServer', seq.voice, counter-(totaltime-incount), "","play in: ", "green","transparent"); - socket.emit('countinFromServer', seq.voice, counter-(totaltime-incount), "","play in: ", "green","transparent"); - + socket.broadcast.emit('countinFromServer', voice, counter-(totaltime-incount), "","play in: ", "green","transparent"); + socket.emit('countinFromServer', voice, counter-(totaltime-incount), "","play in: ", "green","transparent"); } if (counter == (totaltime)-incount ) { - socket.broadcast.emit('countinFromServer', seq.voice, "+", "","playing.. ", "green","transparent"); - socket.emit('countinFromServer', seq.voice, "+", "","playing.. ", "green","transparent"); + socket.broadcast.emit('countinFromServer', voice, "+", "","playing.. ", "green","transparent"); + socket.emit('countinFromServer', voice, "+", "","playing.. ", "green","transparent"); } // remove displayed number with " " at end of both countin/out if (counter == 0 ) { - socket.broadcast.emit('countinFromServer', seq.voice, "", "","", "green","transparent"); - socket.broadcast.emit('counterText', seq.voice, seq.counter, ""); - socket.emit('counterText', seq.voice, seq.counter, ""); + socket.broadcast.emit('countinFromServer', voice, "", "","", "green","transparent"); + socket.broadcast.emit('counterText', voice, seq.counter, ""); + socket.emit('counterText', voice, seq.counter, ""); } } @@ -260,14 +253,14 @@ // push out the pulse to metronome seq.metrobeat = (seq.metrobeat+1)%seq.beatsinbar ; - socket.broadcast.emit('metroPulse', tempoms, seq.voice,seq.metrobeat); - socket.emit('metroPulse', tempoms, seq.voice,seq.metrobeat); + socket.broadcast.emit('metroPulse', tempoms, voice,seq.metrobeat); + socket.emit('metroPulse', tempoms, voice,seq.metrobeat); } // flip the page if (counter == 0){ seq.counter = (seq.counter + 1) % seq.durations.length - socket.broadcast.emit("pageFlipfromserver", seq.voice, unit, time, seq.mm,seq.counter); + socket.broadcast.emit("pageFlipfromserver", voice, unit, time, seq.mm,seq.counter); //delete tockTock; step(seq); } @@ -291,7 +284,7 @@ step = function (seq) { //clearInterval(seq.boo); - //clearInterval(countdowntick); + clearInterval(countdowntick); countdowntick(seq) sequencerState=1; }; @@ -369,7 +362,8 @@ }); - -exports.io = io; -exports.sio = sio; +//}); +//exports.io = io; +//exports.sio = sio; +exports.socket= io.sockets; exports.httpServer = httpServer; \ No newline at end of file