Hi,

No, as far as I know, hosts are not required, via the that Audio Unit API,
to update the info for a parameter after those parameters have been set by
the plug-in during construction/initialization and the
AUBase::GetParameterList() and GetParameterInfo() combo has been called.

In fact, I think most hosts rely on the fact that the type, min, and max
values of a parameter do not change during the lifetime of the plug-in.
For example, in an automation lane, it is probably helpful for hosts to
just map min and max parameter boundaries to the Y coordinates of the
track/lane UI.  Simplifying the range is probably also helpful when hosts
load plug-in automation from a saved file.

In other words, this behavior may be just a healthy design compromise to
give AU developers flexible-enough parameters, while reducing the required
implementation overhead for hosts.

In your case, I would consider the following options:

1.  Add a new boolean/toggle parameter separate from your max-of-a-1000
parameter.  Then, just manually control, or ignore, its value depending on
the state of your audio unit.  Also, consider if this toggle is a three way
toggle or just a two way toggle.  If it is two-way, then just use the
boolean field (returning kAudioUnitParameterUnit_Boolean in
AUBase::GetParameterInfo().)

2.  Leave the max of your max-of-a-1000 parameter at its true absolute max
value for the lifetime of the AU.  Then adjust the value manually as the
state of your audio unit changes, possibly forcing a value lower than the
absolute max.  I have done this myself with discrete parameters where I can
control the value of the parameter in the host UI, and force a logically
consistent value, regardless of what the user tries to do.

--Christian

On Sun, Aug 23, 2015 at 5:06 AM, Oshrat Fahima <[email protected]> wrote:

> Hi,
>
> Is there a way our *AUMIDIEffectBase* can notify the host dynamically
> about a change in *AudioUnitParameterInfo* besides plug-in initialization
> phase?
>
> So as a result we’ll get a call *AUBase::getParamaterInfo().*
>
>
>
> i.e: When our *AudioUnitParameterInfo* changes entirely, including
> *maxValue* from 1000 to 2 (from continuous to toggle control),
> we call *AUParameterListenerNotify()*, and as a result the host calls
> *AUBase::getParameter()* which updates only the parameter’s value.
>
>
>
>
> A side effect will result in a wrong display in the automation lane.
>
>
>
> Thanks,
>
> Doron & Oshrat
>
>  _______________________________________________
> 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/recapitch%40gmail.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