Waveshaping...

guitarguy93's icon

As you guys may have noticed, I posted about making a replicated TB-303 with some added features such as polyphony, lfos, etc.

I've decided that the original TB-303 makes it's square wave by taking two saw waves, one ramp-up, one ramp-down, and then distorting that signal in a waveshaper of some sort. I want to know how to incorporate an adjustable waveshaper into my synth. The problem is, I'm no good at math, so the formulas I've found on the internet are useless to me.

I was hoping anyone could give me a simple example of a sinusoidal waveshaper in Max/MSP.

Thanks for any help anyone can give me!

Steven Miller's icon

Not sure if this is exactly what you're looking/hoping for, but here's an example of waveshaping in Max.

Max Patch
Copy patch and select New From Clipboard in Max.

Hope it helps!

guitarguy93's icon

Thanks much! I haven't opened it quite yet, but I've successfully created a Waveshaper using [buffer~], [waveform~], [lookup~], and some external sound files to create perfect Sine/Saw/Square waves.

Here's a problem I'm having, though; What I try to open the files in [buffer~], they seem to have some trouble opening. Sometimes, Max simply can't open the file. Other times, they seem to open, but they aren't the waveforms I'm trying to open. Any ideas?

EDIT: Your patch helped me amazingly! I used some of your patch in mine. I hope you don't mind.

Nonetheless, the reason I'm editing this post is because, apparently, the [buffer~] object will load the waveform, but the [waveform~] object won't display it until I start drawing in the waveform window. I'm not sure how to change this.

EDIT2: This was fixed by simply reloading Ableton Live and Max.

Peter McCulloch's icon

stkr posted a great collection of waveshaping algorithm implementations a while back in the projects. Check them out, they're really useful.