diff nodescore.js @ 39:3ba24da53406

still trying to sort memory leak... js closures will kill me addedb screenshot
author tzara <rc-web@kiben.net>
date Thu, 23 Aug 2012 08:40:55 +0000
parents ea8d61c851c0
children 56767c69b7c4
line wrap: on
line diff
--- a/nodescore.js	Wed Aug 22 12:51:28 2012 +0000
+++ b/nodescore.js	Thu Aug 23 08:40:55 2012 +0000
@@ -83,38 +83,38 @@
     function pad(number) { return (number < 10 ? '0' : '') + number }
     
     // the chronometer initial states
-    var chronstate = 0; var zecsec = 0; var seconds = -20; 
+    var chronstate = 0; var zecsec = 0; var seconds = 0; 
     var mins = 0; var hours = 0;
  
-    function startChr() { if (chronstate !== 1) {
+    function startChr() { if (chronstate !== 1) { 
 	chronstate = 1; chronometer();} 
 			}      // if not already started start the chronometer    
-    function stopChr() {  chronstate = 0; }  // stop the chronometer
-    function resetChr() {  console.log("reset");
-			   clearInterval();
+    
+    function stopChr() {  chronstate = 0; }  
+    // stop the chronometer
+   
+    function resetChr() {//clearInterval();
 			   chronstate = 0;
 			   zecsec = 0; seconds = 0; 
 			    mins = 0; hours = 0; 
 			    chronstate = 0; 
 			   var chron = pad(hours) +":"+pad(mins)+ ':'+ pad(seconds)+ ":"+ zecsec
+			   // send 0.0.0 values to display
 			   socket.broadcast.emit('chronFromServer', chron)
 			   socket.emit('chronFromServer', chron)
 			}
     
-    var ding
+    var dater
     function dateTime() { 
-
-	ding = setInterval( function () {
+	dater = setInterval( function () {
 	    var datetime= new Date(); 
 	    var now=datetime.toString()
-//	    console.log(now);
 	    socket.broadcast.emit("dateTime", now);
-// 	    socket.emit("dateTime", now);
+ 	    socket.emit("dateTime", now);
 	}, 1000)}
    
-    clearInterval(ding);
+    clearInterval(dater);
     dateTime()
-
     
     function chronometer() {
 	
@@ -156,7 +156,7 @@
     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 countdowntick = function(seq){
+     var countdowntick = function(seq){
 
 	var outcount = 12; var incount=12;
 	var time = ((seq.durations[seq.counter]+1) *timemultiplier) + 30000 + (outcount*1000);
@@ -166,8 +166,8 @@
 	
 	// initiate first page here
 	socket.broadcast.emit("pageFlipfromserver", seq.voice, unit, time, seq.mm,seq.counter);
-	
-	var tock = setInterval(function(){
+
+	function sequenCer() {
 
 	    if (ztime >= 0 ){
 		
@@ -176,86 +176,98 @@
 		////////////////////////////////////////////
 		
 		var counter = ztime/1000
-		socket.broadcast.emit('counterText', seq.voice, seq.counter, counter);
+		//
+		if (counter >= 0 ){
+		    socket.broadcast.emit('counterText', seq.voice, seq.counter, counter);
+		    socket.emit('counterText', seq.voice, seq.counter, counter);
+		    
+		    if (counter <= outcount ) {              
+			socket.broadcast.emit('countinFromServer', seq.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");
+		    
+		    }
+		    
+		    if (counter == (totaltime)-incount ) {
+			socket.broadcast.emit('countinFromServer', seq.voice, "+", "","playing..", "green","black");
+			socket.emit('countinFromServer', seq.voice, "+", "","playing..", "green","black");
+		    }
+		    
+		// remove displayed number with " " at end of both countin/out
 
-		if (counter > 0 && counter <= outcount ) {              
-		    socket.broadcast.emit('countinFromServer', seq.voice, counter, "","stop in:", "red", "transparent");
-		    socket.broadcast.emit('counterText', seq.voice, seq.counter, counter);
-		}
+
+		    
+		    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, "");
+		    }
+		}		    
 		
-		// remove displayed number with " " at end of both countin/out
 		
-		if (counter == 0 ) {
-		    socket.broadcast.emit('counterText', seq.voice, seq.counter, counter);
-		    socket.broadcast.emit('countinFromServer', seq.voice, "///", "//","/", "green","transparent");
-		}
-		
-		if (counter > (totaltime)-incount  && counter <= totaltime ) {        
+		// on each beat do:
 
-		    socket.broadcast.emit('countinFromServer', seq.voice, counter-(totaltime-incount), "","play in:", "green","black");	    
-		    socket.broadcast.emit('counterText', seq.voice, seq.counter, counter);
-		}
-		
-		if (counter == (totaltime)-incount ) {
-		    socket.broadcast.emit('countinFromServer', seq.voice, "+", "","playing..", "green","black");
-		    socket.broadcast.emit('counterText', seq.voice, seq.counter, counter);
-		}
-	    	
 		// push out the pulse to metronome	
-		socket.broadcast.emit('counterText', seq.voice, seq.counter, counter);
 		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("pageFlipfromserver", seq.voice, unit, time, seq.mm,seq.counter);
+
+
 	    }
 	    
 	    // flip the page
-
+	    
 	    if (ztime == 0){
-		socket.broadcast.emit('counterText', seq.voice, seq.counter, counter);
-		//socket.emit('counterText', seq.voice, seq.counter, " ");
 		seq.counter = (seq.counter + 1) % seq.durations.length	    		
 		socket.broadcast.emit("pageFlipfromserver", seq.voice, unit, time, seq.mm,seq.counter);
-// 		socket.emit("pageFlipfromserver", seq.voice, unit, time, seq.mm,seq.counter);		
-		delete tock;	
+		//delete tockTock;	
 		step(seq);     
 	    }
-
-	    if (ztime < 0){
-		socket.broadcast.emit('counterText', seq.voice, seq.counter, counter);
-	    }
-	    	    	    
+	    	    
 	    // decrement the time 
 	    ztime -= 1000
-	    socket.broadcast.emit('counterText', seq.voice, seq.counter, counter);
-				
-	}, tempoms)
+	    
+	}
 
-	  };
+	var boo = setInterval(sequenCer, tempoms);
 
-//	    socket.on('stopSeq', function () {
-//		console.log("sequencer stopping...")	    
-//		clearInterval(tock)
-//		sequencerState=0;  
-//		stopChr();    
-		//		var tock = function(){null}
-	    
-//	    });
+	socket.on('stopSeq', function () {
+	    //donaldduck = mickeymouse + 7
+	    sequenCer.clearInterval
+	    console.log("sequencer stopping...")	    
+	    // grrr why wont this clearInterval work
+	    sequencerState = 0
+	    clearInterval(boo)
+	    stopChr();    
+//	    var countdowntick = "" 
 
+	});
+	
+    };
+    
+////////////////
+    
     socket.on('startSeq', function () { 
 	if (sequencerState == 0) { 
-	    console.log("sequencer starting...")	    
-	    sequencerState=1;
-	    startChr();
-	    step(seqA); step(seqB); step(seqC); step(seqD);	    
-	    ztime =-1;
+	console.log("sequencer starting...")	    
+	startChr();
+	step(seqA); step(seqB); step(seqC); step(seqD);	    
+	ztime =-1;
 	}
 	else console.log("sequencer already started...")
     });
+   
 
+    step = function (seq) {
+	//clearInterval(seq.boo);
+	//clearInterval(countdowntick);
+	countdowntick(seq)
+	sequencerState=1;
 
-
-
+ };    
     
     socket.on('resetSeq', function () { 
 	console.log("reset")
@@ -264,10 +276,7 @@
 
 
     
-    step = function (seq) {
-	clearInterval(countdowntick);
-	countdowntick(seq)
-    };    
+
 
 
     ////////////////////////////////////////////