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...) https://github.com/olofson/eelsynth Simple demo song + some comments here: https://soundcloud.com/david-olofson/eelsynth-ifft-flutesong -- //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 music-dsp@music.columbia.edu https://lists.columbia.edu/mailman/listinfo/music-dsp