Re: AU MIDI events scheduled beyond next rendering slice
Re: AU MIDI events scheduled beyond next rendering slice
- Subject: Re: AU MIDI events scheduled beyond next rendering slice
- From: Urs Heckmann <email@hidden>
- Date: Thu, 7 Aug 2003 00:28:44 +0200
Am Mittwoch, 06.08.03, um 21:54 Uhr (Europe/Berlin) schrieb Bill
Stewart:
On Wednesday, August 6, 2003, at 09:04 AM, Marc Poirier wrote:
Urs' question about AU MIDI event scheduling reminded me of another
question that I've been meaning to ask:
A few weeks ago, I read a message from Urs on the osxaudio.com forums
saying that AU hosts could send MIDI events to AUs with frame offset
positions that are greater than the size of the next rendering slice.
That was certainly not our intention with these offsets.
But (and the documentation is I think clear on this), the frame
offsets are always described as being offsets into the NEXT slice of
audio that is to be rendered (and for ramped parameters, they are
rescheduled for each slice), so I'd have to Urs was incorrect in his
assertion.
Oh. Hmm.
Fact is, my first builds of Zoyd in Logic got me completely paniced. -
It worked fine when being played on a selected track, but when playing
back from recorded midi in unselected tracks, it left out a whole lot
of notes. Hehe, Niko already sent his apologies 8-)
I solved this by making my queue relative - counting down timestamps of
events and use them when they are zero, rather than waiting till the
number of processed samples reaches them, another reason for having a
short queue...
So
in other words, some MIDI events might not actually be for the next
rendering slice but for some rendering slice beyond that one, and so
AUs
need to keep a "future events" queue for those. Urs said that Logic
does
this sometimes, for example.
Is this true? And is it considered acceptable for an AU host to do
this?
I'd suggest that Logic might want to fix this, as we don't expect
this, and these parameters are then probably not being scheduled
correctly. It is always intended that the buffer offset is only to the
next buffer - the AU isn't expected to "sequence" :) events beyond
that.
Okay, dunno, maybe it's already done in 6.1? - While we're at it,
please make it thread safe then as well.
Cheers,
;) Urs
"anything but strictly synchronising the 2 (processEvents and process,
in that order) means calling for trouble..." [Karl Steinberg]
_______________________________________________
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.