Re: Logic guys- YIKES. Can I haz DP bug in Logic 8? :P
Re: Logic guys- YIKES. Can I haz DP bug in Logic 8? :P
- Subject: Re: Logic guys- YIKES. Can I haz DP bug in Logic 8? :P
- From: William Stewart <email@hidden>
- Date: Mon, 24 Sep 2007 14:43:14 -0700
Good catch Sophia! The difference should be noted:
Initialize
- this is called by the host before the AU will be asked to render.
In this call the AU is expected to allocate memory, initialise
variables, etc, so that at the completion of the call, that AU can
render audio. Uninitialise is expected to mostly undo the work that
is done by Initialisation.
- You can trace the calls through AUBase::DoInitialise (and
DoCleanup) and there is a virtual initialise call that subclasses can
overide
Reset
- is called whenever a host needs the AU to reset its render state.
No allocations or other resource acquisition activities should occur
during Reset (these are tasks that should only be done in
initialise). Reset is called when the context within which an AU is
processing has changed. Say the user reset the time line to a new
place, the track the AU is in was un-muted, etc; in these cases the
next audio the AU will see is not a continuation of the audio it last
saw.
For instance on a delay unit:
Initialise
- allocate delay buffers
Reset
- clear out the contents of the delay buffers (silence them)
Uninitialise
- de-allocate delay buffers
HTH
Bill
On 24/09/2007, at 2:21 PM, Chris Johnson wrote:
On Sep 24, 2007, at 4:40 PM, Sophia Poirier [dfx] wrote:
Are you possibly getting Initialize and Reset mixed up? I get the
sense that you might be throwing them around interchangeably in
what you write, and if so, I think the problem here is that you
need to realize that they are separate and distinct.
Logic 8 definitely Initializes AUs before rendering with them. If
it didn't, there would be widespread massive problems across
pretty much all AUs (in most cases, with them all producing silent
output). However, I'm not sure whether it calls Reset between the
first call to Initialize and the start of rendering. And a host
doesn't have to do this, either. I'm thinking that the problem
here may be that you are making that assumption. If not, then
sorry, I might be off-base with my suggestions and not
understanding your message correctly.
Aha. No, I think you are understanding things just fine. I believe
I got the impression 'reset()' was the initialize code because I
wasn't finding anything else like initialize code in the Audio Unit
template- and I was certainly assuming that hosts did call Reset as
a matter of course, and in fact I haven't got a single application
that doesn't- which just means I don't have all the host apps out
there, notably I don't have Logic 8 and DP.
This would also underscore the idea that Logic 8 is handling audio
units more rigorously- it's fixing control bugs with my plugins,
but also expecting them to initialize in a certain way. You're
saying my assumption Reset is called is not really a host
requirement. I didn't know that.
UPGRADE TIME! :D
Chris Johnson
airwindows
_______________________________________________
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
--
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
________________________________________________________________________
__
_______________________________________________
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