Playing With SuperCollider

I have a few passions in life and audio is one. For me, music and audio occupy many of the same areas as technology in the brain. When I first started playing with sound in my older brother's closet studio I was amazed at how, with the right effects and sound source(am radio noise), I could make the space sound like a star ship. Reading about the more experimental music acts(thanks Avant Rock and Calcasieu Public Library) only encouraged me to dig deeper into the world of sound design. I bounced around to different software such as csound, pureData, and SuperCollider. I even managed to earn an art school degree for my trouble.

Over the years I've kept coming back to SuperCollider. SuperCollider is basically a combination of a server and programming language. SC-Synth(server) and SC-lang(language). I'm not a programming wiz but to my eye SuperCollider is like a python or other non compiled, interpreted programming language. SuperCollider also includes a nice IDE called SC-IDE where you can write and test your code.

Today I opened up an old patch and improved it a bit based on some things I've learned since making the original patch. The patch is called Batman Voice and is a basic pitchshifter with a mic as the input. Think serial killer voice or interrogation mode.

Previously the patch was just a collection of UGens. I converted it into a proper SynthDef with arguments. So now I can call an instance of the Batman and modify the settings live per instance.

My next step with this patch will be to clean up some of the artifacts and use line or an Osc to modulate some settings.  

//// SynthDef Version of Batman Voice /////

(
SynthDef.new(\Batman,{
	arg out = 0, wsize = 0.1, pratio = 0.4, pdisp = 0.4, tdisp = 0.3;
	var sig, input;
	input = SoundIn.ar(0,1);
	sig = PitchShift.ar(
		in:input,
		windowSize:wsize,
		pitchRatio:pratio,
		pitchDispersion:pdisp,
		timeDispersion:tdisp);

		Out.ar(out,sig!2)
}).add
)

b = Synth.new(\Batman);
b.set(\pdisp, 0);
b.set(\tdisp, 0);
b.set(\pratio, 0.65);