MIDI-OX User Forum (http://www.midiox.com/cgi-bin/yabb/YaBB.pl)
MIDI-OX >> MIDI-OX Beta Bugs >> CC to NRPN mapping in 6.4.6 Beta 4
(Message started by: good2c on Jul 9th, 2002, 5:01pm)

Title: CC to NRPN mapping in 6.4.6 Beta 4
Post by good2c on Jul 9th, 2002, 5:01pm
The problems I’m having with Data Mapping in 6.4.6 Beta 4 *:

1) I’m mapping a Continuous Controller to NRPN like this:

* Ctrl 40 40 * * | * NRPN 99 99 1 1
* Ctrl 40 40 * * | * NRPN 98 98 100 100
* Ctrl 40 40 * * | * Ctrl 6 6 * *

but the map doesn’t work.

I take a look at the DATA2 column in the Output monitor and I can see that the NRPN MSB value is 0 instead of 1, the NRPN LSB value is 99 instead of 100 and the Data Entry MSB value is always 0

2) The CC to NRPN map doesn’t have any effect when it is simply attached to an input port in the MIDI Devices dialog (when it is not loaded in the Translation Map window). Velocity maps do work this way, but the CC to NRPN map doesn’t... strange

* screen shots available on request ;-)

Title: Re: CC to NRPN mapping in 6.4.6 Beta 4
Post by Jamie OConnell on Jul 10th, 2002, 2:59am
I'm trying to get a grip on what you're saying, but it sounds like it is working as expected.

NRPN number in the mapping dialog MIN and MAX fields ranges from 0 to 16383.  NRPN value MIN and MAX also range from 0 to 16383.  The NRPN number ends up getting converted into controllers 99 and 88.  NRPN value is converted to Data Entry controllers 6 and 38.  The NRPN type in the MAP is a way to express all 4 controllers in a single line of MAP.  It was an answer to user requests.

So a MAP like "* Ctrl 40 40 * * | * NRPN 99 99 1 1", given "176 40 64" (dec) would result in:
 
  176    99     0        ; cc  99 NRPN MSB
  176    98    99       ; cc  98 NRPN LSB
  176     6     0        ; cc  6   Data Entry MSB

If you are trying (as I suspect) to setup a mapping of cc 40 into NRPN 228 (1 100 dec - use the NRPN calculator), you can do that straightforwardly:

 * Ctrl 40 40  0  127 | * NRPN   228 228  0 16384

Note that you need to specify that the cc 40 value (0 - 127) should be mapped into the NRPN value of 0 - 16383.  You need to do this even if you're only sending the CC 6 MSB.

You can always map into the controllers directly if the NRPN is too confusing:

* Ctrl 40 40  *  * Y| * Ctrl   99  99     1     1
* Ctrl 40 40  *  * Y| * Ctrl   98  98   100   100
* Ctrl 40 40  *  *   | * Ctrl    6    6     *     *





Title: Re: CC to NRPN mapping in 6.4.6 Beta 4
Post by good2c on Jul 11th, 2002, 7:21pm
1) This is clear now. Thanks!

2) I have still got problems when the map is attached to an input port in Port Mapping. The same map works fine when it is REMOVED from Port Mapping and loaded in the Translation Map window. The map looks like this:

* NRPN 228 228 0 16383 v | * Ctrl 40 40 0 127
* NRPN 137 137 0 16383 v | * Ctrl 41 41 0 127
* NRPN 136 136 0 16383 v | * Ctrl 42 42 0 127
* NRPN 138 138 0 16383 v | * Ctrl 43 43 0 127

The example is reversed, because this is how I use it now (I discovered that although my [cc-NRPN].oxm map works when it is loaded in the Translation Map window, XG-Gold’s GUI doesn’t reflect the changes unless I map CC to NRPN XG-parameters in XG-Gold’s internal mapper). I’m using these maps to display those XG parameters that can’t be controlled with single controllers (but can be controlled with NRPN), as single controllers in the Status monitor of MIDI-OX, and to control the same parameters with single controllers from the Status monitor with the (milestone) pop-up slider and the computer keyboard.

My test Port Mapping for this purpose looks like this:

- Synthesizer
     - Editor output
           + Channels
           + System
              [NRPN-cc].oxm OR REMOVED and loaded in the Translation Map window
     - MIDI-OX Events
           + Channels
           + System
Editor input (cc is translated to NRPN MSB, LSB & Ctrl 6 in the editors internal mapper)
     - Keyboard output
           + Channels
           + System
- MIDI-OX Events
           + Channels
           + System

A) When the MAIN MAP is switched ON and [NRPN-cc].oxm is REMOVED, everything is OK. I send the default value of Amplitude Decay Time from the editor – the INPUT monitor displays:

EDI --    176    99     1    1  ---  CC: NRPN MSB      
EDI --    176    98   100    1  ---  CC: NRPN LSB      
EDI --    176     6    64    1  ---  CC: Data Entry MSB

and the OUTPUT monitor displays:

EDI SYN   176    40    64    1  ---  Control Change    
EDI SYN   176    99     1    1  ---  CC: NRPN MSB      
EDI SYN   176    98   100    1  ---  CC: NRPN LSB      
EDI SYN   176     6    64    1  ---  CC: Data Entry MSB

B) When I attach the same version of [NRPN-cc].oxm in Port Mapping and repeat the previous example, the INPUT monitor displays:

EDI --    176    99     1    1  ---  CC: NRPN MSB      
EDI --    176    98   100    1  ---  CC: NRPN LSB      
EDI --    176     6    64    1  ---  CC: Data Entry MSB

but the OUTPUT monitor displays:

(EDI SYN   176    40    64    1  ---  Control Change  – only when the MAIN MAP is also switched ON)
EDI SYN   176     6    64    1  ---  CC: Data Entry MSB
EDI SYN   176     6    64    1  ---  CC: Data Entry MSB

Why?

[Later] Something else that happens in BOTH cases (when the setup matches either example A or B).

Even such data that has not been mapped doesn’t reach the output. I have sent out the default value for Pitch Bend’s Pitch Control from the editor. The INPUT monitor displays:

EDI -- 176 101 0 1 --- CC: RPN MSB
EDI -- 176 100 0 1 --- CC: RPN LSB
EDI -- 176 6 2 1 --- CC: Data Entry MSB

but the OUTPUT monitor displays:

EDI SYN 176 6 2 1 --- CC: Data Entry MSB

NOTE: All the data from the Input passes to the Output ONLY when my NRPN to cc MAP FILE IS REMOVED from Port Mapping AND the NRPN to cc MAIN MAP is also turned OFF.


Title: Re: CC to NRPN mapping in 6.4.6 Beta 4
Post by Jamie OConnell on Jul 12th, 2002, 5:58pm
Can you email me your .oxm map?


Quote:
[Later] Something else that happens in BOTH cases (when the setup matches either example A or B).

Even such data that has not been mapped doesn’t reach the output. I have sent out the default value for Pitch Bend’s Pitch Control from the editor. The INPUT monitor displays:  

EDI -- 176 101 0 1 --- CC: RPN MSB  
EDI -- 176 100 0 1 --- CC: RPN LSB  
EDI -- 176 6 2 1 --- CC: Data Entry MSB  

but the OUTPUT monitor displays:  

EDI SYN 176 6 2 1 --- CC: Data Entry MSB  

NOTE: All the data from the Input passes to the Output ONLY when my NRPN to cc MAP FILE IS REMOVED from Port Mapping AND the NRPN to cc MAIN MAP is also turned OFF.


This may be a bug...  I can say that when we are mapping NRPN's to something, we need to collect at least a NRPN MSB, NRPN LSB and CC:6 before any data is output.  If you have "[x] Wait for Complete NRPN" checked, then it also waits for CC:38 before outputing anything.  It shouldn't be doing this for RPN's though...

As soon as I get your map I'll investigate further.
--------------------------------------------------
[Much Later...]

Yes!  Thanks very much for reporting this.  There were several bugs working together to cause the behavior you described.  It will be fixed in the next beta (Beta 6).  




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