Re: Automation woes
Re: Automation woes
- Subject: Re: Automation woes
- From: William Stewart <email@hidden>
- Date: Fri, 25 Jan 2008 11:26:29 -0800
The begin end notification is certainly appropriate when you are
touching a control (like a slider).
If you are just entering a new value in a text field, I don't see the
need of begin/end (and don't see the necessity for the requirement for
this notification).
If you had a capacity in a text field to hold down say option - up
arrow to change the value of the parameter, then yes, at that point
you should be sending the begin/end gesture.
So, the intention is to bracket a user gesture that can potentially
send a stream of parameter value changes.
Another point to bare in mind is this. In your code, putting a begin/
end gesture just around the call to AUParameterSet is not the right
place. What this would mean is that every time your parameter changed
value, the begin/end gesture notification would be sent (that would be
bad if you are dragging a slider).
So, how this should look in your code is like this:
User's mouse down on slider - send begin gesture
user drags slider
- AUParameterSet
- AUParameterSet
- AUParameterSet
- etc....
User's mouse up from slider - send end gesture
User enters text field
User enters new value - AUParameterSet
You can see all of this in action in AU Lab - open two generic views
to an audio unit in AULab - when you touch one of the sliders, both
views will highlight that slider with a blue background. When you set
the parameter with the text field, you won't see this blue highlight
Hope that helps
Bill
On Jan 24, 2008, at 1:29 PM, Eric Gorouben wrote:
Ok, I got it, at last...
Thanks everybody for the help!
But that question of kAudioUnitEvent_Begin/EndParameterChangeGesture
is still unclear to me. I don't quite see why automation doesn't
work in Logic if no kAudioUnitEvent_Begin/EndParameterChangeGesture
event is sent while it works in GB.
Eric
Le 24 janv. 08 à 17:11, Eric Gorouben a écrit :
What do you mean by "properly"? I followed the TN2104, and probably
made a mistake somewhere. Are there any tips or traps?
Eric
Le 24 janv. 08 à 16:43, Stefan Gretscher a écrit :
Brian described very well why a plug-in needs to send begin/end in
an environment that implements "touch" mode automation such as
Logic or Pro Tools (but not GarageBand, for that matter).
Please implement this properly for all parameters that you're
exposing for automation in Logic.
Thanks,
Stefan
Am 24.01.2008 um 02:31 schrieb Eric Gorouben:
Hi,
There might be somehow a bug or a "feature" in Logic (express
7.2) and pro 8.0 since there is no problem in Live 7 and
GarageBand.
However, there must be a turnaround, otherwise no AU would work
in Logic!
Is there a way to test automation in AULab?
Eric
Le 24 janv. 08 à 08:56, Stephan M. Bernsee a écrit :
Hi Brian,
I agree with you 100%, although I don't see gestures and
interpolation as being unrelated (for the reason that I have
already stated, which btw. is also mentioned in an earlier
discussion about gestures on this list - gestures do help
interpreting the meaning of parameter value changes as being
part of a continuous path. And if you look at the behaviour you
get from Logic this appears to be exactly what they do).
In any event, the thing that I thought Eric seems to be
struggling with is that Logic 8 doesn't record parameter changes
made through AUParameterSet calls without an active gesture
session. In an earlier post on this list ("Cocoa AU template,
AUParameterSet and Logic automation") I was wondering if this is
a bug in Logic because I too was under the impression that
gestures were be optional, not mandatory. In practice, however,
it turns out that in Logic 8 gestures are indeed required in
order to record parameter automation events.
Since Eric is aware of this his problem must lie somewhere else.
I still stand by my opinion that it should not be necessary to
bracket each and every call to AUParameterSet with a gesture
start/end event - they wouldn't be very useful then.
Regards,
--smb
Am 24.01.2008 um 08:35 schrieb Brian Willoughby:
Interpolation is by no means the only useful thing to do with
gesture bracketing. For one thing, perhaps minor, Pro Tools
plugin API has a way to highlight controls that are being
controlled, so the begin gesture would draw the highlight and
the end gesture would remove it. More importantly, Logic and
other DAW software have multiple automation recording modes,
some of which erase old automation data whenever the user
modifies a parameter. Without the begin gesture and end
gesture, there would be no way for the automation system to
know that it should erase and update the automation value for
the duration that someone holds the mouse on a control, or
otherwise holds a control at some new value. Also, the final
release of the mouse may come a very long time after the last
value change, but the automation system must cease erasing old
data and revert to the old automation value as soon as the user
"lets go" of the control - i.e. end gesture.
Interpolation is completely optional and rather unrelated to
gestures.
Brian Willoughby
Sound Consulting
On Jan 23, 2008, at 22:07, Stephan M. Bernsee wrote:
Am 24.01.2008 um 04:05 schrieb William Stewart:
On Jan 23, 2008, at 1:36 PM, Stephan M. Bernsee wrote:
Am 23.01.2008 um 22:24 schrieb Eric Gorouben:
No, I'm afraid not (not at the moment anyway). Except that
you should NOT bracket every parameter change by a begin/end
gesture event...!
But that wouldn't prevent the automation from working, it
would just cause the parameter values to jump instead of
being interpolated...
No - there's no implication from Begin/End gesture that there
is any interpolation... Setting a parameter is always going to
be an explicit "set the parameter to this value now" call. Its
up to the AU to dezipper the parameter change if it should be
(that is, you never want it to just jump internally because it
would cause a glitch or some such)...
Well, but of what use are the begin/end gesture events then, if
not to notify the host
that
any
AUParameterSet calls between them are to be interpreted as
sampled points along a continuous path?
--smb
_______________________________________________
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
------------------------------------
Stefan Gretscher
plug-in development & 3rd party developer support
phone: (+49)-4101-495-586 (Central European Time)
AU developer support: email@hidden
TDM developer support: email@hidden
Apple GmbH
Geschäftsführung: Georges Guyon de Chemilly
Sitz der Gesellschaft: München
Amtsgericht München, HRB 66158
_______________________________________________
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