On Tue, Oct 23, 2018 at 11:51 PM gm <g...@voxangelica.net> wrote:
> Does anybody know a real world product that uses FFT for sound synthesis?

I believe AIR Loom does, and I suspect some wavetable synths use FFT
as well; Waves Codex and DS Audio Thorn comes to mind. (Mentions of
"spectral synthesis," and there's also something about the sound
character of these, especially above 10kHz...)

> Do you think its feasable and makes sense?

Yes, and... I'm not sure. The method is essentially a highly optimized
implementation of additive synthesis - but with that comes the same
problem that always plagued additive synthesis: It's not very user
friendly in its basic form. You need to construct more effective
and/or comprehensible synthesis algorithms on top of it. Wavetable
synthesis + various filters would seem like one sensible option.
Either way, you can do a whole lot of interesting stuff with relative
ease, without having to worry about aliasing distortion, undesired
transients and whatnot, but there are some drawbacks as well, some of
which you've already mentioned.

One issue that I'm hearing in most implementations of FFT based
synthesis, effects and the like, is the nature of the FFT; the
frequency bins. Unless you're doing very trivial processing, avoid
steep filters and the like, or keep your content nicely aligned to the
FFT bins, the bins will become clearly audible in the form of metallic
resonances, "wobbly" filter sweeps and whatnot. Many things are easy
and intuitive to do in the frequency domain, but unfortunately, the
FFT can't be viewed as a proper additive synthesis oscillator bank,
except in trivial cases.

> Whether or not it would use much less CPU I am not sure, depends on how
> much overlap of frames you have.

It can be extremely efficient while still producing very high quality
sound, especially if you don't need very fast transient response. I'd
say performance is THE reason to use this approach, rather than just
doing brute force additive synthesis.

> Another disadvantage would be that you cant have immediate parameter changes
> since everything is frame based, and even though some granularity is
> fine for me
> the granularity of FFT would be fixed to the overlap/frame size, which
> is another disadvantage.

Actually, you can, and you can even render gradients through the FFT
windows, but of course, that complicates "rendering" of the FFT bins a
whole lot, compared to implementing straight sine oscillators. (Which
is not entirely straightforward either, as soon as your frequencies
land in between FFT bins.)

> Any thoughs on this? Experiences?

I played around a bit with it a few years ago, and hacked a quick
prototype in my own odd scripting language, EEL. (Old rubbish that
I've been meaning to update or port to something any century now...)

Simple demo song + some comments here:

//David Olofson - Consultant, Developer, Artist, Open Source Advocate

.--- Games, examples, libraries, scripting, sound, music, graphics ---.
|   http://consulting.olofson.net          http://olofsonarcade.com   |
dupswapdrop: music-dsp mailing list

Reply via email to