improvements to installation audio player
							parent
							
								
									32b4768ca6
								
							
						
					
					
						commit
						b96cca7a2e
					
				| @ -1,44 +1,51 @@ | ||||
| ( | ||||
| SynthDef(\hdpPlayer, {arg playDurBus = 5, playBuf = 0; | ||||
| 	var startTrig, playDur, fadeTime, changeTrig, playSig, fade; | ||||
| 	startTrig = InTrig.kr(playDurBus); | ||||
| 	playDur = In.kr(playDurBus); | ||||
| SynthDef(\hdpPlayer, {arg playBuf = 0, gate = 0; | ||||
| 	var playDur, fadeTime, changeTrig, playSig, fade; | ||||
| 	fadeTime = 30; | ||||
| 	playSig = PlayBuf.ar(2, playBuf, BufRateScale.kr(playBuf), startTrig, 0); | ||||
| 	fade = EnvGen.kr(Env.asr(fadeTime, 1, fadeTime), Stepper.kr(startTrig + TDelay.kr(startTrig, playDur - fadeTime), 0, 0, 1)); | ||||
| 	playSig = PlayBuf.ar(2, playBuf, BufRateScale.kr(playBuf), gate, 0); | ||||
| 	fade = EnvGen.kr(Env.asr(fadeTime, 1, fadeTime), gate); | ||||
| 	Out.ar(0, playSig * fade); | ||||
| 	Out.ar([0, 1], BrownNoise.ar * 0.05 * (fade - 1).abs); | ||||
| 	SendReply.kr(TDelay.kr(startTrig, playDur), '/unlock'); | ||||
| }).add; | ||||
| 
 | ||||
| ); | ||||
| 
 | ||||
| ( | ||||
| var recDir, recPaths, recInfo, playBuf, playDurBus, lock; | ||||
| recDir = "/home/mwinter/a_history_of_the_domino_problem/recs/"; | ||||
| var recDir, recPaths, recInfo, playBuf, player, isPlaying, playRoutine; | ||||
| recDir = "/home/mwinter/Portfolio/a_history_of_the_domino_problem/a_history_of_the_domino_problem_source/recs/"; | ||||
| recPaths = ["berger_knuth.wav", "robinson.wav", "penrose.wav", "ammann.wav", "kari_culik.wav", "jaendel_rao.wav"].collect({arg file; recDir +/+ file}); | ||||
| recInfo = recPaths.collect({arg path; var sndFile; sndFile = SoundFile.openRead(path); [sndFile.numFrames, sndFile.sampleRate]}); | ||||
| playBuf = Buffer.read(s, recPaths[0]); | ||||
| playDurBus = Bus.control(s,1); | ||||
| lock = false; | ||||
| //lock = false; | ||||
| isPlaying = false; | ||||
| player = Synth(\hdpPlayer, [\playBuf, playBuf]); | ||||
| 
 | ||||
| OSCFunc({ arg msg, time; | ||||
| 	var numPlayFrames, startFrame; | ||||
| 	[time, msg].postln; | ||||
| 	lock.postln; | ||||
| 	if(lock.not, { | ||||
| 		numPlayFrames = (5.rand + 5) * 60 * recInfo[msg[1]][1]; | ||||
| 		startFrame = (recInfo[msg[1]][0] - numPlayFrames).rand; | ||||
| 	//lock.postln; | ||||
| 	playRoutine.stop; | ||||
| 	playRoutine = Routine({ | ||||
| 		var playDur, piece, numPlayFrames, startFrame; | ||||
| 		if(isPlaying, { | ||||
| 			player.set(\gate, 0); | ||||
| 			30.wait; | ||||
| 		}); | ||||
| 		isPlaying = true; | ||||
| 		piece = msg[1]; | ||||
| 		playDur = (5.0.rand + 5) * 10; | ||||
| 		numPlayFrames = playDur * recInfo[piece][1]; | ||||
| 		startFrame = (recInfo[piece][0] - numPlayFrames).rand; | ||||
| 		playBuf.free; | ||||
| 		playBuf = Buffer.read(s, recPaths[msg[1]], startFrame, numPlayFrames, action: {arg buf; | ||||
| 			playDurBus.set(numPlayFrames / recInfo[msg[1]][1]) | ||||
| 		playBuf = Buffer.read(s, recPaths[piece], startFrame, numPlayFrames, action: {arg buf; | ||||
| 			player.set(\gate, 1); | ||||
| 		}); | ||||
| 		lock = true; | ||||
| 		Routine({10.wait; lock = false; lock.postln}).play | ||||
| 	}); | ||||
| 		(playDur - 30).wait; | ||||
| 		player.set(\gate, 0); | ||||
| 		30.wait; | ||||
| 		isPlaying = false; | ||||
| 	}).play | ||||
| },'/playTiling', n); | ||||
| Synth(\hdpPlayer, [\playDurBus, playDurBus, \playBuf, playBuf]); | ||||
| ) | ||||
| 
 | ||||
| n = NetAddr("127.0.0.1", 57120) | ||||
| n.sendMsg('/playTiling', 5) | ||||
| n.sendMsg('/playTiling', 1) | ||||
| 
 | ||||
|  | ||||
					Loading…
					
					
				
		Reference in New Issue