Additive Synthesis with higher partial counts
How would you guys approach creating an additive synth with a high partial count? I want to be able to have control over things like pitch, phase, starting time and volume (+ volume over time). Is this possible with oscbank?
Hi, Blair. Yes. See ioscbank~ instead, which also has phase control.
Starting time would be possible with the amplitude parameter (zero to non-zero).
i use "complete" sine wave generators with retriggerable phase accumumumumulators, a spare wheel and gold finish, conveniently packed into a poly~ garage or just running in parallel.
in ioscbank~ you can not control more than one partial at the same time using signals.
if partial count > 200 then it´ll be better to switch to kyma.
Is more than 200 too cpu intensive?
depends on CPU and your design.
i have no idea what the limit of ioscbank is on an M2, but in custom MSP i dont do more than 100 on a mac pro 2012 or 32 on a G4.
damn I was thinking about polyphonic with 512 partials haha. I know harmor can do that so I thought it would be possible
512 with 2 envelopes (pitch and amplitude) which can be modulated in signal rate sounds like something you would like to write in gen~.
sonically it might be fine to send updated data to ioscbank~ every 32 samples and use the built-in interpolation, but that is huge lists of numbers then you are dealing with.
You could also use the Csound6~ object - csound is very good for additive synthesis as it gives you a lot of options for how much cpu you use up on your sine waves. (table size, type of interpolation, whether they can be at sub sample rate, a number of different generators, etc.)
Keep in mind also that you don't want (can't have) partials that go past the nyquist, so depending on the range your working in, this can be a lot lower than 512. ie at 48khz, A 220 that's only 109 partials, at 110: 218.
I ported the Csound6 object from Pd to Max specifically to experiment with this having the partials controlled by Scheme for Max - but then got distracted with other things! Good reminder to get back to it. :-)
https://github.com/iainctduncan/csound_max
Okay thanks guys! I'll have a look at your ideas