[VST2.4 -> AU] host and property notifications
[VST2.4 -> AU] host and property notifications
- Subject: [VST2.4 -> AU] host and property notifications
- From: Domagoj Saric <email@hidden>
- Date: Thu, 07 Mar 2013 10:19:09 +0100
Hi everyone,
I'm currently upgrading our internal plugin framework to support AUs and am
bypassing the CoreAudio SDK (the old "virtual and new everything" design, and
error codes mixed with exceptions and gotos, doesn't quite fit nicely with a
more modern CRTP-like approach we use internally and adds too much fat for the
help it provides) and am having a number of questions/problems so please help me
out ;)
The VST2.4 protocol, as bad as it is, at least defines a minimal set of
notifications that one can "send" to a host. If, for example, a user changes
(through the GUI) the input/output format/number of channels/buses or loads a
preset (which changes the parameter list and/or the parameter information for
existing parameters) I can only issue a property change notification but nothing
guarantees that a host will actually register a listener for the particular
property and that even if a listener is registered that it is in fact the hosts
listener (and not some other AU 'listening' to my AU) and that the host actually
accepted the property change. For some 'properties', like the IO
format/configuration, it is crucial that the plugin/AU and the host are in sync
(otherwise the host might provide less channels then the plugin expects...)...
Am I missing something, or should user changes/"from within the AU" of such
properties simply be forbidden for AU builds?
A related question is about property change notifications in general. There
seems to be more than one mechanism:
- property change listeners
- AudioUnitEvent and AUEventListenerNotify with kAudioUnitEvent_PropertyChange
as described here
http://developer.apple.com/library/mac/#technotes/tn2104/_index.html
The latter seems like a "happier" solution (that could possibly solve some of
the earlier mentioned concerns) but the documentation for AUEventListenerNotify
says: "This is only to be used for notifications about parameter changes (and
gestures). It can not be used for notifying changes to property values as these
are internal to an audio unit and should not be issued outside of the audio unit
itself."
And indeed AUEventListenerNotify fails if I try it with
kAudioUnitEvent_PropertyChange...
I found this problem discussed for example here:
http://lists.apple.com/archives/coreaudio-api/2009/Dec/msg00224.html
http://www.kvraudio.com/forum/viewtopic.php?p=2832575
If kAudioUnitEvent_PropertyChange cannot be used why is it there in the first place?
--
Domagoj Saric
Software Architect
www.LittleEndian.com
_______________________________________________
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