|  |  |  | @ -349,7 +349,7 @@ s.waitForBoot({ | 
		
	
		
			
				|  |  |  |  | 	clickCreateSynthForLive.value; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | 	group = Group.new; | 
		
	
		
			
				|  |  |  |  | 	berger = Synth.tail(group, \berger); | 
		
	
		
			
				|  |  |  |  | 	//berger = Synth.tail(group, \berger); | 
		
	
		
			
				|  |  |  |  | 	mixer = Synth.tail(group, \mixer); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | 	playbackData = Dictionary.new(n: 6); | 
		
	
	
		
			
				
					|  |  |  | @ -394,14 +394,26 @@ s.waitForBoot({ | 
		
	
		
			
				|  |  |  |  | 		[msg, time, addr, port].postln; | 
		
	
		
			
				|  |  |  |  | 		if(msg[1] == 0, { | 
		
	
		
			
				|  |  |  |  | 			//need some work here to make sure all synths are getting cutoff correctly | 
		
	
		
			
				|  |  |  |  | 			group.set(\release, 2); | 
		
	
		
			
				|  |  |  |  | 			group.set(\gate, 0); | 
		
	
		
			
				|  |  |  |  | 			//group.set(\release, 2); | 
		
	
		
			
				|  |  |  |  | 			//group.set(\gate, 0); | 
		
	
		
			
				|  |  |  |  | 			//group.release; | 
		
	
		
			
				|  |  |  |  | 			player.stop; | 
		
	
		
			
				|  |  |  |  | 		}, { | 
		
	
		
			
				|  |  |  |  | 			var pbinds, transportData, measureLengths, patterns, stream, offset, offsetStream, terminationStream; | 
		
	
		
			
				|  |  |  |  | 			# pbinds, transportData, measureLengths = playbackData[msg[2]]; | 
		
	
		
			
				|  |  |  |  | 			//patterns = Ppar(pbinds.postln.add(createTransportPattern.value(addr, transportData).postln)); | 
		
	
		
			
				|  |  |  |  | 			patterns = Ptpar([0, createTransportPattern.value(addr, transportData), 1 * msg[5]/60.0, createClickPattern.value(transportData, group), 8 + (msg[5]/60.0), Ppar(pbinds)]); | 
		
	
		
			
				|  |  |  |  | 			//patterns = Ptpar([0, createTransportPattern.value(addr, transportData), 1 * msg[5]/60.0, createClickPattern.value(transportData, group), 8 + (msg[5]/60.0), Ppar(pbinds)]); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | 			if((msg[6].postln != -1) && (msg[2].postln != "jaendel"), { | 
		
	
		
			
				|  |  |  |  | 				var lastItem; | 
		
	
		
			
				|  |  |  |  | 				"this still ran".postln; | 
		
	
		
			
				|  |  |  |  | 				lastItem = transportData.detectIndex({arg item; item[0] > msg[6]}); | 
		
	
		
			
				|  |  |  |  | 				lastItem.postln; | 
		
	
		
			
				|  |  |  |  | 				transportData = transportData.keep(lastItem + 1); | 
		
	
		
			
				|  |  |  |  | 			}); | 
		
	
		
			
				|  |  |  |  | 			patterns = Pfpar([ | 
		
	
		
			
				|  |  |  |  | 				createTransportPattern.value(addr, transportData), | 
		
	
		
			
				|  |  |  |  | 				Ptpar([1 * msg[5]/60.0, createClickPattern.value(transportData, group), 8 + (msg[5]/60.0), Ppar(pbinds)]) | 
		
	
		
			
				|  |  |  |  | 			]); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | 			stream = patterns.asStream; | 
		
	
		
			
				|  |  |  |  | 			if(msg[3] == 1, { | 
		
	
	
		
			
				
					|  |  |  | @ -414,6 +426,7 @@ s.waitForBoot({ | 
		
	
		
			
				|  |  |  |  | 			terminationStream = Routine({addr.sendMsg("/transport", 0)}); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | 			player = EventStreamPlayer(offsetStream ++ stream ++ terminationStream); | 
		
	
		
			
				|  |  |  |  | 			//player = EventStreamPlayer(offsetStream ++ stream); | 
		
	
		
			
				|  |  |  |  | 			tempoClock = TempoClock(msg[5]/60.0); | 
		
	
		
			
				|  |  |  |  | 			player.play(tempoClock); | 
		
	
		
			
				|  |  |  |  | 			//player.play(tempoClock, quant: Quant.new(0, 0, -2)); | 
		
	
	
		
			
				
					|  |  |  | 
 |