Re: CoreMIDI question
Re: CoreMIDI question
- Subject: Re: CoreMIDI question
- From: Kurt Bigler <email@hidden>
- Date: Mon, 29 Apr 2002 23:09:19 -0700
on 4/29/02 7:30 PM, Kurt Revis <email@hidden> wrote:
>
> It would be bad to defer delivery of packets with future timestamps and
>
> assume that the client won't care to receive them until the timestamped
>
> time.
>
>
Can you explain more why this would be bad? That sounds exactly like
>
what the CoreMIDI scheduler does for outgoing events sent by
>
MIDISend(). (Taking into account any schedule-ahead amounts, of course.)
I am guessing that the reason this would be bad is that an application may
be streaming for example MIDI in and audio out. Doing this MIDI to audio
thing really right with constant known latencies is one of the things that
Core Audio/MIDI was designed for. Doing it right may depend on having
future events lined up and ready to go a little in advance when this is
possible.
So it occurs to me (apologies if I am talking nonsense) that one resolution
of the two points of view is this: the MIDI-to-audio (for example)
application really does not need ALL future events, but needs future events
within a certain window which depends on the latency scenario within which
the application is working. Is that true? Could that time window possibly
be specified as an attribute of the client connection? For _simplicitic_
apps that are not trying to do this as preciscly as OS X permits, a
connection to MIDI sources could be opened with a time window of zero, and
such applications would not receive any future events. Could scheduling
latency also be built into this in some way?
I have not yet done this "right" in my own application, and so I am talking
a little over my head here, hoping the concepts make some sense even though
my language may be off.
-Kurt Bigler
_______________________________________________
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.