Re: Number of channels in a mixer vs performance
Re: Number of channels in a mixer vs performance
- Subject: Re: Number of channels in a mixer vs performance
- From: uɐıʇəqɐz pnoqɥɒɯ <email@hidden>
- Date: Wed, 4 Aug 2010 16:02:39 -0700
- Resent-date: Wed, 4 Aug 2010 16:05:15 -0700
- Resent-from: uɐıʇəqɐz pnoqɥɒɯ <email@hidden>
- Resent-message-id: <email@hidden>
- Resent-to: CoreAudio API <email@hidden>
I'm pasting in Bill Stewarts response to a similar question.
" - you can have as many input buses as you need (the memory overhead is minimal because we optimise that as well)"
See below.
On Aug 4, 2010, at 1:28 PM, Gregory Wieber wrote:
> Hello,
>
> I'm trying to optimize a core audio app where I have several render input procedures grouped together by a audio unit multi channel mixer.
>
> I've googled around, but didn't find anything. Let's say you were building a synthesizer, and you had polyphony. My approach is to have a multichannel mixer where there are a number of voices -- one per bus. When there are a lot of voices, performance suffers. I've done a lot of optimization in the voice render callback, but I wonder if I'm approaching it in the wrong way?
>
> Before I completely re-arrange my approach, I thought it was worth asking whether a number of busses each with there own render callback is slower than having one render callback which loops through each voice.
>
> Thank you.
>
> Greg
I know you've got alot of information to the contrary, and its just adding 'n all, but that is exactly what the Mixer unit does for you and why I recommended you using it.
Not only does it "just add", but it also gives you parameters that:
- change the volume (de-zippered)
- enable/disable inputs
- pan mono sources in a stereo field
- efficiently manages the buffers that you use
- we maintain and optimise this across different platforms (so as CPUs, etc, change, we keep up with those changes)
- you can add/remove callbacks very easily
- you can have as many input buses as you need (the memory overhead is minimal because we optimise that as well)
- optimise calling chains for "silence"
I've no problem if you want to use this as an educational exercise, but for anyone (this is for posterity more than anything else) who wants to not have to do this, using the MixerAU to do this for you is a perfectly fine choice (that's why we use it ourselves)
Bill
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden