diff nodescore.js @ 8:83dfd5f7186a

transport control mods
author tzara <rc-web@kiben.net>
date Thu, 05 Jul 2012 17:38:59 +0100
parents 69d572729f5d
children cd847f789b53
line wrap: on
line diff
--- a/nodescore.js	Wed Jul 04 22:08:35 2012 +0000
+++ b/nodescore.js	Thu Jul 05 17:38:59 2012 +0100
@@ -20,7 +20,7 @@
 	clientFiles.serve(request, response);	    
     });    
 });
-httpServer.listen(8889);
+httpServer.listen(8000);
 
 ////////////////////////////////////////////
 // connect to websockets 
@@ -35,12 +35,12 @@
     ////////////////////////////////////////////
     // metronome
     ////////////////////////////////////////////
-
+    socket.on('metroStop', stopMetro)
     function stopMetro () {
 	metroState=0;
     };
     
-    socket.on('metroStop', stopMetro)
+
     ////////////////////////////////////////////
     // Chronometer
     ////////////////////////////////////////////
@@ -57,13 +57,19 @@
 	chronstate = 1; chronometer();} 
 			}      // if not already started start the chronometer    
     function stopChr() {  chronstate = 0; }  // stop the chronometer
-    function resetChr() {  clearInterval();  
-			   var zecsec = 0; var seconds = 0; 
-			   var mins = 0; var hours = 0; 
-			   var chronstate = 0; }
-       
+    function resetChr() {  console.log("reset");
+			   clearInterval();
+			   chronstate = 0;
+			   zecsec = 0; seconds = 0; 
+			    mins = 0; hours = 0; 
+			    chronstate = 0; 
+			   var chron = pad(hours) +":"+pad(mins)+ ':'+ pad(seconds)+ ":"+ zecsec
+			   socket.broadcast.emit('chronFromServer', chron)
+			   socket.emit('chronFromServer', chron)
+			}
+    
     function chronometer() {
-	clearInterval();	
+	
 	if (chronstate==1){
 	zecsec += 1;       // set tenths of a second
 	if(zecsec > 9) { zecsec = 0; seconds += 1;}
@@ -125,17 +131,22 @@
     var seqB = { metrobeat:0, voice:2, name: "B", counter: 0, mm: 60, beatsinbar: 4, durations: srcsqr[1], units: [3,2,1,1,2,3]};
     var seqC = { metrobeat:0, voice:3, name: "C", counter: 0, mm: 60, beatsinbar: 4, durations: srcsqr[2], units: [4,5,6,5,4,2]};
     var seqD = { metrobeat:0, voice:4, name: "D", counter: 0, mm: 60, beatsinbar: 4, durations: srcsqr[3], units: [2,3,4,2,3,1]};
-
+    
+    var tock ;	
     var countdowntick;
 
-    countdowntick = function(seq){
+
+    var countdowntick = function(seq){
+
 	var outcount = 12; var incount=12;
 	var time = ((seq.durations[seq.counter]+1) *timemultiplier) + 30000 + (outcount*1000);
 	var ztime = time; var totaltime = time/1000
 	var unit = seq.units[seq.counter];
 	var tempoms = 60000/seq.mm
+	
 
-	setInterval(function(){
+
+	var tock = setInterval(function(){
 	    
 	    if (ztime >= 0 ){
 		// basic unit is still the second/1000ms - change this to tempoms? no i dont think so
@@ -175,17 +186,18 @@
 		socket.emit("pageFlipfromserver", seq.voice, unit, time, seq.mm,seq.counter);		
 		step(seq);     
 	    }
-	    	    	    
+
+	    if (ztime < 0){}	    	    	    
 	    // decrement the time 
-	    ztime -= 1000			
+	    ztime -= 1000
+			
 	},tempoms)
-    };
+			  };
     
 
     var step;
     step = function (seq) {
 	console.log(seq.voice)
-	// add 30 seconds to the base magic square duration	
 	clearInterval(countdowntick);
 	countdowntick(seq)
     };
@@ -201,15 +213,26 @@
 	    metroState=1;
 	    sequencerState=1;
 	    startSeq();
+	    ztime =-1;
 	}
     });
     
     socket.on('stopSeq', function () { 
-	clearInterval(countdowntick);	    
+	clearInterval(tock);	    
 	sequencerState=0;  
-	metroState=0;
+	stopChr();
+	stopMetro();
+
     });
 
+
+    socket.on('resetSeq', function () { 
+	console.log("rrrrreset")
+	resetChr();
+	
+    });
+
+
 });
 
 var chat = io.of('/chat');