parameter #1: channel (0-15) parameter #2: NRPN MSB indicator (controller #99 data) parameter #3: NRPN LSB indicator (controller #98 data) parameter #4: NRPN MSB data (controller #6 data) [parameter #5: NRPN LSB data (controller #38 data)] or: parameter #1: channel (0-15) parameter #2: NRPN MSB indicator (controller #99 data) parameter #3: NRPN LSB indicator (controller #98 data) parameter #4: NRPN Floating point in range (-1..1) (ccont#6 and #38 data)
NRPN (Non-registered parameter number) -- General MIDI and Extended MIDI mess. It becomes the receiving synthesizer's responsibility to determine the meaning of continuous controller (ccont) #6 from data sent with cconts #98,99 (for NRPNS) and cconts #100,101 (for RPNS). NRPN parameters are not reset when the ccont#121 is sent to reset controllers.
NRPN's are "non-standard" meaning that any synthesizer could do whatever they want with a given NRPN; However, the GS and XG specifications are given in the table further below.
The data for NRPNs are transfered to synthesizer with data slider ccont #6(MSB) and ccont #38(LSB). Also data increment ccont#96 (data increment) and ccont#97 (data decrement) are in relation to the RPN or NRPN in effect. Increment and Decrement are not recommend to use with RPN's because of confusion in the MIDI industry over which 7-bit data (#6 or #38) to increment.
Once you have selected an NRPN on a given channel, the channel will apply subsequent Data Entry to the selected parameter. After making the necessary settings you should set NRPN to NULL to reduce the risk of operational errors. a NUL RPN will disable the previous values of either RPN or NRPN data.
The following NRPN values are supported in Yamaha's XG specification:
CCont #98 = LSB of NRPN parameter ID
CCont #99 = MSB of NRPN parameter ID
NRPN
MSB LSB Data Range
#99 #98 Parameter (ccont#6=MSB, ccont#38=LSB)
=== ===== ====================== ======================
1 8 Vibrato Rate -64.. 0..+63 logical range or (-50..+50)
0..64..127 MIDI data range ( 14..114)
1 9 Vibrato Depth same ranges as above
1 10 Vibrato Delay same ranges as above
1 32 Filter Cutoff Freq. same ranges as above
1 33 Filter Resonance same ranges as above
1 99 EG Attack Time same ranges as above
1 100 EG Decay Time same ranges as above
1 102 EG Release Time same ranges as above
20 xx Drum Filter Cutoff Freq same ranges as above
xx = drum MIDI key number
21 xx Drum Filter Resonance same ranges as above
xx = drum MIDI key number
22 xx Drum EG Attack Rage same ranges as above
xx = drum MIDI key number
23 xx Drum EG Decay Rate same ranges as above
xx = drum MIDI key number
24 xx Drum Pitch Coarse same ranges as above
xx = drum MIDI key number
25 xx Drum Pitch Fine same ranges as above
xx = drum MIDI key number
26 xx Drum Level 0..64..127 MIDI data range
xx = drum MIDI key number
28 xx Drum Pan Random, Left..Center..Right
0.......1.....64......127 MIDI data range
xx = drum MIDI key number
29 xx Drum Reverb Send Level 0..64..127 MIDI data range
xx = drum MIDI key number
30 xx Drum Chorus Send Level 0..64..127 MIDI data range
xx = drum MIDI key number
31 xx Drum Variation Send Level 0..64..127 MIDI data range
xx = drum MIDI key number
127 127 Null RPN (disables RPN/NRPN parameters from being altered).
RPN -- sends a registered parameter number where:
parameter #1: channel (0-15) parameter #2: RPN MSB indicator (controller #101 data) parameter #3: RPN LSB indicator (controller #100 data) parameter #4: RPN MSB data (controller #6 data) [parameter #5: RPN LSB data (controller #38 data)] or: parameter #1: channel (0-15) parameter #2: NRPN MSB indicator (controller #99 data) parameter #3: NRPN LSB indicator (controller #98 data) parameter #4: NRPN Floating point in range (-1..1) (ccont#6 and #38 data)
RPN (registered parameter number) -- General MIDI and Extended MIDI mess. It becomes the receiving synthesizer's responsibility to determine the meaning of continuous controller (ccont) #6 from data sent with cconts #100,101 (for RPNS) and cconts #98,99 (for NRPNS).
The data for RPNs are transfered to synthesizer with data slider ccont #6(MSB) and ccont #38(LSB). Also data increment ccont#96 (data increment) and ccont#97 (data decrement) are in relation to the RPN or NRPN in effect. Increment and Decrement are not recommend to use with RPN's because of confusion in the MIDI industry over which 7-bit data (#6 or #38) to increment.
Once you have selected an RPN on a given channel, the channel will apply subsequent Data Entry to the selected parameter. After making the necessary settings you should set RPN's to NULL to reduce the risk of operational errors. a NULL RPN will disable the previous values of either RPN or NRPN data.
The following RPN values are registered:
CCont #100 = LSB of RPN parameter ID
CCont #101 = MSB of RPN parameter ID
RPN Data Range
MSB LSB Parameter (ccont#6=MSB, ccont#38=LSB)
=== ===== ====================== ======================
0 0 Pitchbend Sensitivity 0-127 (default 2) (LSB ignored)
(The number of +/- half steps in
pitch wheel range).
0 1 Fine Tune -64.. 0..+63 logical range
0..64..127 MIDI data range
0 2 Coarse Tune same range as above.
0 3 Change Tuning Program 0..127
0 4 Change Tuning Bank 0..127