Re: collecting MIDI events into windows
Re: collecting MIDI events into windows
- Subject: Re: collecting MIDI events into windows
- From: Brian Willoughby <email@hidden>
- Date: Fri, 8 May 2009 13:17:16 -0700
On May 8, 2009, at 09:02, James Maxwell wrote:
I have a MIDI app I'm working on, in which I need to run a bunch of
analysis stuff on live MIDI input. I want to kind of "cluster" the
events based on their proximity in time so that, for example, any
events that attack (i.e., have a noteon) within a given time
interval of one another will be grouped into a "chord."
Be careful, because if your cluster covers too much time, you'll turn
an arpeggio into a stab. It's an interesting idea, though.
Does anybody have any tips to get me started? I realize this sort
of system cannot help but introduce some latency, but I'm not
worried about that. The actual playback MIDI is passing straight
through the system, and the analysis stuff is running on a separate
thread.
You'll mostly get advice about the API on this mailing list, not
necessarily on your algorithms or general programming. On that tip,
I will point out that CoreMIDI provides a time stamp with all of the
MIDI data it provide to you application (with a few exceptions for
software sources of MIDI). USB-MIDI does not have very accurate
timing, in that it allows relatively large amounts of jitter in the
delivery times of data. CoreMIDI will not be able to correct these
timing flaws for USB-MIDI data sources, but it won't make the issue
worse. For other MIDI devices, particularly those from MOTU and
EDIROL which have custom drivers for accurate timing, CoreMIDI will
automatically give you the better timing information. I suggest
starting with good hardware (if USB, it would need a custom driver to
be accurate), and go from there.
Good luck. Let me know off list how successful you are.
Brian Willoughby
Sound Consulting
_______________________________________________
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