Wavetable Convolution?

Programming applications for making music on Linux.

Moderators: MattKingUSA, khz

Post Reply
User avatar
unfa
Established Member
Posts: 129
Joined: Tue May 17, 2011 10:43 am
Location: Warsaw, Poland
Has thanked: 1 time
Been thanked: 19 times
Contact:

Wavetable Convolution?

Post by unfa »

Are you looking for an idea to code a cool LV2 plugin?

I guess we are all familiar with wavetable synthesis - a concept where an oscillator has a list (or a table) of looping waveforms and allows the user to alter the sound by picking different table indexes at any given moment. Mainstream exampls are NI Massive and Serum, an opensource one - Calf Wavetable.

What can this concept have to do with convolution (impulse response) reverbs?

What if we had a plugin that could load 128 short IR samples instead of one (like IR.lv2 or Klangfalter) and allowed the user to automate the table index for which sample is used at any given time? This could probably sound like morphing the physical environment of the room you're playing in. Maybe it'd be a boring thing, like there's nothing too amazing about automating a standrd C* Plate 2x2 reverb's tail length, or maybe...

If we treated the IR table just like a wavetable synthesizer (think more Serum than Massive now), using very short (a few miliseconds) loops extracted from recorded or syntesized sounds like explosions, human speech, mechanical noises, randomly generated sequeces (creating short looped noise bursts - if you ever looped radom 30 samples of a sound in Audacity and loved the tone you know what I mean. Now imagine shifting the looped "selection" along a soundfile and using this as your virtual "stompbox emulation" for playing an instrument or a synth?

Maybe instead of loading 128 soundfiles, load 1 and split it automatically at zero-crossings? That should be much easier to work with, who can manually cut up a soundfile to 128 chunks and remain sane after that?

Adding an LFO and an envelope follower to the table index control, spiced up with manual automation - this could create some interesting moving sounds, from crazy growling bass synths to haunting ambient pads.

Or maybe we could make a convolution processor that has a sidechain input - it uses that and slices it at zero crossings to create a short IR sample, and uses that to convolute the main input? A bit like a granular vocoder,w wicked stuff?

Feeling inspired? Or am I crazy?
wardnijman
Posts: 1
Joined: Thu Feb 23, 2017 6:11 pm

Re: Wavetable Convolution?

Post by wardnijman »

I've used a similar technique with analog filter IR's instead of reverb IR's. It's a plugin made in JUCE. The source is on my github.

https://github.com/wardnijman/Hijack-Filter

Some problems you will have to deal with are comb filtering between IR's and the use of inverse filters.
User avatar
unfa
Established Member
Posts: 129
Joined: Tue May 17, 2011 10:43 am
Location: Warsaw, Poland
Has thanked: 1 time
Been thanked: 19 times
Contact:

Re: Wavetable Convolution?

Post by unfa »

Interesting! Unfortunately I can't code anything, I'm just sharing ideas hopefully to inspire someone who knows the craft of DSP programming.
Post Reply