RE: AudioUnitV3 effect and "maximumFramesToRender"
RE: AudioUnitV3 effect and "maximumFramesToRender"
- Subject: RE: AudioUnitV3 effect and "maximumFramesToRender"
- From: Waverly Edwards <email@hidden>
- Date: Fri, 14 Dec 2018 19:51:11 +0000
- Thread-topic: AudioUnitV3 effect and "maximumFramesToRender"
Fortunately for me, I am not plugging into an external application. This is
all internal my application.
From: Paul Davis [mailto:email@hidden]
Sent: Friday, December 14, 2018 2:01 PM
To: email@hidden
Cc: Waverly Edwards <email@hidden>; CoreAudio API
<email@hidden>
Subject: Re: AudioUnitV3 effect and "maximumFramesToRender"
It's not even always macOS or iOS. The host can choose to "subdivide" a given
block of audio into smaller blocks for its own reasons (automation is a common
reason). The audio hardware may run with a 512 sample buffer, but your plugin
may get called to process (12,193,307) samples just because the host decides to
do it that way.
As a plugin, you cannot control the buffer size chosen by the host (and
ultimately by the user). You can tell the host that you need a minimum, but the
host may then refuse to load/run the plugin.
On Fri, Dec 14, 2018 at 1:34 PM Martin Man
<email@hidden<mailto:email@hidden>> wrote:
From my experience this is the missing block you are asking for, a pity it’s
not a part of the iOS/macOS SDKs
https://github.com/michaeltyson/TPCircularBuffer<https://github.com/michaeltyson/TPCircularBuffer>
In short, you can’t force macOS or iOS to work at fixed number of frames, be
prepared to handle random numbers not bigger then maxNumberOfFramesPerSlice. It
does happen and will happen to you that you will get asked for a number you
never seen before :)
Ciao,
Martin
On 14 Dec 2018, at 19:25, Waverly Edwards
<email@hidden<mailto:email@hidden>> wrote:
>> The host determines how many frames are pulled.
How is the “host” defined. I thought the host was defined as my application or
audio unit.
It would seem to me, if the host and the system were synonymous, it would be
more clear to just say “system” instead of host.
>> This can differ for each call.
I can accept it, since your source is not always going to be a multiple of the
buffer length, so you’re bound to a shortage but that’s the only case that
comes to mind.
>> This variable is just to tell the host what the maximum number is that can
>> be processed at a time.
I’m struggling with this idea because I have set the maximum value to 256 and
the number of frames pulled is 512. If I set the maximum value to 1024 and I
get 512, I’m not happy at all but that’s understandable based on this
definition.
Is there an alternative way to make the number of frames pulled a constant
value?
From: Bram Bos [mailto:email@hidden]
Sent: Friday, December 14, 2018 12:06 PM
To: email@hidden<mailto:email@hidden>
Cc: email@hidden<mailto:email@hidden>
Subject: Re: AudioUnitV3 effect and "maximumFramesToRender"
The host determines how many frames are pulled. This can differ for each call.
This variable is just to tell the host what the maximum number is that can be
processed at a time.
On 14 Dec 2018, at 17:48, Waverly Edwards
<email@hidden<mailto:email@hidden>> wrote:
init(componentDescription: AudioComponentDescription,options:
AudioComponentInstantiationOptions = [])
I created an AudioUnitV3 effect and I set the variable "maximumFramesToRender"
within the above method. The effect does work but the system overwrites this
value with 512 frames, leaving me with no way to alter how many frames are
pulled.
https://developer.apple.com/documentation/audiotoolbox/auaudiounit/1387654-maximumframestorender<https://developer.apple.com/documentation/audiotoolbox/auaudiounit/1387654-maximumframestorender>
The documentation states you must be set before resources are allocated and I
do so in my init. What else must I do in order to change how many frames are
pulled in a single cycle.
Does anyone have advice on this matter.
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list
(email@hidden<mailto:email@hidden>)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden<mailto:email@hidden>
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list
(email@hidden<mailto:email@hidden>)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden<mailto:email@hidden>
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list
(email@hidden<mailto:email@hidden>)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden<mailto:email@hidden>
_______________________________________________
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