Trying to get ungranulated playback to work
This commit is contained in:
		
							parent
							
								
									e25cd1dd53
								
							
						
					
					
						commit
						5ba3416b1f
					
				| @ -1,18 +1,28 @@ | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| Granulator { | Granulator { | ||||||
| 	var <buflen, <inb, <outb, <>posb, <triggerb, <pitchb, <rectriggerb, <modb, <buffer, <recorder, <grains, <triggersynth, <pitchsynth, server, mode, record, gain, mix, speed, trigger, size, blur, dust, slope, back, chorus, harmonics, detune, pitch, pan, track, jitter; | 	var <buflen, <inb, <outb, <>posb, <triggerb, <pitchb, <rectriggerb, <modb, <buffer, <recorder, <grains, <triggersynth, <pitchsynth, <loopsynth, server, mode, record, gain, mix, speed, trigger, size, blur, dust, slope, back, chorus, harmonics, depth, crate, detune, pitch, pan, track, jitter, loop, grainamp; | ||||||
| 
 | 
 | ||||||
| 	*init { | 	*init { | ||||||
| 		SynthDef( | 		SynthDef( | ||||||
| 			\grain_record, | 			\grain_record, | ||||||
| 			{ | 			{ | ||||||
| 				arg in = 2, trigger = 0, buffer = 0, mix = 0.5, record = 0.0; | 				arg in = 2, triggerb = 0, buffer = 0, mix = 0.5, record = 0.0; | ||||||
| 				var insig = record * In.ar(in, 1), trigsig = In.kr(trigger, 1); | 				var insig = record * In.ar(in, 1), trigsig = In.kr(triggerb, 1); | ||||||
| 				RecordBuf.ar(insig, buffer, 0, mix, 1 - mix, loop: 1, trigger: trigsig) | 				RecordBuf.ar(insig, buffer, 0, mix, 1 - mix, loop: 1, trigger: trigsig) | ||||||
| 			} | 			} | ||||||
| 		).add(); | 		).add(); | ||||||
| 
 | 
 | ||||||
|  | 		SynthDef( | ||||||
|  | 			\grain_looper, | ||||||
|  | 			{ | ||||||
|  | 				arg out = 2, triggerb = 0, buffer = 0, speed = 1, amp = 0, pan = 0; | ||||||
|  | 				var trigsig = In.kr(triggerb, 1), playsig; | ||||||
|  | 				playsig = PlayBuf.ar(1, buffer, speed, trigsig, 0.0, 1.0); | ||||||
|  | 				Out.ar(out, Pan2.ar(playsig, pan, amp)); | ||||||
|  | 			} | ||||||
|  | 		).add(); | ||||||
|  | 
 | ||||||
| 		SynthDef( | 		SynthDef( | ||||||
| 			\grain_play, | 			\grain_play, | ||||||
| 			{ | 			{ | ||||||
| @ -30,14 +40,14 @@ Granulator { | |||||||
| 		SynthDef( | 		SynthDef( | ||||||
| 			\grain_pitch, | 			\grain_pitch, | ||||||
| 			{ | 			{ | ||||||
| 				arg out, posb, triggerb, track=1, dir=1, detune=0.0, chorus=0, harmonics=2, pitch=0; | 				arg out, posb, triggerb, track=1, dir=1, detune=0.0, chorus=0, depth=2, crate=128, harmonics=2, pitch=0; | ||||||
| 				var tracking, base, chor, det, csig, dsig; | 				var tracking, base, chor, det, csig, dsig; | ||||||
| 				csig = Latch.kr(WhiteNoise.kr(), In.kr(triggerb)); | 				csig = Latch.kr(SinOsc.kr(crate), In.kr(triggerb)); | ||||||
| 				dsig = Latch.kr(WhiteNoise.kr(), In.kr(triggerb)); | 				dsig = Latch.kr(WhiteNoise.kr(), In.kr(triggerb)); | ||||||
| 				tracking = Schmidt.kr(Slope.kr(posb), 0, 0) * 2 - 1; | 				tracking = Schmidt.kr(Slope.kr(posb), 0, 0) * 2 - 1; | ||||||
| 				base = 2.pow(pitch) * dir * (track * tracking + (1 - track)); | 				base = 2.pow(pitch) * dir * (track * tracking + (1 - track)); | ||||||
| 				det = detune * dsig + 1; | 				det = detune * dsig + 1; | ||||||
| 				chor = chorus * harmonics.pow((csig * 2).round) + (1 - chorus); | 				chor = chorus * harmonics.pow((csig * depth).round) + (1 - chorus); | ||||||
| 				Out.kr(out, base * chor * det); | 				Out.kr(out, base * chor * det); | ||||||
| 			} | 			} | ||||||
| 		).add(); | 		).add(); | ||||||
| @ -74,12 +84,16 @@ Granulator { | |||||||
| 		slope = 0; | 		slope = 0; | ||||||
| 		chorus = 0; | 		chorus = 0; | ||||||
| 		harmonics = 2; | 		harmonics = 2; | ||||||
|  | 		depth = 2; | ||||||
|  | 		crate = 128; | ||||||
| 		detune = 0; | 		detune = 0; | ||||||
| 		pitch = 0; | 		pitch = 0; | ||||||
| 		mix = 0.25; | 		mix = 0.25; | ||||||
| 		pan = 0; | 		pan = 0; | ||||||
| 		track  = 0.5; | 		track  = 0.5; | ||||||
| 		jitter = 0.25; | 		jitter = 0.25; | ||||||
|  | 		loop = 0.0; | ||||||
|  | 		grainamp = 0.75; | ||||||
| 		triggerb = Bus.control(server, 1); | 		triggerb = Bus.control(server, 1); | ||||||
| 		pitchb = Bus.control(server, 1); | 		pitchb = Bus.control(server, 1); | ||||||
| 		buffer = Buffer.alloc(server, server.sampleRate * buflen, 1); | 		buffer = Buffer.alloc(server, server.sampleRate * buflen, 1); | ||||||
| @ -87,7 +101,7 @@ Granulator { | |||||||
| 			\in, inb, | 			\in, inb, | ||||||
| 			\buffer, buffer, | 			\buffer, buffer, | ||||||
| 			\record, 0, | 			\record, 0, | ||||||
| 			\trigger, rectriggerb | 			\triggerb, rectriggerb | ||||||
| 		], server, \addToTail); | 		], server, \addToTail); | ||||||
| 		triggersynth = Synth.new(\grain_trigger, [ \out, triggerb ]); | 		triggersynth = Synth.new(\grain_trigger, [ \out, triggerb ]); | ||||||
| 		pitchsynth = Synth.new(\grain_pitch, [ \out, pitchb, \triggerb, triggerb, \posb, posb ]); | 		pitchsynth = Synth.new(\grain_pitch, [ \out, pitchb, \triggerb, triggerb, \posb, posb ]); | ||||||
| @ -101,9 +115,17 @@ Granulator { | |||||||
| 				\triggerb, triggerb, | 				\triggerb, triggerb, | ||||||
| 				\pitchb, pitchb, | 				\pitchb, pitchb, | ||||||
| 				\modb, modb, | 				\modb, modb, | ||||||
| 			\size, 0.1 | 				\size, size, | ||||||
|  | 				\amp, grainamp | ||||||
| 			], | 			], | ||||||
| 			server); | 			server); | ||||||
|  | 		// loopsynth = Synth.new( | ||||||
|  | 		// 	\grain_looper, [ | ||||||
|  | 		// 		\out, outb, \buffer, buffer, \triggerb, triggerb, | ||||||
|  | 		// 		\speed, speed, \pan, pan, \amp, loop | ||||||
|  | 		// 	], | ||||||
|  | 		// server); | ||||||
|  | 
 | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	reset { | newbuflen | | 	reset { | newbuflen | | ||||||
| @ -124,6 +146,8 @@ Granulator { | |||||||
| 	blur    { ^blur } | 	blur    { ^blur } | ||||||
| 	chorus  { ^chorus } | 	chorus  { ^chorus } | ||||||
| 	harmonics  { ^harmonics } | 	harmonics  { ^harmonics } | ||||||
|  | 	depth   { ^depth } | ||||||
|  | 	crate   { ^crate } | ||||||
| 	detune  { ^detune } | 	detune  { ^detune } | ||||||
| 	pitch   { ^pitch } | 	pitch   { ^pitch } | ||||||
| 	dust    { ^dust } | 	dust    { ^dust } | ||||||
| @ -132,6 +156,8 @@ Granulator { | |||||||
| 	pan     { ^pan } | 	pan     { ^pan } | ||||||
| 	track   { ^track } | 	track   { ^track } | ||||||
| 	jitter  { ^jitter } | 	jitter  { ^jitter } | ||||||
|  | 	loop    { ^loop } | ||||||
|  | 	grainamp { ^grainamp } | ||||||
| 
 | 
 | ||||||
| 	mode_    { | v | mode = v; } // todo - playback mode in this class? | 	mode_    { | v | mode = v; } // todo - playback mode in this class? | ||||||
| 	record_  { | v | record = v; recorder.set(\record, v);} | 	record_  { | v | record = v; recorder.set(\record, v);} | ||||||
| @ -139,6 +165,7 @@ Granulator { | |||||||
| 	gain_    { | v | gain = v; grains.set(\amp, v); } | 	gain_    { | v | gain = v; grains.set(\amp, v); } | ||||||
| 	size_    { | v | size = v; grains.set(\size, v); } | 	size_    { | v | size = v; grains.set(\size, v); } | ||||||
| 	pan_     { | v | pan = v; grains.set(\pan, v); } | 	pan_     { | v | pan = v; grains.set(\pan, v); } | ||||||
|  | 	speed_   { | v | speed = v; loopsynth.set(\speed, v); } | ||||||
| 	track_   { | v | track = v; grains.set(\track, v); } | 	track_   { | v | track = v; grains.set(\track, v); } | ||||||
| 	jitter_  { | v | jitter = v; grains.set(\jitter, v); } | 	jitter_  { | v | jitter = v; grains.set(\jitter, v); } | ||||||
| 	blur_    { | v | blur = v; grains.set(\blur, v); } | 	blur_    { | v | blur = v; grains.set(\blur, v); } | ||||||
| @ -148,7 +175,10 @@ Granulator { | |||||||
| 	back_    { | v | back = v; pitchsynth.set(\dir, if( v > 0, { -1 }, { 1 })); } | 	back_    { | v | back = v; pitchsynth.set(\dir, if( v > 0, { -1 }, { 1 })); } | ||||||
| 	chorus_  { | v | chorus = v; pitchsynth.set(\chorus, v); } | 	chorus_  { | v | chorus = v; pitchsynth.set(\chorus, v); } | ||||||
| 	harmonics_  { | v | harmonics = v; pitchsynth.set(\harmonics, v); } | 	harmonics_  { | v | harmonics = v; pitchsynth.set(\harmonics, v); } | ||||||
|  | 	depth_   { | v | depth = v; pitchsynth.set(\depth, v); } | ||||||
|  | 	crate_  { | v | crate = v; pitchsynth.set(\crate, v); } | ||||||
| 	detune_  { | v | detune = v; pitchsynth.set(\detune, v); } | 	detune_  { | v | detune = v; pitchsynth.set(\detune, v); } | ||||||
| 	pitch_   { | v | pitch = v; pitchsynth.set(\pitch, v); } | 	pitch_   { | v | pitch = v; pitchsynth.set(\pitch, v); } | ||||||
| 
 | 	loop_    { | v | loop = v; loopsynth.set(\amp, v); } | ||||||
|  | 	grainamp_ { | v | grainamp = v; grains.set(\amp, v); } | ||||||
| } | } | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user