Bc2000 (for the BCF2000 & BCR2000) group photo

Yahoo Groups archive

Bc2000 (for the BCF2000 & BCR2000)

Index last updated: 2026-04-28 23:16 UTC

Thread

Slim Phatty 14-bit MIDI CC messages

Slim Phatty 14-bit MIDI CC messages

2011-01-31 by Alex

Hi all,

In a few days I will receive my Moog Slim Phatty buy reading the user's manual I have some doubts about 3 parameters that use 14-bit MIDI CC messages.

These parameters are:

· Cutoff CC# 19 (MSB) CC# 51 (LSB)
· Mod Wheel CC# 01 (MSB) CC# 33 (LSB)
· Arppegiator Clock Rate CC# 04 (coarse) CC# 36 (fine)

The questions are:

1. The manual says the range for these parameters is 0-127. Why don't it say 0-16384?

2. If I want to control one of these parameters with my BCR2000 in only one encoder, can I achieve it assigning a NRPN in Absolute (14 bits) mode, is that simple? e.g. NRPN# 19 for Cutoff?

Thank you so much in advance.


MORE INFO TAKEN FROM THE MANUAL

1. The Slim Phatty sends and receives 7-bit MIDI CC messages for all parameters except for the Modulation Wheel and Filter Cutoff, which receive high-resolution, 14-bit MIDI CC messages. This allows for finer control and smoother changes for these parameters. For these two parameters, the MSB indicates the ‘regular’ CC number, and the LSB indicates the high-resolution ‘fine’ control value. If you are only sending 7-bit MIDI CC messages to the Slim Phatty, use the MSB channel number by itself for these two parameters.

2. The Arpeggiator Clock Rate is set by two MIDI CC messages that correspond to coarse and fine clock rates. The coarse rate is set by CC#04 in increments of 3 BPM over a range of 21-320 BPM, and the fine rate is set by CC#36 in increments of 0.1 BPM. To set the clock rate, first set the coarse rate by dividing the target BPM by three; the integer result (the whole number) will be the CC#04 value. Then set the fine clock rate by subtracting the coarse BPM value from the target value and multiplying the result by 10. This will be the CC#36 value.

For example, to set the Arpeggiator Clock Rate to 121.7 BPM:

Determine the MIDI CC coarse value by dividing the target BPM by 3:

121.7/3 = 40.566

The CC#04 value is ‘40’ (=120 BPM)

Determine the MIDI CC fine value by subtracting the coarse BPM value from the target value:

121.7 - 120 = 1.7

Then multiply the result by 10:

1.7 * 10 = 17

The CC#36 value is ‘17’

For CC#04 = 40 and CC#36 = 17, the Slim Phatty’s display will show ‘121.7 BPM’.

Re: [bc2000] Slim Phatty 14-bit MIDI CC messages

2011-01-31 by Christopher Arndt

Alex schrieb:
> I have some doubts about 3 parameters that use 14-bit MIDI CC
> messages.

> 1. The manual says the range for these parameters is 0-127. Why don't it
> say 0-16384?

Probably because the range for each single CC is only 0-127. Both the
values from the MSB and LSB controllers combined make up the full range.

> 2. If I want to control one of these parameters with my BCR2000 in only
> one encoder, can I achieve it assigning a NRPN in Absolute (14 bits)
> mode, is that simple? e.g. NRPN# 19 for Cutoff?

No, you use CC mode, set the CC number to the one of the MSB controller
and set controller mode (encoder 6) to "Absolute 14-Bit". The BCR should
then automatically know it needs to send the MSB and LSB controller
commands together for each value change.

NRPNs are a totally different beast.


Chris

Re: Slim Phatty 14-bit MIDI CC messages

2011-01-31 by Royce

Hi Alex

--- In bc2000@yahoogroups.com, Christopher Arndt <chris.arndt@...> wrote:
>
> Alex schrieb:
> > I have some doubts about 3 parameters that use 14-bit MIDI CC
> > messages.
> 
> > 1. The manual says the range for these parameters is 0-127. Why don't it
> > say 0-16384?
> 
> Probably because the range for each single CC is only 0-127. Both the
> values from the MSB and LSB controllers combined make up the full range.
> 
> > 2. If I want to control one of these parameters with my BCR2000 in only
> > one encoder, can I achieve it assigning a NRPN in Absolute (14 bits)
> > mode, is that simple? e.g. NRPN# 19 for Cutoff?
> 
> No, you use CC mode, set the CC number to the one of the MSB controller
> and set controller mode (encoder 6) to "Absolute 14-Bit". The BCR should
> then automatically know it needs to send the MSB and LSB controller
> commands together for each value change.


I'm afraid this is not quite true.
If you set a range of 0 to $3FFF,  minmax of 14 bit Midi values, and the CC was something like 7 volume as there is a Fine volume defined in in the Midi spec 39 so you would get 2 Midi messages

$B0 07 00
$B0 39 00
$B0 07 00
$B0 39 01
$B0 07 00
$B0 39 02  etc

but if you use CC 19 there is no defined course or fine complement CC so you get

$B0 19 00
$B0 19 01
$B0 19 02
..
$B0 19 126
$B0 19 127
$B0 19 00
..
$B0 19 127
$B0 19 01
$B0 19 02
.. etc

It just loops around

What you need to do is to use the advanced settings and program 2 Midi messages

.tx $B0 19 val7.13   ; MSB
.tx $B0 51 val0.6    ; LSB

I don't know if the order is important to the Phatty, shouldn't be. 
If it is you can swap the lines around.
Anyway the BC can do what you need it to do.


All the best

Royce

Re: [bc2000] Re: Slim Phatty 14-bit MIDI CC messages

2011-01-31 by Alex

Thanks a lot Royce!

I will try it as soon as I get the Synth.

Best,

Alex
Show quoted textHide quoted text
2011/1/31 Royce <rpcfender@...>



Hi Alex



--- In bc2000@yahoogroups.com, Christopher Arndt wrote:
>
> Alex schrieb:
> > I have some doubts about 3 parameters that use 14-bit MIDI CC
> > messages.
>
> > 1. The manual says the range for these parameters is 0-127. Why don't it
> > say 0-16384?
>
> Probably because the range for each single CC is only 0-127. Both the
> values from the MSB and LSB controllers combined make up the full range.
>
> > 2. If I want to control one of these parameters with my BCR2000 in only
> > one encoder, can I achieve it assigning a NRPN in Absolute (14 bits)
>; > mode, is that simple? e.g. NRPN# 19 for Cutoff?
>
> No, you use CC mode, set the CC number to the one of the MSB controller
> and set controller mode (encoder 6) to "Absolute 14-Bit". The BCR should
> then automatically know it needs to send the MSB and LSB controller
> commands together for each value change.

I'm afraid this is not quite true.
If you set a range of 0 to $3FFF, minmax of 14 bit Midi values, and the CC was something like 7 volume as there is a Fine volume defined in in the Midi spec 39 so you would get 2 Midi messages

$B0 07 00
$B0 39 00
$B0 07 00
$B0 39 01
$B0 07 00
$B0 39 02 etc

but if you use CC 19 there is no defined course or fine complement CC so you get

$B0 19 00
$B0 19 01
$B0 19 02
..
$B0 19 126
$B0 19 127
$B0 19 00
..
$B0 19 127
$B0 19 01
$B0 19 02
.. etc

It just loops around

What you need to do is to use the advanced settings and program 2 Midi messages

.tx $B0 19 val7.13 ; MSB
.tx $B0 51 val0.6 ; LSB

I don't know if the order is important to the Phatty, shouldn't be.
If it is you can swap the lines around.
Anyway the BC can do what you need it to do.

All the best

Royce




--
Alex

Re: Slim Phatty 14-bit MIDI CC messages

2011-02-01 by Mark

--- In bc2000@yahoogroups.com, "Royce" <rpcfender@...> wrote:
> I'm afraid this is not quite true.
> If you set a range of 0 to $3FFF, minmax of 14 bit Midi values, and the 
> CC was something like 7 volume as there is a Fine volume defined in in 
> the Midi spec 39 so you would get 2 Midi messages
> 
> $B0 07 00
> $B0 39 00
> $B0 07 00
> $B0 39 01
> $B0 07 00
> $B0 39 02 etc
> 
> but if you use CC 19 there is no defined course or fine complement CC so 
> you get
> 
> $B0 19 00
> $B0 19 01
> $B0 19 02
> ..
> $B0 19 126
> $B0 19 127
> $B0 19 00
> ..
> $B0 19 127
> $B0 19 01
> $B0 19 02
> .. etc
> 
> It just loops around

I'm afraid this is not quite true.
For any controller m in the MSB range [0, 31], the BCR outputs both the MSB CC message AND the corresponding LSB CC message (with m+32).
(See "BC MIDI Implementation.pdf", section 16.3.)

So for CC 19 you don't need ".tx" definitions:
you can simply use a "standard" definition with ".easypar", e.g.

$rev R1
$encoder 6
  .easypar CC 1 19 0 16383 absolute/14
  .showvalue on
  .mode 1dot
  .resolution 1000
  .default 0
$end

Or am I missing something?

Mark.

Re: [bc2000] Re: Slim Phatty 14-bit MIDI CC messages

2011-02-01 by Alex

Hi,

So, in the BC Manager I must add these 2 lines in the Custom output tab, right?

$B0 19 val7.13 ; MSB
$B0 51 val0.6 ; LSB

Show quoted textHide quoted text
2011/2/1 Mark <markwinvdb@...>
--- In bc2000@yahoogroups.com, "Royce" wrote:
> I'm afraid this is not quite true.
> If you set a range of 0 to $3FFF, minmax of 14 bit Midi values, and the
> CC was something like 7 volume as there is a Fine volume defined in in
> the Midi spec 39 so you would get 2 Midi messages
>
> $B0 07 00
> $B0 39 00
> $B0 07 00
> $B0 39 01
> $B0 07 00
> $B0 39 02 etc
>
> but if you use CC 19 there is no defined course or fine complement CC so
> you get
>
> $B0 19 00
> $B0 19 01
> $B0 19 02
> ..
> $B0 19 126
> $B0 19 127
> $B0 19 00
> ..
> $B0 19 127
> $B0 19 01
> $B0 19 02
> .. etc
>
> It just loops around

I'm afraid this is not quite true.
For any controller m in the MSB range [0, 31], the BCR outputs both the MSB CC message AND the corresponding LSB CC message (with m+32).
(See "BC MIDI Implementation.pdf", section 16.3.)

So for CC 19 you don't need ".tx" definitions:
you can simply use a "standard" definition with ".easypar", e.g.

$rev R1
$encoder 6
.easypar CC 1 19 0 16383 absolute/14
.showvalue on
.mode 1dot
.resolution 1000
.default 0
$end

Or am I missing something?

Mark.




--
Alex

Re: Slim Phatty 14-bit MIDI CC messages

2011-02-01 by Mark

--- In bc2000@yahoogroups.com, Alex <brufordrules@...> wrote:
> So, in the BC Manager I must add these 2 lines in the Custom output tab,
> right?
> 
> $B0 19 val7.13 ; MSB
> $B0 51 val0.6 ; LSB

No, the "Custom output" tab would produce a script with one or more ".tx" messages, which (as I've argued) you don't need in this case.

Instead, go to the "Standard output" tab, to generate a script with ".easypar":

Type = Control Change
Channel = 1 (or whatever you like)
Controller = 19
Value 1 = 0
Value 2 = 16383
Mode = Absolute (14 bits)

And on the "General" tab:
Show value: ON
Default value: 0
Resolutions: Slowest = 1000 (or whatever); Speed levels = 1
LEDs: 1 dot (or whatever)

Alternatively:
From the B-Controls window, open View -> BCL Editor and paste the following lines between the predefined "$rev ..." and "$end" lines:

$encoder 6
.easypar CC 1 19 0 16383 absolute/14
.showvalue on
.mode 1dot
.resolution 1000
.default 0

When you press the green arrow, the script is "executed", i.e. entered into encoder 6 of the temporary preset in BC Manager, with exactly the same result as the above "manual" method: you'll see the definition appear in the encoder list window.

Hope this helps,
Mark.

Re: [bc2000] Re: Slim Phatty 14-bit MIDI CC messages

2011-02-01 by Alex

Ok. Thank you so much for your detailed explanation.

Best,

Alex
Show quoted textHide quoted text
2011/2/1 Mark <markwinvdb@...>
--- In bc2000@yahoogroups.com, Alex wrote:
> So, in the BC Manager I must add these 2 lines in the Custom output tab,
> right?
>
> $B0 19 val7.13 ; MSB
> $B0 51 val0.6 ; LSB

No, the "Custom output" tab would produce a script with one or more ".tx" messages, which (as I've argued) you don';t need in this case.

Instead, go to the "Standard output" tab, to generate a script with ".easypar":

Type = Control Change
Channel = 1 (or whatever you like)
Controller = 19
Value 1 = 0
Value 2 = 16383
Mode = Absolute (14 bits)

And on the "General" tab:
Show value: ON
Default value: 0
Resolutions: Slowest = 1000 (or whatever); Speed levels = 1
LEDs: 1 dot (or whatever)

Alternatively:
From the B-Controls window, open View -> BCL Editor and paste the following lines between the predefined "$rev ..." and "$end" lines:


$encoder 6
.easypar CC 1 19 0 16383 absolute/14
.showvalue on
.mode 1dot
.resolution 1000
.default 0

When you press the green arrow, the script is "executed", i.e. entered into encoder 6 of the temporary preset in BC Manager, with exactly the same result as the above "manual" method: you'll see the definition appear in the encoder list window.

Hope this helps,
Mark.




--
Alex

Re: Slim Phatty 14-bit MIDI CC messages

2011-02-01 by Royce

Mark

You are quite right.
I originally tested it with .easypar CC 1 19 0 16383 absolute/14 and only got one message, but now when I test it again I get the two.
I must have left something out in my first try.
Thanks for putting me straight.

All the best

Royce

--- In bc2000@yahoogroups.com, "Mark" <markwinvdb@...> wrote:
Show quoted textHide quoted text
>
> --- In bc2000@yahoogroups.com, "Royce" <rpcfender@> wrote:
> > I'm afraid this is not quite true.
> > If you set a range of 0 to $3FFF, minmax of 14 bit Midi values, and the 
> > CC was something like 7 volume as there is a Fine volume defined in in 
> > the Midi spec 39 so you would get 2 Midi messages
> > 
> > $B0 07 00
> > $B0 39 00
> > $B0 07 00
> > $B0 39 01
> > $B0 07 00
> > $B0 39 02 etc
> > 
> > but if you use CC 19 there is no defined course or fine complement CC so 
> > you get
> > 
> > $B0 19 00
> > $B0 19 01
> > $B0 19 02
> > ..
> > $B0 19 126
> > $B0 19 127
> > $B0 19 00
> > ..
> > $B0 19 127
> > $B0 19 01
> > $B0 19 02
> > .. etc
> > 
> > It just loops around
> 
> I'm afraid this is not quite true.
> For any controller m in the MSB range [0, 31], the BCR outputs both the MSB CC message AND the corresponding LSB CC message (with m+32).
> (See "BC MIDI Implementation.pdf", section 16.3.)
> 
> So for CC 19 you don't need ".tx" definitions:
> you can simply use a "standard" definition with ".easypar", e.g.
> 
> $rev R1
> $encoder 6
>   .easypar CC 1 19 0 16383 absolute/14
>   .showvalue on
>   .mode 1dot
>   .resolution 1000
>   .default 0
> $end
> 
> Or am I missing something?
> 
> Mark.
>

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.