Mercurial > hg > nodescore
diff nodescore.js @ 43:7f0485e0d0ff
updates via ljubljana
author | tzara <rc-web@kiben.net> |
---|---|
date | Sat, 08 Sep 2012 08:25:19 +0000 |
parents | 49c94f63b8b0 |
children | 8fc7155aa3ac |
line wrap: on
line diff
--- a/nodescore.js Tue Sep 04 07:25:49 2012 +0000 +++ b/nodescore.js Sat Sep 08 08:25:19 2012 +0000 @@ -7,31 +7,27 @@ //////////////////////////////////////////// */ - var sio = require('socket.io') , http = require('http') , fs = require('fs') -, $ = require('jQuery') , static = require('node-static'); +// run webserver serving static html +//////////////////////////////////////////// +var clientFiles = new static.Server('./www'); +var httpServer = http.createServer( + function(request, response) { + request.addListener('end', function () { + clientFiles.serve(request, response); + process.setMaxListeners(0); + }); + }); + +httpServer.listen(8889); + var pinging=0 - console.log("ping set to 0") -// run webserver serving static html -//////////////////////////////////////////// - -var clientFiles = new static.Server('./www'); - -var httpServer = http.createServer(function(request, response) { - request.addListener('end', function () { - clientFiles.serve(request, response); - process.setMaxListeners(0); - }); -}); - -httpServer.listen(8889); - //////////////////////////////////////////// // connect to websockets //////////////////////////////////////////// @@ -121,10 +117,11 @@ } socket.on('startChr', function () { startChr();}); + // if not already started start the chronometer function startChr() { if (chronstate !== 1) { chronstate = 1; chronometer();} - } // if not already started start the chronometer - + } + socket.on('stopChr', function () { stopChr();} ); function stopChr() { chronstate = 0; } // stop the chronometer @@ -153,18 +150,22 @@ srcsqr[2] = [03,00,17,16,35,34]; srcsqr[3] = [01,02,19,18,33,32]; - var seqA = { metrobeat:0, voice:1, name: "A", counter: 0, mm: 120, beatsinbar: 4, durations: srcsqr[0], units: [1,2,3,1,2,4]}; + 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: 120, beatsinbar: 4, durations: srcsqr[2], units: [4,5,6,5,4,2]}; - var seqD = { metrobeat:0, voice:4, name: "D", counter: 0, mm: 120, beatsinbar: 4, durations: srcsqr[3], units: [2,3,4,2,3,1]}; + 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 = 60000/seq.mm - var timemultiplier=tempoms - var outcount = 12; var incount=12; + // var tempoms = Math.floor(60000/seq.mm) + var tempoms = Math.floor(60000/seq.mm) + console.log(tempoms) + var timemultiplier=1 + var outcount = 4; var incount=4; var time = ((seq.durations[seq.counter]+1) *timemultiplier) + 30000 + (outcount*tempoms); - var ztime = time; var totaltime = time/tempoms + var time = Math.floor(time) + var ztime = time; + var totaltime = Math.floor(time/tempoms) var unit = seq.units[seq.counter]; // initiate first page here @@ -172,15 +173,15 @@ socket.emit("pageFlipfromserver", seq.voice, unit, time, seq.mm,seq.counter); function sequenCer() { - + // console.log(ztime) if (ztime >= 0 ){ // basic unit is still the second/1000ms - change this to tempoms? no i dont think so // count in and count out //////////////////////////////////////////// - var counter = ztime/tempoms - // + 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); @@ -218,7 +219,8 @@ } // flip the page - if (ztime == 0){ + if (counter == 0){ + seq.counter = (seq.counter + 1) % seq.durations.length socket.broadcast.emit("pageFlipfromserver", seq.voice, unit, time, seq.mm,seq.counter); //delete tockTock; @@ -248,7 +250,10 @@ if (sequencerState == 0) { console.log("sequencer starting...") startChr(); - step(seqA); step(seqB); step(seqC); step(seqD); + +////////////////////////////////////////////////////////////////// + + step(seqA);step(seqB); step(seqC); step(seqD); ztime =-1; } else console.log("sequencer already started...") @@ -292,23 +297,17 @@ */ -// periodically broadcast a ping - +// periodically broadcast a ping function serverTime(freq) { - - if (pinging==0){ - st = setInterval(function() { - var pinging=1; - var d = new Date(); var n = d.getTime(); - socket.emit("timeFromServer", n); - //socket.broadcast.emit("timeFromServer", n); - }, 1000); } - else console.log("already pinging") + if (pinging==0){ st = setInterval(function() { + var pinging=1; + var d = new Date(); var n = d.getTime(); + socket.emit("timeFromServer", n); + }, 1000); } else console.log("already pinging") } - // receive the pong calculate the latency and // return the response to the client - + socket.on("clientTimeResponse", function(x) { var d = new Date(); var n = d.getTime(); var latency = (n-x)/2;