Old 01-08-2014, 08:30 PM   #1
m00dawg
Human being with feelings
 
Join Date: Dec 2009
Location: Texas
Posts: 9
Question MIDI Export Does Not Include Channels?

I am having trouble exporting out MIDI tracks in Reaper with channel information. When I go to Export Project MIDI, select Entire Project, Consolidate All MIDI items, select Multitrack MIDI file and Embed tempo map. The problem is that it looks like the output is running everything over channel 0 (all channels?) rather than keeping with the channels I had setup in Reaper. I'm using the dr_midi.pl script (found here: http://interglacial.com/pub/dr_midi.html) to dump out the MIDI info, but I also tested this on my MidiBox MIDIO128 (the intended destination for these MIDI files).

I guess long story short, is there any way to preserve the channel information for the MIDI export?
m00dawg is offline   Reply With Quote
Old 01-09-2014, 02:03 AM   #2
DarkStar
Human being with feelings
 
DarkStar's Avatar
 
Join Date: May 2006
Location: Surrey, UK
Posts: 18,679
Default

I have not used that script (as I'm a bit wary of downloads) but I did exactly the same as you described, with 3 MIDI clips.

On reloading into a new project tab in Reaper the MIDI channels were retained (also retained in other hosts).

Perhaps your could attach a small problem project so that we can see what's (not) happening?
__________________
DarkStar ... interesting, if true. . . . Inspired by ...
DarkStar is online now   Reply With Quote
Old 01-09-2014, 02:04 AM   #3
EvilDragon
Human being with feelings
 
EvilDragon's Avatar
 
Join Date: Jun 2009
Location: Croatia
Posts: 24,317
Default

That sounds like it's saving to MIDI format 0 instead of MIDI format 1.
EvilDragon is online now   Reply With Quote
Old 01-11-2014, 08:32 PM   #4
m00dawg
Human being with feelings
 
Join Date: Dec 2009
Location: Texas
Posts: 9
Post

Could be, or perhaps MIDIO128 and dr_midi.pl are expecting another format? I did notice importing the MIDI file back into Reaper imports all the tracks, but clicking on I/O for the tracks just shows "send to original channels". Is there another way to verify the original channels?

I've attached a test case which is just 3 tracks with some basically random MIDI data in each. Each channel corresponds to MIDI channel 1, 2, and 3 in the IO section. When I output the MIDI I get the following from the dr_midi.pl script:

Code:
MacDawgPro-2:MIDI Tests tim$ perl ./dr_midi.pl TestCase.mid 
File: TestCase.mid
Format: 1
Tracks: 4
Ticks per quarter note: 960

Track chunk of 31 bytes
000000t:  Meta-event type $03 (Track name) of length 8
	  TestCase
000000t:  Meta-event type $58 (Time signature) of length 4
	  ____
000000t:  Meta-event type $51 (Set tempo) of length 3
	  _? 
000000t:  Meta-event type $2f (End-track event) of length 0
Sigma t = 0

Track chunk of 78 bytes
000000t:  Meta-event type $03 (Track name) of length 19
	  MIDI OUT 1_________
000888t:  Note on ::  Channel 0.  Note 48.  Velocity 96
002073t:  Meta-event type $01 (Text event) of length 15
	  Test Text Event
000000t:  Note on ::  Channel 0.  Note 52.  Velocity 96
119346t:  Note off ::  Channel 0.  Note 52.  Velocity 0
002370t:  Note on ::  Channel 0.  Note 51.  Velocity 96
105427t:  Note off ::  Channel 0.  Note 48.  Velocity 0
000296t:  Note off ::  Channel 0.  Note 51.  Velocity 0
000000t:  Meta-event type $2f (End-track event) of length 0
Sigma t = 230400

Track chunk of 301 bytes
000000t:  Meta-event type $03 (Track name) of length 19
	  MIDI OUT 2_________
000000t:  Note on ::  Channel 0.  Note 48.  Velocity 96
006811t:  Note off ::  Channel 0.  Note 48.  Velocity 0
001777t:  Note on ::  Channel 0.  Note 52.  Velocity 96
008292t:  Note off ::  Channel 0.  Note 52.  Velocity 0
000296t:  Note on ::  Channel 0.  Note 55.  Velocity 96
005923t:  Note off ::  Channel 0.  Note 55.  Velocity 0
000593t:  Note on ::  Channel 0.  Note 59.  Velocity 96
007699t:  Note off ::  Channel 0.  Note 59.  Velocity 0
000296t:  Note on ::  Channel 0.  Note 48.  Velocity 96
006811t:  Note off ::  Channel 0.  Note 48.  Velocity 0
001777t:  Note on ::  Channel 0.  Note 52.  Velocity 96
008292t:  Note off ::  Channel 0.  Note 52.  Velocity 0
000296t:  Note on ::  Channel 0.  Note 55.  Velocity 96
005923t:  Note off ::  Channel 0.  Note 55.  Velocity 0
000592t:  Note on ::  Channel 0.  Note 59.  Velocity 96
007700t:  Note off ::  Channel 0.  Note 59.  Velocity 0
000000t:  Note on ::  Channel 0.  Note 48.  Velocity 96
006811t:  Note off ::  Channel 0.  Note 48.  Velocity 0
001777t:  Note on ::  Channel 0.  Note 52.  Velocity 96
008292t:  Note off ::  Channel 0.  Note 52.  Velocity 0
000296t:  Note on ::  Channel 0.  Note 55.  Velocity 96
005923t:  Note off ::  Channel 0.  Note 55.  Velocity 0
000592t:  Note on ::  Channel 0.  Note 59.  Velocity 96
007700t:  Note off ::  Channel 0.  Note 59.  Velocity 0
000000t:  Note on ::  Channel 0.  Note 48.  Velocity 96
006811t:  Note off ::  Channel 0.  Note 48.  Velocity 0
001777t:  Note on ::  Channel 0.  Note 52.  Velocity 96
008292t:  Note off ::  Channel 0.  Note 52.  Velocity 0
000296t:  Note on ::  Channel 0.  Note 55.  Velocity 96
005923t:  Note off ::  Channel 0.  Note 55.  Velocity 0
000592t:  Note on ::  Channel 0.  Note 59.  Velocity 96
007700t:  Note off ::  Channel 0.  Note 59.  Velocity 0
000000t:  Note on ::  Channel 0.  Note 48.  Velocity 96
006811t:  Note off ::  Channel 0.  Note 48.  Velocity 0
001777t:  Note on ::  Channel 0.  Note 52.  Velocity 96
008292t:  Note off ::  Channel 0.  Note 52.  Velocity 0
000296t:  Note on ::  Channel 0.  Note 55.  Velocity 96
005923t:  Note off ::  Channel 0.  Note 55.  Velocity 0
000592t:  Note on ::  Channel 0.  Note 59.  Velocity 96
007700t:  Note off ::  Channel 0.  Note 59.  Velocity 0
000000t:  Note on ::  Channel 0.  Note 48.  Velocity 96
006811t:  Note off ::  Channel 0.  Note 48.  Velocity 0
001777t:  Note on ::  Channel 0.  Note 52.  Velocity 96
008292t:  Note off ::  Channel 0.  Note 52.  Velocity 0
000296t:  Note on ::  Channel 0.  Note 55.  Velocity 96
005923t:  Note off ::  Channel 0.  Note 55.  Velocity 0
000592t:  Note on ::  Channel 0.  Note 59.  Velocity 96
007700t:  Note off ::  Channel 0.  Note 59.  Velocity 0
000000t:  Note on ::  Channel 0.  Note 48.  Velocity 96
006811t:  Note off ::  Channel 0.  Note 48.  Velocity 0
001777t:  Note on ::  Channel 0.  Note 52.  Velocity 96
008292t:  Note off ::  Channel 0.  Note 52.  Velocity 0
000296t:  Note on ::  Channel 0.  Note 55.  Velocity 96
005923t:  Note off ::  Channel 0.  Note 55.  Velocity 0
000592t:  Note on ::  Channel 0.  Note 59.  Velocity 96
007700t:  Note off ::  Channel 0.  Note 59.  Velocity 0
000000t:  Meta-event type $2f (End-track event) of length 0
Sigma t = 220033

Track chunk of 55 bytes
000000t:  Meta-event type $03 (Track name) of length 19
	  MIDI OUT 3_________
001481t:  Note on ::  Channel 0.  Note 55.  Velocity 96
000000t:  Note on ::  Channel 0.  Note 60.  Velocity 96
001777t:  Note on ::  Channel 0.  Note 48.  Velocity 96
227142t:  Note off ::  Channel 0.  Note 55.  Velocity 0
000000t:  Note off ::  Channel 0.  Note 60.  Velocity 0
000000t:  Note off ::  Channel 0.  Note 48.  Velocity 0
000000t:  Meta-event type $2f (End-track event) of length 0
Sigma t = 230400
End.
That is similar to what I get with the MidiBox MIDIO128 when I try to playback the MIDI - one of my synths ends up playing all tracks when it should only be playing stuff from channel 1.

I'm open to suggestions on better ways to validate MIDI though. dr_midi seems to be closest I've found without actually having to look and decode a hexdump of the MIDI. I was trying to do it external to Reaper just to make sure I can try to isolate any bugs in Reaper, MIDIO128, etc.
Attached Files
File Type: zip MIDI-Export_Test-Case.zip (4.6 KB, 99 views)
m00dawg is offline   Reply With Quote
Old 01-12-2014, 02:04 AM   #5
DarkStar
Human being with feelings
 
DarkStar's Avatar
 
Join Date: May 2006
Location: Surrey, UK
Posts: 18,679
Default

There is some odd MIDI in that project. The Note Properties window cannot be displayed for some 'notes' and Reaper does not show those in the Event List. The notes that are shown are all on channel 01.

The JS FX midi_logger or ReaControlMIDI's logger or insertpizhere's MIDI Monitor will all display the MIDI messages.
__________________
DarkStar ... interesting, if true. . . . Inspired by ...
DarkStar is online now   Reply With Quote
Old 01-12-2014, 09:36 AM   #6
m00dawg
Human being with feelings
 
Join Date: Dec 2009
Location: Texas
Posts: 9
Question

Quote:
Originally Posted by DarkStar View Post
There is some odd MIDI in that project. The Note Properties window cannot be displayed for some 'notes' and Reaper does not show those in the Event List. The notes that are shown are all on channel 01.
Hmm, for the test case I just used Reaper's MIDI editor and painted the notes and then went into the IO section for each track and changed the output channel under the MIDI Hardware Output. Seems like that is where things are going south, though. I noticed when re-opening the test case, my channel data was gone, I assume because my MIDI configuration was changing.

I have never been able to find it, but it sounds like I'm not putting in channel data within the MIDI track/data itself and so Reaper is just exporting whatever the default is for that when it comes time to export the MIDI data to a file?

Quote:
Originally Posted by DarkStar View Post
The JS FX midi_logger or ReaControlMIDI's logger or insertpizhere's MIDI Monitor will all display the MIDI messages.
[/quote]

It took a bit of finagling, but I was able to see what Reaper is doing using the MIDI Patchbay and MIDI Monitor utilities under OS X. The MIDI exported version shows channel 1 is being used for all tracks, which is different from what dr_midi.pl was showing. That would still have produced the same result that I was getting with my MIDIO128 I think.


So I guess, long story short, it sounds like I need to somehow embed channel data into the MIDI for the tracks I'm trying to export to a MIDI file for things to work?
m00dawg is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 08:05 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2020, vBulletin Solutions Inc.