Author |
Topic: Intermitent lack in loading map after program chg (Read 2233 times) |
|
MGRCI
New Member

 MIDI-OX Rules!
Posts: 2
|
 |
Intermitent lack in loading map after program chg
« on: Nov 6th, 2005, 12:36pm » |
Quote Modify
|
First, many thanks to Jamie O'Connell for the unique *WORKING* MIDI router with patch change ==> map change capability. Congratulations Jamie! Here is my bug: I configured each translation map to send an "All note off" to channells 1-9 in order to avoid missing "note off" messages to a particular MIDI channel after a map change. After the "All note off" messages, each translation map sends "program change" messages to the devices that will be used with that map (see example below). TIMESTAMP IN PORT STATUS DATA1 DATA2 CHAN NOTE EVENT Loaded Map: 'This Love-1.oxm' 00003CD4 10 2 B0 7F 00 1 --- CC: Poly On 00003CD4 10 2 B1 7F 00 2 --- CC: Poly On 00003CD4 10 2 B2 7F 00 3 --- CC: Poly On 00003CD4 10 2 B3 7F 00 4 --- CC: Poly On 00003CD4 10 2 B4 7F 00 5 --- CC: Poly On 00003CD4 10 2 B5 7F 00 6 --- CC: Poly On 00003CD4 10 2 B6 7F 00 7 --- CC: Poly On 00003CD4 10 2 B7 7F 00 8 --- CC: Poly On 00003CD4 10 2 B8 7F 00 9 --- CC: Poly On 00003CD4 10 2 C1 02 -- 2 --- PC: Elec Grand Piano 00003CD4 10 2 C2 02 -- 3 --- PC: Elec Grand Piano 00003CD4 10 2 C9 00 -- 10 --- PC: Drums Loaded Map: 'This Love-2.oxm' 00003EAD 10 2 B0 7F 00 1 --- CC: Poly On 00003EAD 10 2 B1 7F 00 2 --- CC: Poly On 00003EAD 10 2 B2 7F 00 3 --- CC: Poly On 00003EAD 10 2 B3 7F 00 4 --- CC: Poly On 00003EAD 10 2 B4 7F 00 5 --- CC: Poly On 00003EAD 10 2 B5 7F 00 6 --- CC: Poly On 00003EAD 10 2 B6 7F 00 7 --- CC: Poly On 00003EAD 10 2 B7 7F 00 8 --- CC: Poly On 00003EAD 10 2 B8 7F 00 9 --- CC: Poly On 00003EAD 10 2 C1 02 -- 2 --- PC: Elec Grand Piano 00003EAD 10 2 C2 02 -- 3 --- PC: Elec Grand Piano 00003EAD 10 2 C9 00 -- 10 --- PC: Drums Loaded Map: 'This Love-2.oxm' 00004095 10 2 B0 7F 00 1 --- CC: Poly On 00004095 10 2 B1 7F 00 2 --- CC: Poly On 00004095 10 2 B2 7F 00 3 --- CC: Poly On 00004095 10 2 B3 7F 00 4 --- CC: Poly On 00004095 10 2 B4 7F 00 5 --- CC: Poly On 00004095 10 2 B5 7F 00 6 --- CC: Poly On 00004095 10 2 B6 7F 00 7 --- CC: Poly On 00004095 10 2 B7 7F 00 8 --- CC: Poly On 00004095 10 2 B8 7F 00 9 --- CC: Poly On 00004095 10 2 C9 01 -- 10 --- PC: Drums In this example, the problem has just occurred. I called two times the map "This Love-2.oxm" by sending a program change to MidiOx. The first time I called it, the loaded map was the wrong one. It seems that the application does not wait until the map is read from hard disk and uses the map previously loaded "This Love-1.oxm". Maybe this problem could be avoided by loading all ".oxm" files into memory during intialization. This lack occurs in about 2-5% of the times I send a program change message. My configuration: I'm using a 2.4GHz Celeron desktop with Windows XP; an USB MIDI controller; Midi Yoke NT (v. 1.71 beta) and MidiOx (v. 7.0.0.365). MidiOX receives from USB device and sends to Midi Yoke NT 1. I use an VST host application configured to receive from Midi Yoke NT 1, but the same problem occurs even if I shut down the VST host. Thanks for any clue. MGRCI
|
|
IP Logged |
|
|
|
Jamie OConnell
Administrator
    


Gender: 
Posts: 2027
|
 |
Re: Intermitent lack in loading map after program
« Reply #1 on: Nov 6th, 2005, 1:46pm » |
Quote Modify
|
Ordinarily, loading a map based on a patch change would never act on a patch change issued by the new map. But it might if you had "[x] Send Patch through New Map" (in the Patch Map dialog) was checked. Try un-checking that. By the way, "All Notes Off" is controller 123 (7B Hex), and not 127 (7F Hex) "Poly On" as shown in your examples.
|
« Last Edit: Nov 6th, 2005, 1:50pm by Jamie OConnell » |
IP Logged |
--Jamie Music is its own reward.
|
|
|
MGRCI
New Member

 MIDI-OX Rules!
Posts: 2
|
 |
Re: Intermitent lack in loading map after program
« Reply #2 on: Nov 7th, 2005, 6:41am » |
Quote Modify
|
Hello Jamie. Thank you for the quick reply. Disabling 'Send patch throgh new map' did not work (all 'program change' copy rules was ignored in that case). In fact, in earlier experiments with MidiOx, I used to put a rule in all oxm maps to copy program change messages to all MIDI channels, therefore, all VST instruments would follow the change. It used to work very nice with MidiOx, but some sampler-based VST intruments have a big delay to load sample data from hard-disk when they receive a program change message (something like 0.5 to 10 seconds!). This absolutely kills live performance, where program changes must be done 'on the fly'. So, I chose to send program change messages only to the synths that will be used in each program. For example, if a song uses programs #1, #2 and #3 and program 2 uses the sampler program #20: the MidiOx maps for PC #1, #2 and #3 will send a PC to #20 message to the sampler, so, the samples will be loaded the first time I jump to one of these three programs, and then, no more delay occurs to load the samples in the middle of the song. So, please consider supporting this feature in the next versions of MidiOx. If you want me to explain more, just tell me. And thanks for the hint about 'All note off'. I was using 'All note on' with intensity parameter set to '0' just because I have not known the 07Bh before. Best regards! MGRCI
|
|
IP Logged |
|
|
|
|