Distortion Techniques in MAX/MSP

Paul R's icon

Hi everyone, I'm looking into creating some distortion effects, sort of custom-designed with some interesting tweaks.
I'm still working on a demo patch so people can see what I'm getting at but for the moment, does anyone know of any effectives techniques for doing stuff like this in MAX?

I'm trying to stray away from the standard overdrive~ object etc, looking into tanh~, atan~ trying to produce some different transfer functions. Waveshaping's also a possibility but any help on creating a lookup table with different transfer functions would be handy!

Thanks for any help,

Paul R

LoneMonad aka don malone's icon

a coupla my favs
[degrade~]
[pong~]

Steven Miller's icon

Modifying my 'window-maker' patch to produce waveshaping functions is
pretty straight forward. In fact, I have an unfinished version of
just such a thing around somewhere. Meanwhile, have a look at the
'window-maker' patch: .

On Mar 12, 2008, at 5:16 PM, Paul Rees wrote:

>
> Hi everyone, I'm looking into creating some distortion effects,
> sort of custom-designed with some interesting tweaks.
> I'm still working on a demo patch so people can see what I'm
> getting at but for the moment, does anyone know of any effectives
> techniques for doing stuff like this in MAX?
>
> I'm trying to stray away from the standard overdrive~ object etc,
> looking into tanh~, atan~ trying to produce some different transfer
> functions. Waveshaping's also a possibility but any help on
> creating a lookup table with different transfer functions would be
> handy!

----
Steven M. Miller
Professor, Contemporary Music Program
College of Santa Fe

Home
SFIFEM
Atrium Sound Space
OVOS
CMP

Andrew Benson's icon

A quick search of the forum archives should turn up a number of
techniques for distortion and waveshaping. My experience is that a good
distortion sound usually is a combination of pre/post filtering, ring
modulation, and any number of other signal conditioning methods. Below
is a patch that generates wavetable lookup distortion using the
function object to draw distortion curves.

AB

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

Adam Murray's icon

Quote: Paul R wrote on Wed, 12 March 2008 10:16
----------------------------------------------------
> Waveshaping's also a possibility but any help on creating a lookup table with different transfer functions would be handy!
>

I made an example of a waveshaper that uses the pattr system to interpolate between shapes. This is just a simple example that uses a sine wave at a fixed pitch. There are only a few basic shape generators included but you can draw your own. Maybe it will give you some ideas.

BenCello's icon

Hi !

There are a lot of topics around about distorsion, fuzz and all these downgrading effects... Have a search ;)

Here is a topic where I posted a distorsion I made base on polynomial or linear function generation.

Cheers

Peter Castine's icon

I am rather fond of lp.nn~ and lp.scamp~.

nn~ is in the Litter Starter Pack.

scamp~ is for Pros.

They're both rather cute.

Best -- Peter

Gregory Taylor's icon

There's always the ever-popular *~ > clip~

:-)

marlon brando's icon

andrewb@cycling74.com wrote on Wed, 12 March 2008 11:52A quick search of the forum archives should turn up a number of
techniques for distortion and waveshaping. My experience is that a good
distortion sound usually is a combination of pre/post filtering, ring
modulation, and any number of other signal conditioning methods. Below
is a patch that generates wavetable lookup distortion using the
function object to draw distortion curves.

AB

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

Thanks,

Would it be difficult to recreate the Live waveshaper device?

I get nice results from the filtering I think.

When building this into an additive synthesizer, should I make the waveshaper a polyphonic device?

Am I getting ringmodulation when feeding polyphonic material into the waveshaper?

Cheers

Roman Thilenius's icon

dont forget to make color or amount depending on
loudness or frequency of the input signal.

the classic "3-band" system is a must for a good
distortion effect.

pgk's icon

Hi there! You can also think about using gen17 from percolate. (fills a buffer with chebyshev polynomials, suitable for use in [lookup~]).

Also, you can try taking the cosine (cos~).

cheers!

redhexagonal's icon

i use this atan~ technique

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