pouët.net

intro soft-synth query

category: general [glöplog]
eye: You probably have something like granular synthesis in mind.

I suppose most intro softsynths use a mixture of subtractive, FM (those two being the most important), additive, AM (for envelopes) and maybe Ringmodulation synthesis. But I am very newbie in that field, so you should better ask kb :-)
Here is an short overview about different softsynth algos, by googling them you will find lots of info:

http://www.sonicspot.com/guide/synthesistypes.html
added on the 2004-04-04 18:19:49 by chock chock
i happen to know other guy who has written good introsynth besides KB. He says there's no way around trying and listening. And keeping in mind that for most known algorithms there is probably a BUZZ machine so one would try it out on it before actually coding.

Nontheless, i wonder what KB_s opinion is. He's currently offline but i think he won't miss a chance to prove his 1337ness here. ;)
added on the 2004-04-04 19:04:23 by eye eye
eye: you could steal the idea of the waldorf wavetable synthesizers. Define samples of length 256 by their fft, and work totally in the fft domain to do the wave morphing and by doing the ifft on the fly. At least one nice aspect of this method is that you get automatically band-limited (anti-aliased) waveforms.
added on the 2004-04-04 19:04:49 by _-_-__ _-_-__
I friend of mine sold waldorf's PPG classic models and assorted other vintage gear, and the waldorf way of doing wavetables is quite weird and wonderful ;)

shame you had to haul all the floppies around
this thread gets my *VOTE*! (hint hint it's up again)
added on the 2004-04-24 17:54:12 by eye eye
In the end, it's the synth's effects that determine most of the sound's 'quality'. And also the modulation capabilities.
Yeah, but I wasn't interested in filters or effects or whatnot. I only want to know whether intro soft-synths use theoretical or modeled generator waveforms. That's it. Nothing more.
"Theoretical" or "modelled"? What's the difference?
added on the 2004-04-25 17:24:03 by Sesse Sesse
I think he means "theoretical" as "easily generated" such as squares or sines, and "modeled" as prestored splines or pieces of samples to achieve some sort of physical modelling.
added on the 2004-04-25 17:38:50 by Gargaj Gargaj
No, I'm not necessarily talking about "prestored data." Could be mathematically computed.

See, the thing is, a square wave on something like a Moog is not perfectly square. At the start of the duty cycle there will be a small curve before reaching a steady slew rate. At the top of the cycle there will be some "ringing" as the oscillator tries to flatten itself out. And finally something similar may happen at the other end of the duty cycle.

This is also true for analog sawtooths or triangles: they have curves and ringing and other tiny little details.

A square wave would not be a perfect square, since you bandwidth-limit it. Anything else just sounds bad.
added on the 2004-04-25 19:46:24 by Sesse Sesse
I don´t think using non-bandwidth-limited functions is much of a problem if you are filtering the final instrument (which you are doing anyways). The result is slightly different if you use things like frequency modulation, but I doubt that it will be disturbing.

thom: those tiny little details probably result from the bandwidth limit (filtering), as analog signals are always bandwidth limited. (I think that´s what Sesse wanted to mention, anyways).
added on the 2004-04-26 10:49:07 by chock chock
chock: bandwith limiting IS important. If your oscillator is producing lots of aliasing dirt no filtering will help you get rid of it. That's why most intro soundtracks avoid high notes like the plague ;)
added on the 2004-04-26 12:06:13 by kb_ kb_
That depends, of course, on whether your filtering is before or after the sampling (in a pure analog synth there is of course no sampling at all) :-)
added on the 2004-04-26 13:42:18 by Sesse Sesse
If you're filtering (and by that you certainly mean lowpass filtering) before the sampling, doesn't that cound as bandwith limitation? *g*
added on the 2004-04-26 13:56:23 by kb_ kb_
Uhm, yes, but that's the only way I could get what chock said to make sense :-)
added on the 2004-04-26 15:15:33 by Sesse Sesse
So does anyone actually generate bandlimited waveforms, or do you just oversample? (Or, uh, do nothing at all and say the aliasing is a 'feature')
added on the 2004-04-26 15:28:53 by sagacity sagacity
Erm... sorry about that stupid question, but does actually anyone filter before sampling in a softsynth? I mean I couldn´t even filter sawtooth properly (at least not with sinc). Not to speak about other typical oscillator functions, like "unpure" sinus waves...
added on the 2004-04-26 15:29:57 by chock chock
Argh, sagacity, you´ve been faster than me ;-)
added on the 2004-04-26 15:30:38 by chock chock
We have bandwidth-limited (and gibbs-corrected; simply truncating Fourier series gives you weird ripples which aren't good) oscillators in Sanestation, yes. You don't first generate a waveform and then filter it; the second you sample you've already introduced aliasing and lost. Instead, you build up a waveform by doing the Fourier transform in advance and then summing sines up to the point where you want to filter. There was a thread about how to do this effectively on csipd or scene.coders a while ago, but I can't find it...
added on the 2004-04-26 15:46:40 by Sesse Sesse
My version of bandwidth limiting is somewhere in the middle of real limiting and oversampling - call it box filtered infinite-times oversampling. Sounds quite good up to a few thousand hertz base pitch and has the big advantages a) next to zero additional code, b) only 20% slower than no band limiting at all (eg. doing a sawtooth by "sample[pos++]=(val+=freq)>>16;")

It's a bit tricky to implement tho. Much paperwork and many, many assembler optimization possibilities.
added on the 2004-04-26 16:47:56 by kb_ kb_
oh, I have that for pulse and tri/saw (morphable, consider a triangle wave with 'pulse width') waveforms only, sin and noise don't really need band limiting ;)
added on the 2004-04-26 16:49:15 by kb_ kb_
As another alternative, you can use minBLEP ( http://www-2.cs.cmu.edu/~eli/papers/icmc01-hardsync.pdf ), which can generate bandlimited versions of arbitrary waveforms. However, processor load increases with frequency, which is one reason why we didn't go for this in Sanestation.
added on the 2004-04-26 18:17:02 by titanstar titanstar
Sesse: That sounds really interesting, I will give it a try (I didn´t realize that you could use Fourier series instead of Fourier integral... stupid me).

kb: I don´t really understand what you are talking about, but the problem with box filtering is, that you don´t have real bandwidth limitation. But if it sounds good... I´ll think about that, too.

Anyways, thanks to everyone, that gave me some new ideas :-)
added on the 2004-04-26 19:06:14 by chock chock
Chock: Since the signal is periodic, you can of course use Fourier series, yes :-)

So, the next questions are of course: How many intro softsynths are there out there by now? What is the most efficient way to model drums? And of course, will kb ever finish his softsynth tutorials? ;-)
added on the 2004-04-27 02:46:03 by Sesse Sesse

login