I was able to implement somewhere between 1422 and 1526 sinusoid oscillators on 
macOS using a single callback in an AUGraph (I did not bother to determine the 
exact upper limit to the voice count). The rest of the graph handled all of the 
other audio processing that was needed apart from the raw oscillators and their 
parameters.

I suspect that there is a lot of overhead when creating separate objects for 
each oscillator. Rather can creating more, I think you would maximize your 
voice count by having a single AudioBufferList where you handle the mixing of 
your 200 oscillators with custom, optimized code. Of course, if you want to 
play multiple notes then you’ll need multiple objects, but within a single note 
that combines multiple oscillators you’ll want the efficiency of local code 
optimization.

While it’s true that CoreAudio differs between iOS and macOS, I believe that 
you’re dealing with the same issues of optimizing your code by reducing 
overhead wherever possible. I have not tried my sinusoid synthesis under iOS 
yet, so I cannot offer specific design suggestions.

By the way, one of my projects was emulating the Technos Acxel resynthesizer 
hardware, which has 1024 oscillators in one of its models. Another project was 
recreating the THX “deep note” and then experimenting with parameters like 
increasing the number of oscillators to ridiculous extremes.

Brian Willoughby


> On May 26, 2018, at 12:20 PM, Shea Alterio <[email protected]> wrote:
> 
> Hello everybody,
> 
> I'm working on a software synthesizer for iOS. The goal is to emulate the 
> behavior of a very old synthesizer which had something like 200 sine 
> oscillators in it which were used to generate all sorts of different tones.
> 
> I found this and used it as a jumping off point. 
> https://www.cocoawithlove.com/2010/10/ios-tone-generator-introduction-to.html 
> <https://www.cocoawithlove.com/2010/10/ios-tone-generator-introduction-to.html>
> 
> The problem i'm running into right now is i can get my oscillators to work 
> when, and i can get them into their own buffer, but i'm running into problems 
> trying to combine the buffers. 
> 
> Should i be trying to have one AudioBufferList with 200 members? That is how 
> i am trying to do it right now, but maybe i want a lot of AudioBufferList and 
> combine them later.
> 
> Thanks,
> Shea
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Coreaudio-api mailing list      ([email protected])
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/coreaudio-api/brianw%40audiobanshee.com
> 
> This email sent to [email protected]

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/coreaudio-api/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to