Alias Free Oscs, band limiting, and downsampling

DSP, Plugin and Host development discussion.
RELATED
PRODUCTS

Post

Urs wrote: Not going much into detail, I create the wavetables "on demand" by iFFT, whenever the current one does not reflect the actual circumstances (i.e. tuning changed, impact of FM changed, waveform changed). Then, I just fade between old wavetable and new wavetable.
:-o
Image
Don't do it my way.

Post

Borogove wrote:
Urs wrote: Not going much into detail, I create the wavetables "on demand" by iFFT, whenever the current one does not reflect the actual circumstances (i.e. tuning changed, impact of FM changed, waveform changed). Then, I just fade between old wavetable and new wavetable.
:-o
Yeah, but never *every* sample, of course 8) - It's got some kinda lag.

Well... I've got pretty good results for an antialiased subset of FM Synthesis this way: Every 2000 or so samples, you just render the non-bandlimited FM algo into a wavetable of length 2048 or 4096. Then FFT. Then, clear out all bins that would cause aliasing. Set DC bin to zero. iFFT.

This doesn't correctly play back inharmonic FM stuff (it's more like hard synced FM, hehehe), nor does it reproduce very fast modulations accurately. But you can create some pretty exciting waveforms and movements with that...

FilterscapeVA has a waveform called "Feedback". It renders a sine that phasemodulates itself. This is the common way to model a sawtooth in FM. If the modulation amount is too high, you typically get weird aliasing noise. But since the aliasing noise becomes *cyclic* due to the use of a wavetable, the result is just another waveform (but sweeps tend to sound weird in that region, admittedly):

Wavetable_FM_example.mp3

What do you think?

;) Urs

Post

After hating Kontakt's aliasing for ages, I found that working at 96khz gives you 1 and a bit octaves of total none aliasing problems for sample transposition.

1 -60db of aliasing noise might sound ok in theory but if you use the same engine to power a tune 30 - 40 notes of -60db soon adds up. I really think that all synths should have an uber upsampling option for exporting when working at 44.1khz.
I also feel that 44.1 khz aliasing on vsti's is what give vsti's that ...well...vsti digital samey sound that people moan about. 96khz is a lot to ask of your pc when working on a project, but I think the rewards outway the cpu loss. Anyway it's nice to have limits on how many vsti's you can use...sometimes we have too much power and mess tunes up :D

Post

Spaceman Sounds wrote:I really think that all synths should have an uber upsampling option for exporting when working at 44.1khz.
Well, some hosts like Live already do this for you. They simply render at twice the original samplerate when bouncing offline :)

Cheers,

;) Urs

Post

I didn't know that...thats a great idea.

Post

----Leave Urs alone for crying out loud,he's trying to get Filterscape finished and out for us lowly Pc users :hihi:

Jeff

Post

Urs wrote:
Borogove wrote:
Urs wrote: Not going much into detail, I create the wavetables "on demand" by iFFT...
:-o
Yeah, but never *every* sample, of course 8) - It's got some kinda lag.
No, I get it. That's a pretty elegant approach, actually, and it just gets more sensible as CPUs get faster :)
Image
Don't do it my way.

Post

I also feel that 44.1 khz aliasing on vsti's is what give vsti's that ...well...vsti digital samey sound that people moan about.
Hmm, nah, I don't think that's what gives the vsti samey sound. I'd say it's more like the Oscillator -> Filter -> Chorus -> Reverb setup, which is a great setup but it's being so overused. :)
1 -60db of aliasing noise might sound ok in theory but if you use the same engine to power a tune 30 - 40 notes of -60db soon adds up.
Yeah, but you have to remember that 30-40 notes of 0db add up to mask it all out. :)

Post

Borogove wrote:
Urs wrote:
Borogove wrote:
Urs wrote: Not going much into detail, I create the wavetables "on demand" by iFFT...
:-o
Yeah, but never *every* sample, of course 8) - It's got some kinda lag.
No, I get it. That's a pretty elegant approach, actually, and it just gets more sensible as CPUs get faster :)
Yeah. I think people demand higher quality and the new machines give us plenty of room for experiments.

You know, I used to use mip-mapped wavetables, but the new dynamic approach... it's a blast! I mean, you can just combine polynominal waveform creation with additive stuff... I even have waveforms that do several passes, like additive/iFFT->phasemodulation->FFT->bandlimiting->iFFT, and it still doesn't bring a contemporary cpu down :)

Stuff like this really opens up new possibilities.

I think that many people concentrated on the filters to add that certain drive and sound, but maybe we'll see a renaissance of tweaking the oscillators to create a bit more life than they used to provide...

;) Urs

Post

Urs wrote: Well, some hosts like Live already do this for you. They simply render at twice the original samplerate when bouncing offline :)
Its a shame that some effects / synths sound completely different at different samplerates, and any effort you put into getting the mix right is usually scuppered by changing the sample rate at the last minute.

Which then means that you need to redo the mix at the higher samplerate, which is not possible, because the cpu was already maxed out at 44.1KHz!

Can't wait for those new 'cell' processors to come out. Should be capable of something like 250 gflops... I'd definately dump the pc for one of those!!!

Post

Urs wrote:I think that many people concentrated on the filters to add that certain drive and sound, but maybe we'll see a renaissance of tweaking the oscillators to create a bit more life than they used to provide...
Agreed. You know how the Karplus-Strong model involves using a delay line/wavetable but tweaking it on every pass (filtering or averaging to go from bright to dull spectrum, randomizing or inverting samples to add richness to the spectrum)? I'm now thinking about applying those sorts of approaches in the frequency domain...
Image
Don't do it my way.

Post

texture wrote:Can't wait for those new 'cell' processors to come out. Should be capable of something like 250 gflops... I'd definately dump the pc for one of those!!!
Heh. Don't get too excited about them...
Image
Don't do it my way.

Post

By the way, for "anti-aliased" FM there's an easier and faster way - if you do the FM synthesis at a sample rate that's a multiple of the note freq, the reflected frequencies should line up with the frequencies already present, so you won't get the "metallic" sound of alias. :) After that you just resample the output to the target sample rate (ie 44.1khz) using your favourite algo.

Post

MadBrain wrote:By the way, for "anti-aliased" FM there's an easier and faster way - if you do the FM synthesis at a sample rate that's a multiple of the note freq, the reflected frequencies should line up with the frequencies already present, so you won't get the "metallic" sound of alias. :) After that you just resample the output to the target sample rate (ie 44.1khz) using your favourite algo.
Nice idea, that.. might try it :)

DSP
Image

Post

texture wrote:Can't wait for those new 'cell' processors to come out. Should be capable of something like 250 gflops... I'd definately dump the pc for one of those!!!
1. No VSTi:s will run on the cell
2. Few have an idea of the performance of the cell yet.

Don't sell your PC just yet :)

Post Reply

Return to “DSP and Plugin Development”