Re: MIDIReceive and SysEx event
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