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