User Forum    :: Powered by YaBB
  « MIDI-OX User Forum - Can I replicate ports and channels and mapping? »
Welcome, Guest. Please Login or Register.
May 7th, 2025, 1:44am


Home Home Help Help Search Search Members Members Login Login Register Register


   MIDI-OX User Forum
   MIDI-OX
   Mapping Questions
(Moderator: Jamie OConnell)
   Can I replicate ports and channels and mapping?
« Previous topic | Next topic »
Pages: 1  Reply Reply Notify of replies Notify of replies Send Topic Send Topic Print Print
   Author  Topic: Can I replicate ports and channels and mapping?  (Read 1137 times)
gabriel
Member
**



MIDI-OX Rules!

   


Posts: 14
Can I replicate ports and channels and mapping?
« on: Jun 21st, 2003, 5:14pm »
Quote Quote Modify Modify

Hi,
I'm trying to do the following with Midiox, but just can't understand how to do it.  
 
My midi controller output (Port 1 Channels 1 and 2)  goes to MidiOx.
MidiOx should then replicate any messages from my controller in the following manner:
 
Port 1 Ch1  should go out  to:  
 Port 1   Ch 1, 3, 5, and 7.
 Port 2   Ch 1, 3, 5, and 7.
 Port 3   Ch 1, 3, 5, and 7.
 Port 4   Ch 1, 3, 5, and 7.
 
Port 1 Ch2  should go out  to:
Port 1   Ch 2, 4, 6, and 8.
Port 2   Ch 2, 4, 6, and 8.
Port 3   Ch 2, 4, 6, and 8.
Port 4   Ch 2, 4, 6, and 8.
 
These Ports and Channels will be received by Gigastudio.
 
All messages should be unchanged except for Program Change Messages.
Program Changes are sent out of my controller on only Port 1 Ch1 (but will have been replicated as described above).
Program Changes should be mapped so that any program # , just before being sent out on it's unique port and channel, can be mapped to any arbitrary program #.  In this way, a single program change sent out on my controller can send a different program # out each of the 4 ports and to each of it's channels (1 through Cool.
 
All note on, note off, continuous controller, etc. message should be sent unchanged out the 4 ports and 8 channels described above.
 
I used to do this with MidiOx and Midiyoke (running 5 instances of Midiox, but can't seem to get Midiyoke to work with GigaStudio any more.  In reading the Midiox help file, I believe I should be able to do this with Program Change Mapping and/or Data Mapping, with only one instance of MidiOx (thereby no longer needing to use Midiyoke to link the 5 instances of Midiox.
 
I'm afraid I just can't understand the help files.... kindof makes me feel inadequate, but there it is!!! I'm floundering.  Any help would be much appreciated.
Thanks,
Gabriel
IP Logged
Jamie OConnell
Administrator
*****






   
WWW Email

Gender: male
Posts: 2027
Re: Can I replicate ports and channels and mapping
« Reply #1 on: Jun 22nd, 2003, 4:16pm »
Quote Quote Modify Modify

The first part of your request can be solved by a multiport connection and a straightforward Global Data Map.  Assuming you already have your input port connected to 4 output ports (Options | MIDI Devices...), you could create the following map:
 

Ch Message V1Min V1Max V2Min V2Max C|Ch Message V1Min V1Max V2Min V2Max
 1 *           *     *     *     * Y| 3 *           *     *     *     *
 1 *           *     *     *     * Y| 5 *           *     *     *     *
 1 *           *     *     *     * Y| 7 *           *     *     *     *
 2 *           *     *     *     * Y| 4 *           *     *     *     *
 2 *           *     *     *     * Y| 6 *           *     *     *     *
 2 *           *     *     *     * Y| 8 *           *     *     *     *

 
Because each item is cloned the initial message will also be output on the original channel after mapping is complete.  Note that this will map all events including Program Change, and the Program change events will need to be remapped at the Port Map level.
 
In a Port Map you can also use the Discard target event method to filter out unwanted Program Changes, so your Port maps can contain lines such as:
 

Ch Message V1Min V1Max V2Min V2Max C|Ch Message V1Min V1Max V2Min V2Max
 2 ProgChg     *     *     *     *  | * Discard     *     *     *     *    
 3 ProgChg     *     *     *     *  | * Discard     *     *     *     *    
 4 ProgChg     *     *     *     *  | * Discard     *     *     *     *    
 . . .

 
Ultimately you'll have to work out your Program change mapping chart: what a program change on Port 1 channel 1 should map into.  Because you have a single input port routed to 4 output ports, you'll have 4 separate Port maps: one for each input - ouput port mapping.  You can create these in the main Global Map dialog and then save them for use by the input-ouput port connections.  Here's an example of a single patch (Patch #2 - actual patch numbers are 0 - 127) being mapped to different patches on 8 channels:
 

Ch Message V1Min V1Max V2Min V2Max C|Ch Message V1Min V1Max V2Min V2Max  
 1 ProgChg     1     1     *     * Y| 1 *           7     7     *     *  
 1 ProgChg     1     1     *     * Y| 2 *          13    13     *     *  
 1 ProgChg     1     1     *     * Y| 3 *           8     8     *     *  
 1 ProgChg     1     1     *     * Y| 4 *          15    15     *     *  
 1 ProgChg     1     1     *     * Y| 5 *          24    24     *     *  
 1 ProgChg     1     1     *     * Y| 6 *          36    36     *     *  
 1 ProgChg     1     1     *     * Y| 7 *          49    49     *     *  
 1 ProgChg     1     1     *     * Y| 8 *          90    90     *     *  

 
« Last Edit: Jun 22nd, 2003, 4:35pm by Jamie OConnell » IP Logged

--Jamie
Music is its own reward.

gabriel
Member
**



MIDI-OX Rules!

   


Posts: 14
Re: Can I replicate ports and channels and mapping
« Reply #2 on: Jun 23rd, 2003, 1:40am »
Quote Quote Modify Modify

Jaime,
Thanks for the help.  I'm one step closer to being able to solve my problem.  I still can't seem to do it all.  Can you clear up these further questions?  I'll use the simplest examples rather than my desired total setup to make my questions clearer.
 
I use the Translation Map to force Ch 1 to be sent out as Ch 3 and Ch 1. This works fine.  Within the same Translation Map, I try to do this:
Program # 1 should go out Ch 1 as Program# 10
Program # 1 should go out Ch 2 as Program# 11
 
I do the above by setting up:
Chan  Message  Min  Max Clone  | Chan  Message  Min  Max
  1 *      *     *     Yes   |     3 *    * *
  1 ProgChg  1 1     Yes  |     * *   10    10
  3 ProgChg  1 1     Yes  |     * *   11    11
 
Ch 1 output gets its correct Program # of 10, but Ch 3 just outputs Program # 1as if it weren't going through any mapping.  
 
In a way, this makes sense to me.  The first line of the Translation Map causes Ch 1 messages to be sent out on Ch 3 as well as being passed on unchanged (as Ch 1 messages).  But maybe the Ch 3 messages are just being "shipped" out of this map to its output before being processed by the third line of the map.
 
That's why I used to first do the "fanout" ... sending 1 channel out on several channels.... and then run a separate instance of MidiOx to "intercept" each channel, doing the program # transformation in a separate instance of Midiox, and then sending the output to Gigastudio from each of the separate instances.
 
Since I can't use MidiyokeNT successfully any more for some reason, I was hoping for a solution that didn't require relaying messages between instances of Midiox.
 
Am I doing something wrong?
 
Secondly, I am confused about the Port Mapping.  I've created two different Translation Maps.  The first is the one I've detailed above (and have saved as "Original.oxm"). The second is much the same, except that, instead of outputting Program # 10 and #11, it outputs #20 and #21.  I've saved this map under the name "Different.oxm.
 
As a test, using the MIDI Devices dialog, I've attached my input device to one of my 4 Midi output ports (In this case.... NemeSys MidiOut Port 1).  
Then I've dragged "Original".oxm" onto the input device that's attached to the Nemesys MidiOut Port 1.  After testing that, I've dragged "Different.oxm" into the input device instead of "Original.oxm".  
 
Unfortunately, it doesn't matter which of the two data maps is dragged onto the input port.  What seems to matter is which of the two maps is the last to be opened in the Translation Map Dialog window before clicking "OK" thereby activating that map.  This seems to override whichever map is dragged onto the input device in the Port Mapping window.  
 
Could this be because I'm using my M-Audio 2496 midi input port as the input to Midiox.  This card is not multi-client.  Well, actually, I think that would only have been an issue when I was trying to output to 2 ports, and dragged a different .oxm file into each of it's attached input ports.
 
If I can understand these two issues, I think I'll be able to achieve my goals with Midiox.
Thanks very much for your help.
Gabriel
IP Logged
Jamie OConnell
Administrator
*****






   
WWW Email

Gender: male
Posts: 2027
Re: Can I replicate ports and channels and mapping
« Reply #3 on: Jun 23rd, 2003, 2:07am »
Quote Quote Modify Modify

Quote:

I do the above by setting up:
 
Chan  Message  Min  Max Clone  | Chan  Message  Min  Max  
  1   *        *     *   Yes   |   3    *        *    *  
  1   ProgChg  1     1   Yes   |   *    *       10    10  
  3   ProgChg  1     1   Yes   |   *    *       11    11  
 

 
The first problem is that a Program change message will  encounter the all mapping before it encounters the Program change mapping.  The second problem is that only original messages are candidates for mapping, so your channel 3 program change will not be triggered unless a channel 3 program change is input from an external source.  Instead, try mapping the Program change messages first and only consider the triggering message as a mapping source:
 
 
Chan  Message  Min  Max Clone  | Chan  Message  Min  Max  
  1   ProgChg  1     1   Yes   |   *    *       10    10  
  1   ProgChg  1     1         |   3    *       11    11  
  1   *        *     *   Yes   |   3    *        *    *  
 
 
Also note that I did not clone the second Program change mapping so that it gets eaten before being supplied to the All mapping.
 
Global mapping is performed first before any Port mapping is done,  but unlike events in the Global map, a Port map can also map already modified events output from the Global Map. So, if after the Global map, you have program changes on channels 3 and 1, then you can add mapping items for channels 3 and 1 in the port map.
« Last Edit: Jun 23rd, 2003, 2:20am by Jamie OConnell » IP Logged

--Jamie
Music is its own reward.

gabriel
Member
**



MIDI-OX Rules!

   


Posts: 14
Re: Can I replicate ports and channels and mapping
« Reply #4 on: Jun 24th, 2003, 2:17am »
Quote Quote Modify Modify

Jamie,
Brilliant!!! Why couldn't I think of that?  Now I'm able to get unique program changes out to each desired channel and let all other messages go out unchanged to those same channels.  Exactly what I wanted!
 
I'm only missing one piece now.  I don't understand how to make port maps do anything.  I can only do the above for one port.  If I add a second port, it sends out messages identical to the ones on port 1.  
 
I believe the map that is defined in the Translation Map window (and becomes active when I click "OK") is what you are calling the global map.  That is the one that seems to be controlling the output values on both ports.  
 
I thought I'd merely have to drag a second (and different) translation map from the Port Map Objects window into the Midi Input Port that's attached to my second output port (in the Port Mapping window), and that the second output port would therefore output values as defined in this second translation map.  Well, so much for that theory!!  
 
I've tried dragging two different translation maps into the Midi Input.  One of the translation maps tries to remap the original values presented to the global map by my midi input (the midi port on my M-Audio Audiophile 2496 card).  That didn't work.  Then I tried a translation map which tries to remap the values output by the global map.  That didn't work either.
 
Maybe I'm choosing the wrong Midi Input Port to attach to my second Ouput Port.  I'm choosing the same Input port for both Output port 1 and Output port 2.  There is no other choice since that's the only Input port listed in the MIDI Inputs window.
 
I'm stumped, but eager to hear the solution!
Thanks,
Gabriel
IP Logged
Jamie OConnell
Administrator
*****






   
WWW Email

Gender: male
Posts: 2027
Re: Can I replicate ports and channels and mapping
« Reply #5 on: Jun 24th, 2003, 9:41pm »
Quote Quote Modify Modify

Quote:

I believe the map that is defined in the Translation Map window (and becomes active when I click "OK") is what you are calling the global map.  

Correct: that is the Global Map.  
 
If you're going to use both Per-port maps AND Global Data maps concurrently, I would recommend only performing the Any event mapping in the Global map, and performing all of the Program Change mapping in the Per-port maps.  Otherwise, it just gets too difficult to work out how successive mapping steps will transform an event, possibly several times.  
 
So your Global map will look something like like:

Ch Message V1Min V1Max V2Min V2Max C|Ch Message V1Min V1Max V2Min V2Max  
 1 *           *     *     *     * Y| 3 *           *     *     *     *  
 1 *           *     *     *     * Y| 5 *           *     *     *     *  
 1 *           *     *     *     * Y| 7 *           *     *     *     *  
 2 *           *     *     *     * Y| 4 *           *     *     *     *  
 2 *           *     *     *     * Y| 6 *           *     *     *     *  
 2 *           *     *     *     * Y| 8 *           *     *     *     *  

 
Then say you create a map named prog1.oxm and assign it to the Ouput1 - Input 1 connection.  It might begin something like:
 

Ch Message V1Min V1Max V2Min V2Max C|Ch Message V1Min V1Max V2Min V2Max  
 1 ProgChg     1     1     *     * Y| 1 *           7     7     *     *  
 1 ProgChg     1     1     *     * Y| 2 *          13    13     *     *  
 1 ProgChg     1     1     *     * Y| 3 *           8     8     *     *  
 1 ProgChg     1     1     *     * Y| 4 *          15    15     *     *  
 1 ProgChg     1     1     *     * Y| 5 *          24    24     *     *  
 1 ProgChg     1     1     *     * Y| 6 *          36    36     *     *  
 1 ProgChg     1     1     *     * Y| 7 *          49    49     *     *  
 1 ProgChg     1     1     *     * Y| 8 *          90    90     *     *  

 
And a different mapping (prog2.oxm) assigned to the Output 2 - Input 1 connection:
 

Ch Message V1Min V1Max V2Min V2Max C|Ch Message V1Min V1Max V2Min V2Max  
 1 ProgChg     1     1     *     * Y| 1 *          15    15     *     *  
 1 ProgChg     1     1     *     * Y| 2 *          26    26     *     *  
 1 ProgChg     1     1     *     * Y| 3 *           5     5     *     *  
 1 ProgChg     1     1     *     * Y| 4 *          44    44     *     *  
 1 ProgChg     1     1     *     * Y| 5 *          32    32     *     *  
 1 ProgChg     1     1     *     * Y| 6 *          47    47     *     *  
 1 ProgChg     1     1     *     * Y| 7 *          53    53     *     *  
 1 ProgChg     1     1     *     * Y| 8 *          87    87     *     *  

 
Of course, my example only maps a single Patch number (#2), yours will have more entries.  
 
Quote:

Maybe I'm choosing the wrong Midi Input Port to attach to my second Ouput Port.  I'm choosing the same Input port for both Output port 1 and Output port 2.  There is no other choice since that's the only Input port listed in the MIDI Inputs window.  

No, I think you have that part correct.  It is possible that there are some bugs in the 6.5.1 version that may affect this, and I would recommend moving up to the (very stable) Beta version, if you continue to have trouble.
 
« Last Edit: Jun 24th, 2003, 9:47pm by Jamie OConnell » IP Logged

--Jamie
Music is its own reward.

gabriel
Member
**



MIDI-OX Rules!

   


Posts: 14
Re: Can I replicate ports and channels and mapping
« Reply #6 on: Jun 26th, 2003, 12:35am »
Quote Quote Modify Modify

Jamie,
I am proud to be a beta site.  Got and installed 6.7 beta 3.  Still no luck.  I must be doing something wrong or misunderstanding your instructions.  
 
Here's what I'm doing:
 
First of all, I should say that I'm using .oxm files I created in the last real release because I seem somehow to have lost the "clone" checkbox, so I can't define cloning for my oxm's....
What's up with that?....  
I'm reinstalling the real release for the time being, but here's what I tried to do with the beta.
 
1) Set up two different .oxm files, one for each of two output ports, with different program# mapping just as you've shown (the .oxm files are essentially like yours, I've just added more lines, but the logic is the same).
 
2) Click OK after doing the "programming"  (I know this is probably unnecessary, but... what the heck....) and the save each under a unique name
 
3) Drag  one .oxm file into the input port attached to one of my output ports and a different .oxm file into the input port attached to the other output port.
 
4) Check "Automatically attach Inputs.... etc" .
 
5) Click OK.
 
6) Set up a global map which only does the "any" event mapping.
 
7) Check "turn map on"
 
Cool Click ok.
 
9) Send program changes
 
The result is even MORE "sanitized"  than it was when I was doing the program change mapping in the global  map.  Now I get no mapping at all.  I just get the "raw" program # going out to both ports.  There's no mapping to "substitute" program #s at all. The .oxm files are showing when I expand the Input ports attached to my Output ports, but they seem to have no effect at all.
 
I wouldn't mind sending you my .oxm files, but I think that's not the problem.  Is there any other switch I've ignored?  Is it really possible that Midiox would act so differently on two machines given that it seems to be running absolutely solidly?  
Gabriel
« Last Edit: Jun 26th, 2003, 12:53am by gabriel » IP Logged
gabriel
Member
**



MIDI-OX Rules!

   


Posts: 14
Re: Can I replicate ports and channels and mapping
« Reply #7 on: Jun 26th, 2003, 1:05am »
Quote Quote Modify Modify

Jamie,
I noticed something else.... If I save the port mapping as a preset, then delete the output ports from the port mapping window, then try to reload them by loading the preset, the .oxm files I attached to the input ports doesn't appear when I expand the input port icon.
Gabriel
IP Logged
Jamie OConnell
Administrator
*****






   
WWW Email

Gender: male
Posts: 2027
Re: Can I replicate ports and channels and mapping
« Reply #8 on: Jun 27th, 2003, 7:13pm »
Quote Quote Modify Modify

Quote:
First of all, I should say that I'm using .oxm files I created in the last real release because I seem somehow to have lost the "clone" checkbox, so I can't define cloning for my oxm's....  
What's up with that?....  

The clone button has moved, as it really applies to the Input event anyway, and we needed space for the Delay which applies to the Mapped Output event:
 

 
Quote:
The result is even MORE "sanitized"  than it was when I was doing the program change mapping in the global  map.  Now I get no mapping at all.  I just get the "raw" program # going out to both ports.  There's no mapping to "substitute" program #s at all. The .oxm files are showing when I expand the Input ports attached to my Output ports, but they seem to have no effect at all.  
 
I wouldn't mind sending you my .oxm files, but I think that's not the problem.  Is there any other switch I've ignored?  Is it really possible that Midiox would act so differently on two machines given that it seems to be running absolutely solidly?  

I encourage you to send the maps.  This should be working in the Beta.  Also, if you haven't noticed, in the Beta there's a new Routings view which allows you to set up and revise your connections and mappings without having to open "MIDI Devices".
 
Quote:
If I save the port mapping as a preset, then delete the output ports from the port mapping window, then try to reload them by loading the preset, the .oxm files I attached to the input ports doesn't appear when I expand the input port icon.  

This is in 6.5.1 right?  You may be seeing a bug in the shipping version, though I think it usually retains the maps properly. Try resaving the preset after  setting it up again, or switching back to the beta version.
 
[Later...]
It occurs to me that you may be trying to use 6.7 Beta created maps in 6.5.1.  This will not work -- the file format has changed out of necessity.  Since it is very unusual for people to be using 2 versions of MIDI-OX and because upgrades are free, we only strive to maintain backwards compatibility, not forwards compatibility, with regard to file formats.
« Last Edit: Jun 28th, 2003, 3:31pm by Jamie OConnell » IP Logged

--Jamie
Music is its own reward.

Pages: 1  Reply Reply Notify of replies Notify of replies Send Topic Send Topic Print Print

« Previous topic | Next topic »


MIDI-OX User Forum » Powered by YaBB 1 Gold - SP 1.3.1!
YaBB © 2000-2003. All Rights Reserved.