• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Automation woes
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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
  • Follow-Ups:
    • Re: Automation woes
      • From: Eric Gorouben <email@hidden>
References: 
 >Re: Automation woes (From: Eric Gorouben <email@hidden>)
 >Re: Automation woes (From: "Stephan M. Bernsee" <email@hidden>)
 >Re: Automation woes (From: William Stewart <email@hidden>)
 >Re: Automation woes (From: "Stephan M. Bernsee" <email@hidden>)
 >Re: Automation woes (From: Brian Willoughby <email@hidden>)
 >Re: Automation woes (From: "Stephan M. Bernsee" <email@hidden>)
 >Re: Automation woes (From: Eric Gorouben <email@hidden>)
 >Re: Automation woes (From: Stefan Gretscher <email@hidden>)
 >Re: Automation woes (From: Eric Gorouben <email@hidden>)
 >Re: Automation woes (From: Eric Gorouben <email@hidden>)

  • Prev by Date: Re: AU's new prioritized MIDI specification
  • Next by Date: What is causing this deadlock?
  • Previous by thread: Re: parsing SMPTE LTC code
  • Next by thread: Re: Automation woes
  • Index(es):
    • Date
    • Thread