66 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
| (
 | |
| SynthDef(\verbDelayFX, {
 | |
| 	arg inBus, outBus, revWet=0.8, dlyWet=0.8, feedback = 0.5 ;
 | |
| 	
 | |
| 	var snd = In.ar(inBus, 2);
 | |
| 	var verb = JPverb.ar(snd);
 | |
| 	var delay = Greyhole.ar(snd, feedback: feedback);
 | |
| 	snd = snd + (verb * revWet) + (delay * dlyWet) * 0.5;
 | |
| 	
 | |
| 	Out.ar(outBus, snd);
 | |
| }).add;
 | |
| 
 | |
| SynthDef(\bgrain, { |out = 0, gate = 1, amp = 0.1, bufnum = \b, gfreq=150, rate=0.5|
 | |
|     var snd, pan, env, freqdev;
 | |
| 
 | |
|     pan = LFNoise1.kr(0.1).range(-1, 1) * LFNoise0.kr(gfreq).range(0.2,1);
 | |
|     env = EnvGen.kr(
 | |
|         Env([0, 1, 0], [20, 20], \sin, 1),
 | |
|         gate,
 | |
|         doneAction: Done.freeSelf);
 | |
| 	rate = [0.5, 1];
 | |
| 	snd = GrainBuf.ar(
 | |
| 		numChannels:2,
 | |
| 		trigger:Impulse.kr(LFNoise1.kr(gfreq).range(0.8,1) * gfreq),
 | |
| 		dur: 0.7  * LFNoise0.kr(gfreq).range(1,1.1),
 | |
| 		sndbuf: bufnum,
 | |
| 		rate: [rate * LFNoise1.kr.range(0.99, 1), rate * LFNoise1.kr.range(0.99, 1) * 2],
 | |
| 		pos: LFNoise2.kr(0.01).range(0, 1) * LFNoise0.kr(gfreq).range(1,1.02),
 | |
| 		//pos: LFTri.kr(0.25),
 | |
| 		interp: 2,
 | |
| 		pan: pan);
 | |
| 	snd = RLPF.ar(snd, freq: LFNoise2.kr(0.1).exprange(400,15000));
 | |
| 	snd = snd * LFNoise2.ar(0.01).range(0.6,1);
 | |
| 	snd = snd * env * amp;
 | |
| 	snd = Limiter.ar(snd, 0.7);
 | |
| 	
 | |
| 	Out.ar(out, snd);
 | |
| }).add;
 | |
| );
 | |
| 
 | |
| // load sound file
 | |
| //b = Buffer.read(s, thisProcess.nowExecutingPath.dirname +/+ "smp/calling.wav");
 | |
| b = Buffer.readChannel(s, thisProcess.nowExecutingPath.dirname +/+ "smp/Famonics - Gliding - Calling.flac", channels: [0]);
 | |
| 
 | |
| // create a bus for reverb
 | |
| ~reverBus = Bus.audio(s,2);
 | |
| 
 | |
| (
 | |
| // create reverb with input from reverb bus
 | |
| ~reverbDelay = Synth(\verbDelayFX, [\inBus, ~reverBus, \outBus, 0, \revWet, 0.5, \dlyWet, 0.5], addAction: \addAfter);
 | |
| 
 | |
| // start granulator
 | |
| ~grain1 = Synth(\bgrain, [\out, ~reverBus, \bufnum, b], addAction: \addToHead);
 | |
| )
 | |
| 
 | |
| // fadeout
 | |
| ~grain1.set(\gate, 0);
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 |