• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: MIDIReceive and SysEx event
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: MIDIReceive and SysEx event


  • Subject: Re: MIDIReceive and SysEx event
  • From: Nigel Redmon <email@hidden>
  • Date: Thu, 21 Jun 2007 13:43:03 -0700

Jasmin--"the ones that begin with FF":

I think you are talking about the same thing I mentioned in my previous post. That is, my MIDI engine supports all ***MIDI FILE*** meta events (the ones that begin with FF), but these are purely events for the file interchange format ("standard MIDI file"). That is, they are never sent over a MIDI cable, and almost no MIDI software even supports them internally. I supported most of them in an ancient piece of software called HyperMIDI, for two reasons: internally, one or two made sense (mainly, having a timestamped "set tempo" commands, and also the text events had some utility if you wanted to srite a karaoke player or some kind of timed prompter), and the main reason which was to give the user a way to read what was in a MIDI file, and to be able to build MIDI files from a description.

In the current engine I'm working on, every defined MIDI file event is supported. Again, these are useful things internally. For instance, if want to throw together an algorithmic composer, I can name my tracks and instruments, tempo and key signature changes, etc., and save it as a MIDI file, since my MIDI file writing routine knows all of those internal events and their file counterparts. HOWEVER, when I play back one of those nice multitrack sequences with all the markers, tracks names, tempo events, time signature events, etc., none of those meta events ever gets sent to coremidi, and most of the meta events are completely ignored. A notable exception is "set tempo" message, which changes the rate of the sequence's tempo clock when the message's timestamp says it's ripe.

So, if you have a reason to implement the midi file meta events, fine--just don't send them out the midi port. They aren't meant to be transmitted--they exist for file interchange. It's doubtful that you need to implement them, and some don't even make much sense. For instance, while it's helpful to have text markers, with a time attribute, associated with a track, there's no great reason to actually intermix it with the MIDI stream--the markers would probably sit in a separate table in a sequencer application. And tracks names don't need time stamps at all--the only reason they have them in MIDI files is because ALL events have a timestamp--you put your track names at the start of the MIDI file track, with a time of 0. Again, very little reason to store them in a MIDI stream at all, and never any reason to ask coremidi to pass it on.

Regards,

Nigel


On Jun 21, 2007, at 7:18 AM, Jasmin Lapalme wrote:

Hi,
Sorry for the late reply, I'm not working on that projet full time.
I try the exact same SysEx event and it worked! I think that the 1 after the f0 is very important. For the meta events, I'm talking about the ones that begin with FF. Now I'm able to send them, the length I was sending was not right.


Thanks

Jasmin


Le 07-06-15 à 02:16, Nigel Redmon a écrit :

Jasmin

I'm not sure what you mean by "meta event"--I don't know of any meta events coremidi supports (maybe I haven't read enough? In a MIDI engine I'm writing, I support all MIDI messages, and internally support all defined standard MIDI file metas, but those are internal to my sequencing engine and mainly useful for building MIDI files programmatically). If you want to send sysex, it's no problem. I just tried sending a bogus sysex message to MIDI Monitor--via MIDIReceived--and it worked fine (I sent "f0 1 2 3 4 f7"; MM reported it as message "SysEx", and data "Sequential Circuit 6 Bytes"--manufacturer id 1 is Sequential Circuits of course). Could you describe the packet you are trying to send?

Regards,

Nigel

On Jun 14, 2007, at 4:57 PM, Jasmin Lapalme wrote:

Hi,
I'm writing a MIDI driver plug-in. I'd like to send sysex event or meta event. I use the MIDIReceived function to send my midi event. It works perfectly with note on and note off. I use MIDIMonitor to observe the midi events. When I try to send any meta event or sysex event, I don't see any data sent? How can I send sysex event in a MIDI driver plugin?


Thanks

Jasmin Lapalme



_______________________________________________ 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
References: 
 >MIDIReceive and SysEx event (From: Jasmin Lapalme <email@hidden>)
 >Re: MIDIReceive and SysEx event (From: Nigel Redmon <email@hidden>)
 >Re: MIDIReceive and SysEx event (From: Jasmin Lapalme <email@hidden>)

  • Prev by Date: Re: MIDIReceive and SysEx event
  • Next by Date: Re: MIDIReceive and SysEx event
  • Previous by thread: Re: MIDIReceive and SysEx event
  • Next by thread: Re: MIDIReceive and SysEx event
  • Index(es):
    • Date
    • Thread