MIDI Continuous Controllers for the Yamaha FS1R.
|
Hex |
Decimal |
Destination |
Assigned |
Notes |
|
01h |
1 |
Mod Wheel |
Mod Wheel |
2 |
|
02h |
2 |
Breath Control |
Breath Control |
1, 2 |
|
04h |
4 |
Foot Control |
Foot Control |
1, 2 |
|
05h |
5 |
Portamento Time |
Portamento Time |
3, 4 |
|
06h |
6 |
Data Entry |
Data Entry |
6 |
|
07h |
7 |
Volume |
Volume |
3, 4 |
|
0Ah |
10 |
Pan |
Pan |
3, 4 |
|
0Bh |
11 |
Expression |
Expression |
4, 5 |
|
10h |
16 |
KN1 |
General Purpose 1 |
1, 2 |
|
11h |
17 |
KN2 |
General Purpose 2 |
1, 2 |
|
12h |
18 |
KN3 |
General Purpose 3 |
1, 2 |
|
13h |
19 |
KN4 |
General Purpose 4 |
1, 2 |
|
14h |
20 |
MC1 |
Undefined |
1, 2 |
|
15h |
21 |
MC2 |
Undefined |
1, 2 |
|
16h |
22 |
MC3 |
Undefined |
1, 2 |
|
17h |
23 |
MC4 |
Undefined |
1, 2 |
|
18h |
24 |
Formant |
Undefined |
1, 3, 4 |
|
19h |
25 |
FM |
Undefined |
1, 3, 4 |
|
40h |
64 |
Sustain |
Sustain |
on, off, 4 |
|
41h |
65 |
Portamento |
Portamento |
on, off, 3, 4 |
|
47h |
71 |
VCF Resonance |
Resonance |
3, 4 |
|
48h |
72 |
Release Time |
Release Time |
3, 4 |
|
49h |
73 |
Attack Time |
Attack Time |
3, 4 |
|
4Ah |
74 |
VCF Cutoff |
Cutoff |
3, 4 |
|
5Bh |
91 |
Reverb Send |
Effect 1 Depth |
3, 4 |
|
5Dh |
93 |
Variation Send |
Effect 3 Depth |
3, 4 |
|
62h |
98 |
NRPN LSB |
NRPN LSB |
6 |
|
63h |
99 |
NRPN MSB |
NRPN MSB |
6 |
|
64h |
100 |
RPN LSB |
RPN LSB |
6 |
|
65h |
101 |
RPN MSB |
RPN MSB |
6 |
1) Assignable from 001-031, 033-095. Default value shown.
2) Assignable to the 'Control Grid'.
3)
Will alter the 'Part' value, effectively editing the performance
(but not the voice).
*If used in 'Control Grid', this will always
depend on the destination.
4) Can be used without being assigned to 'Control Grid'.
5) Don't bother. Just use Volume instead, it does the same thing.
6) See the next section.
Now, the hard part. This section will be of little or no use if you don't own a pc1600, or similar.
In addition to the CC messages above, Yamaha has other things that can be addressed with the use of RPN and NRPN controllers. This is somewhat cumbersome, and I can't figure out why they didn't just use CC 102-119, or some other unused, undefined area. It would've kept things much easier.
These parameters are first 'pointed' to with a RPN or NRPN message, then edited with CC#6.
The table here shows the parameters, and the messages to 'point' to them.
|
RPN |
NRPN |
MSB |
LSB |
Parameter |
Range |
|
|
|
X |
01h |
08h |
LFO 1 Speed |
-64 +63 |
00h - 7Fh |
|
|
X |
01h |
09h |
LFO 1 Pmod |
-64 +63 |
00h - 7Fh |
|
|
X |
01h |
0Ah |
LFO 1 Delay |
-64 +63 |
00h - 7Fh |
|
|
X |
01h |
0Bh |
LFO 2 Speed |
-64 +63 |
00h - 7Fh |
|
|
X |
01h |
0Ch |
LFO 2 Flt Mod |
-64 +63 |
00h - 7Fh |
|
|
X |
01h |
20h |
Filter Freq |
-64 +63 |
00h - 7Fh |
|
|
X |
01h |
21h |
Filter Res |
-64 +63 |
00h - 7Fh |
|
|
X |
01h |
63h |
Attk Time |
-64 +63 |
00h - 7Fh |
|
|
X |
01h |
64h |
Decay Time |
-64 +63 |
00h - 7Fh |
|
|
X |
01h |
66h |
Release Time |
-64 +63 |
00h - 7Fh |
|
X |
|
00h |
00h |
PB Range |
-24 +24 |
00h - 18h |
|
X |
|
00h |
01h |
Detune |
-64 +63 |
00h - 7Fh |
|
X |
|
00h |
02h |
Note Shift |
-24 +24 |
28h - 58h |
|
|
X |
7Fh |
7Fh |
Null Set |
x |
x |
|
X |
|
7Fh |
7Fh |
Null Set |
x |
x |
The Null Set tells the FS1R to not do anything with CC#6, effectively turning it off, until another 'pointer' is received.
So far, this is theory, not practice. The next table shows how to enter a string into the pc1600 that will control the given parameter.
|
String |
Data |
Parameter |
Range |
Notes |
|
Bn 63 01 62 08 |
06 pr |
LFO 1 Speed |
0 - 127 |
7 |
|
Bn 63 01 62 09 |
06 pr |
LFO 1 Pmod |
0 - 127 |
7 |
|
Bn 63 01 62 0A |
06 pr |
LFO 1 Delay |
0 - 127 |
7 |
|
Bn 63 01 62 0B |
06 pr |
LFO 2 Speed |
0 - 127 |
7 |
|
Bn 63 01 62 0C |
06 pr |
LFO 2 Flt Mod |
0 - 127 |
7 |
|
Bn 63 01 62 20 |
06 pr |
Filter Freq |
0 - 127 |
8 |
|
Bn 63 01 62 21 |
06 pr |
Filter Res |
0 - 127 |
8 |
|
Bn 63 01 62 63 |
06 pr |
Attk Time |
0 - 127 |
8 |
|
Bn 63 01 62 64 |
06 pr |
Decay Time |
0 - 127 |
8 |
|
Bn 63 01 62 66 |
06 pr |
Release Time |
0 - 127 |
8 |
|
Bn 65 00 64 00 |
06 pr |
PB Range |
0 - 24 |
9 |
|
Bn 65 00 64 01 |
06 pr |
Detune |
0 - 127 |
|
|
Bn 65 00 64 02 |
06 pr |
Note Shift |
40 - 88 |
|
Program a fader of the pc1600 with the 'String' AND include the 'Data'. As always, 'n' is the channel number. Now, you can go crazy with the faders, and the FS1R will not have a problem.
Alternatively, you can program a fader to send a CC#6, and program a button to send what's in the 'String' column (leave out the '06 pr'). This will allow control of one parameter at a time with slider that's sending CC#6.
7) The fun stuff
8) Don't bother. You can do this without having to fight with the NRPNs.
9) Probably not useful for performance, but here it is anyway.