Hi, everybody.
I'm an engineer who are developing a MIDI-embedded system. I'm wondering about "PORT" MIDI meta event when using Cakewalk.
With the previous version of Cakewalk such as "Cakewalk Professional Ver. 3.00", I could assign any port numbers for each track although I didn't install several types of MIDI interface. When I save my work to ".mid" file through "Save As" then, "PORT" information is recorded as a meta event "FF 21 01 xx" - xx is a hexadecimal value which I wrote -.
But with the later versions such as "Cakewalk ProAudio" or "Sonar", I
coundn't assign an arbitrary port number. I can get only the registered MIDI Port in the port selection list box. These MIDI ports are surely registered in the "MS Windows Control Panel". And in this case, "PORT" information is not reserved as meta event which is defined in SMF spec. I don't know how port informations are reserved when I use these tools and I really want to know how I can get them from ".mid" files.
Well, I don't want to play MIDI music through all the ports. Some ports will be used to send out pure MIDI-playing data and some for extra features.
For examples, I would like to take port 0 and port 1 for real MIDI-playing and port 14 for rhythm change informations and port 15 for mp3-related informations, and so on in my applications.
As I mentioned before, my application is oriented to MIDI-embedded system. I won't make MIDI files. I just propose making music directions to musicians. So I think that it will be very troublesome for the MIDI-musician to modify MIDI files with a hex editor. And many musicians don't be equipped with older version Cakewalk, now. ^^;;
Well, would you explain the MIDI port binary data when someone make a MIDI file by Sonar or newer version Cakewalk if possible?
Is there anybody who can help me?
Any reply, E-mail, or web site address will be welcomed.
I will check my E-mail at csjang74@hotmail.com .
I hope that there are many merciful guys.
Have a good day.
Comments
Hi. That meta event has been superseded. Have you looked for the following meta event that has replaced it?
QUOTED FROM www.borg.com/~jglatt/tech/midifile.htm
Device (Port) Name
FF 09 len text
The name of the MIDI device (port) where the track is routed. This replaces the "MIDI Port" Meta-Event which some sequencers formally used to route MIDI tracks to various MIDI ports (in order to support more than 16 MIDI channels).
For example, assume that you have a MIDI interface that has 4 MIDI output ports. They are listed as "MIDI Out 1", "MIDI Out 2", "MIDI Out 3", and "MIDI Out 4". If you wished a particular MTrk to use "MIDI Out 1" then you would put a Port Name Meta-event at the beginning of the MTrk, with "MIDI Out 1" as the text.
All MIDI events that occur in the MTrk, after a given Port Name event, will be routed to that port.
In a format 0 MIDI file, it would be permissible to have numerous Port Name events intermixed with MIDI events, so that the one MTrk could address numerous ports. But that would likely make the MIDI file much larger than it need be. The Port Name event is useful primarily in format 1 MIDI files, where each MTrk gets routed to one particular port.
Note that len could be a series of bytes since it is expressed as a variable length quantity.
I already visited the web site which you mentioned, but I missed "ERRATA".
Well, I should propose a making MIDI music direction using the newest Cakewalk or Sonar to musicians. But I couldn't find how I can insert "Device (Port) Name - FF 09 len text". With those sequencing softwares, assigning MIDI tracks to ports is only possible to select from the list box. And I can see registered MIDI port only.
Would you do me a favor to explain a port setting job in detail? I just want to know what will happen when I save a MIDI file, how I can interpret the result MIDI file from Cakewalk.
Can't tell you anything about setting up ports in Sonar/Cakewalk as i've never used them. I use Steinberg Cubasis when I need a sequencer.
Regards, Jason (UK)