interpolating between waveshaping values


    Nov 03 2008 | 4:43 pm
    Greetings,
    I'm looking to interpolate between two waveshaping functions ('previous' and 'current'). Attached is my current waveshaping patch (macbook running max 4.6 on windows xp), and as it is it does not support interpolation. When you click on function, the new distortion setting is automatically triggered, commonly resulting in sudden unwanted changes in timbre and/or volume.
    I tried switching [uzi] to [line] with no success (line is much slower than uzi so the waveform is very jagged rather than a smooth line). I have set up two buffers and am now wondering if i can interpolate between buffers with a specified time ramp. This doesn't look promising.
    Any suggestions?

    • Nov 04 2008 | 7:49 am
      Here's a waveshaping approach using pattrstorage for interpolation. Maybe it will give you some ideas: http://compusition.com/web/software/maxmsp/interpolating-waveshaper
      This works by storing all the samples for the waveshaping buffer in a pattr. Store some presets and use pattrstorage to interpolate between them. Then do [pattr] -> [listfunnel] -> [peek~] to update your buffer. Actually, this patch is using [pvar transferfunction] -> [listfunnel] -> [peek~], but that pvar is controlled by a pattr because I am using [autopattr].
      There are probably ways to do this that give better sound quality, but if you like this approach you could always run it through a low pass filter to remove some of the harshness.
      I just noticed this patch doesn't seem to work quite right in Max 5, but it looks like you are using Max 4 so it should be fine.
    • Nov 04 2008 | 7:54 am
      > I just noticed this patch doesn't seem to work quite right in Max 5
      Nevermind, I restarted Max 5 and now it works ok there too. Weird.
    • Nov 04 2008 | 12:35 pm
      exactly what I'm looking for! Thanks.