Re: AudioUnitV3 effect and "maximumFramesToRender"
Re: AudioUnitV3 effect and "maximumFramesToRender"
- Subject: Re: AudioUnitV3 effect and "maximumFramesToRender"
- From: Paul Davis <email@hidden>
- Date: Fri, 14 Dec 2018 14:35:41 -0500
Waverly .... what host are you running in?
On Fri, Dec 14, 2018 at 2:04 PM Howard Moon <email@hidden> wrote:
> I think you guys missed the point. He's setting the maximum to 256, but
> he's getting 512. It's fine if he gets LESS than the max, but he's asking
> why he's getting MORE than the maximum!
>
> On Fri, Dec 14, 2018 at 11:02 AM Paul Davis <email@hidden>
> wrote:
>
>> 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> 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
>>>
>>> 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> 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 <email@hidden>]
>>> *Sent:* Friday, December 14, 2018 12:06 PM
>>> *To:* email@hidden
>>> *Cc:* 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> 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
>>>
>>> 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)
>>> Help/Unsubscribe/Update your Subscription:
>>>
>>>
>>> This email sent to 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
>>>
>>>
>>> _______________________________________________
>>> 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
>>>
>> _______________________________________________
>> 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
>>
>
_______________________________________________
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