Rendering AU's in offline situations
Rendering AU's in offline situations
- Subject: Rendering AU's in offline situations
- From: William Stewart <email@hidden>
- Date: Thu, 20 Nov 2003 18:33:38 -0800
Most synth and effect style of AU's are written to operate within real
time contexts.
In some usage scenarios - Logic's "Freeze Track" functionality and
Jeremy Sagan's recent discussion of exporting to a file for example -
this semantic needs to be adjusted.
As an example - the DLS Synth currently has two features that really
shouldn't be "on" when rendering in a non-real time (lets call this
Offline Rendering). One is disk streaming, where the disk streaming
timing is based around the semantic of an AU rendering in a real-time
situation. The other is the application of note-dropping, which relies
on an estimation of time passed with no preemption, etc.
To accommodate this scenario we've decided to introduce a new property:
kAudioUnitProperty_OfflineRender = 37,
The property is set in Global Scope, its value is a UInt32 (0 or 1) and
is both read/write
When set to 1, the AU is expected to set itself in state where it can
render in an offline situation (thus for the DLS Synth we'd turn off
disk streaming if it was on, and *not* do note-dropping if that were
on)
When set back to 0, the AU is expected to restore any previous settings
it had changed to go into the offline case (if these haven't been
changed in the interim of course).
Whilst offline rendering can change some state within an AU that a user
may set, we *don't* expect that state change to be reflected to the
user - thus for the DLS synth, "disk streaming" would still be
considered to be on (even though we temporarily turn it off), and when
the AU's render state is reset, disk streaming would again be active.
The default value of this property is 0 (ie. OfflineRendering is off).
We'd considered other approaches, but given that this might involve a
considerable state change in the AU, decided that an explicit property
setting was the appropriate methodology to apply.
If host apps or AU's want to use/implement this property now they can
using the constant as defined above (which will appear in the
AudioUnitProperties.h file in the next Developer Tools release's
version of this header).
Thanks
Bill
--
mailto:email@hidden
tel: +1 408 974 4056
________________________________________________________________________
__
"Much human ingenuity has gone into finding the ultimate Before.
The current state of knowledge can be summarized thus:
In the beginning, there was nothing, which exploded" - Terry Pratchett
________________________________________________________________________
__
_______________________________________________
coreaudio-api mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/coreaudio-api
Do not post admin requests to the list. They will be ignored.