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

1 encoder = 2 parameters in this manner

1 encoder = 2 parameters in this manner

2010-12-11 by Alex

Hi everyone,

First of all, sorry for my English. I will try to expose what I want to do the best I can.

I got a DSI Mopho synthesizer and the oscillators frequencies are controlled by 2 parameters:

1 Oscillator Frequency: 0 - 120 in semitones (10 octave range). CC# 20 and/or NRPN# 0 (for oscillator 1)
2 Oscillator Fine Tune: 0- 100. 0 = -50 cents, 50 = 0 (centered), 100 = +50 cents. CC# 21 and/or NRPN# 1 (for oscillator 1)

I would like one of the BC's encoders would control the oscillator 1 for making smooth transitions without jumping in semitones. So the behavior would be like this:

When I move the encoder clockwise the Fine Tune will be increased and when the value 100 is reached, Fine Tune will be reset to 0 and Oscillator Frequency will be increased by 1 and the whole process will start over while I keep moving the encoder.

The opposite behavior if I move the encoder counterclockwise.

Can it be done with BC Manager?

Thank you so much in advance to everyone.

Alex

Re: 1 encoder = 2 parameters in this manner

2010-12-11 by Mark

--- In bc2000@yahoogroups.com, Alex <alex655321@...> wrote:
> I got a DSI Mopho synthesizer and the oscillators frequencies are controlled
> by 2 parameters:
> 
> 1 *Oscillator Frequency*: 0 - 120 in semitones (10 octave range). CC# 20
> and/or NRPN# 0 (for oscillator 1)
> 2 *Oscillator Fine Tune*: 0- 100. 0 = -50 cents, 50 = 0 (centered), 100 =
> +50 cents. CC# 21 and/or NRPN# 1 (for oscillator 1)
> 
> I would like one of the BC's encoders would control the oscillator 1 for
> making smooth transitions without jumping in semitones. So the behavior
> would be like this:
> 
> When I move the encoder clockwise the Fine Tune will be increased and when
> the value 100 is reached, Fine Tune will be reset to 0 and Oscillator
> Frequency will be increased by 1 and the whole process will start over while
> I keep moving the encoder.
> 
> The opposite behavior if I move the encoder counterclockwise.
> 
> Can it be done with BC Manager?

Try this:

Via the encoder dialog's "Custom output" tab, you define 2 MIDI messages:

$B0 $14 val7.13
$B0 $15 val0.6

This sends the 7 most significant bits of the encoder's value as the value for CC#20, and the 7 least significant bits as the value for CC#21.
($B0 here of course means I'm assuming MIDI channel 1.)

You should set Value 1 to 0 and Value 2 to 15460 (i.e. 120 x 128 + 100).

On the General tab:
Show value: ON
Resolutions: a value that suits your needs: 1000, even 10000?
LEDs: (e.g.) 1 dot

However, the above setup is not EXACTLY what you want:
The problem is that the BC can't be set up to exactly split an encoder's value into two "sections" with a modulus of 100 (which is what you'd want), only bitwise, with a modulus of 128 as done above:
It's as if your Fine Tune parameter runs from 0 to 127 each time instead of to 100. Presumably (indeed: hopefully!) your synth won't react when it receives a Fine Tune higher than 100. So you'll get "dead areas" while turning the encoder knob; I'm not sure how well it'll work.

Hope this helps,
Mark.

Re: [bc2000] Re: 1 encoder = 2 parameters in this manner

2010-12-11 by Alex

Wow Mark, thank you so much for your fast response. I will try it as soon as I can and will tell you the results.

Cheers!
Show quoted textHide quoted text
2010/12/11 Mark <markwinvdb@...>
--- In bc2000@yahoogroups.com, Alex ; wrote:
> I got a DSI Mopho synthesizer and the oscillators frequencies are controlled
> by 2 parameters:
>
> 1 *Oscillator Frequency*: 0 - 120 in semitones (10 octave range). CC# 20
> and/or NRPN# 0 (for oscillator 1)
> 2 *Oscillator Fine Tune*: 0- 100. 0 = -50 cents, 50 = 0 (centered), 100 =
> +50 cents. CC# 21 and/or NRPN# 1 (for oscillator 1)
>
> I would like one of the BC's encoders would control the oscillator 1 for
> making smooth transitions without jumping in semitones. So the behavior
> would be like this:
>
> When I move the encoder clockwise the Fine Tune will be increased and when
> the value 100 is reached, Fine Tune will be reset to 0 and Oscillator
> Frequency will be increased by 1 and the whole process will start over while
> I keep moving the encoder.
>
> The opposite behavior if I move the encoder counterclockwise.
>
> Can it be done with BC Manager?

Try this:

Via the encoder dialog's "Custom output" tab, you define 2 MIDI messages:

$B0 $14 val7.13
$B0 $15 val0.6

This sends the 7 most significant bits of the encoder's value as the value for CC#20, and the 7 least significant bits as the value for CC#21.
($B0 here of course means I'm assuming MIDI channel 1.)

You should set Value 1 to 0 and Value 2 to 15460 (i.e. 120 x 128 + 100).

On the General tab:
Show value: ON
Resolutions: a value that suits your needs: 1000, even 10000?
LEDs: (e.g.) 1 dot

However, the above setup is not EXACTLY what you want:
The problem is that the BC can't be set up to exactly split an encoder's value into two "sections" with a modulus of 100 (which is what you'd want), only bitwise, with a modulus of 128 as done above:
It's as if your Fine Tune parameter runs from 0 to 127 each time instead of to 100. Presumably (indeed: hopefully!) your synth won't react when it receives a Fine Tune higher than 100. So you'll get "dead areas" while turning the encoder knob; I'm not sure how well it'll work.

Hope this helps,
Mark.




--
Alex

Re: [bc2000] Re: 1 encoder = 2 parameters in this manner

2010-12-12 by Alex


Hi Mark,

I couldn't try your solution yet, but I noticed I made a mistake during the explanation. This way would be right:

Clockwise behavior: Fine Tune goes from 50 to 100. When 100 is reached Freq Osc will increase by 1 and Fine Tune will reset to 50 (not to 0 as I said before.) The process will start over again.

Counterclockwise behavior: Fine Tune goes from 50 to 0. When 0 is reached Freq Osc will decrease by 1 and Fine Tune will reset to 50. The process will start over again.

I don't know if your solution is still the same or I must change something.

Thanks again for your help. I hope to try it soon.
Show quoted textHide quoted text
2010/12/11 Mark <markwinvdb@...>
--- In bc2000@yahoogroups.com, Alex wrote:
> I got a DSI Mopho synthesizer and the oscillators frequencies are controlled
> by 2 parameters:
>
> 1 *Oscillator Frequency*: 0 - 120 in semitones (10 octave range). CC# 20
> and/or NRPN# 0 (for oscillator 1)
> 2 *Oscillator Fine Tune*: 0- 100. 0 = -50 cents, 50 = 0 (centered), 100 =
> +50 cents. CC# 21 and/or NRPN# 1 (for oscillator 1)
>
> I would like one of the BC's encoders would control the oscillator 1 for
> making smooth transitions without jumping in semitones. So the behavior
> would be like this:
>;
> When I move the encoder clockwise the Fine Tune will be increased and when
> the value 100 is reached, Fine Tune will be reset to 0 and Oscillator
> Frequency will be increased by 1 and the whole process will start over while
> I keep moving the encoder.
>
> The opposite behavior if I move the encoder counterclockwise.
>
> Can it be done with BC Manager?

Try this:

Via the encoder dialog's "Custom output" tab, you define 2 MIDI messages:

$B0 $14 val7.13
$B0 $15 val0.6

This sends the 7 most significant bits of the encoder's value as the value for CC#20, and the 7 least significant bits as the value for CC#21.
($B0 here of course means I'm assuming MIDI channel 1.)

You should set Value 1 to 0 and Value 2 to 15460 (i.e. 120 x 128 + 100).

On the General tab:
Show value: ON
Resolutions: a value that suits your needs: 1000, even 10000?
LEDs: (e.g.) 1 dot

However, the above setup is not EXACTLY what you want:
The problem is that the BC can't be set up to exactly split an encoder's value into two "sections" with a modulus of 100 (which is what you'd want), only bitwise, with a modulus of 128 as done above:
It's as if your Fine Tune parameter runs from 0 to 127 each time instead of to 100. Presumably (indeed: hopefully!) your synth won't react when it receives a Fine Tune higher than 100. So you'll get "dead areas" while turning the encoder knob; I'm not sure how well it'll work.

Hope this helps,
Mark.




--
Alex

Re: [bc2000] Re: 1 encoder = 2 parameters in this manner

2010-12-12 by Alex

Hi Mark,

It worked! You are a genius!

I will continue this thread by email for not boring the rest of people with my thoughts about this particular thing.

Cheers!
Show quoted textHide quoted text
2010/12/11 Mark <markwinvdb@hetnet.nl>
--- In bc2000@yahoogroups.com, Alex wrote:
> I got a DSI Mopho synthesizer and the oscillators frequencies are controlled
> by 2 parameters:
>
> 1 *Oscillator Frequency*: 0 - 120 in semitones (10 octave range). CC# 20
> and/or NRPN# 0 (for oscillator 1)
> 2 *Oscillator Fine Tune*: 0- 100. 0 = -50 cents, 50 = 0 (centered), 100 =
> +50 cents. CC# 21 and/or NRPN# 1 (for oscillator 1)
>
> I would like one of the BC's encoders would control the oscillator 1 for
> making smooth transitions without jumping in semitones. So the behavior
> would be like this:
>
> When I move the encoder clockwise the Fine Tune will be increased and when
> the value 100 is reached, Fine Tune will be reset to 0 and Oscillator
> Frequency will be increased by 1 and the whole process will start over while
> I keep moving the encoder.
>
> The opposite behavior if I move the encoder counterclockwise.
>
> Can it be done with BC Manager?

Try this:

Via the encoder dialog's "Custom output" tab, you define 2 MIDI messages:

$B0 $14 val7.13
$B0 $15 val0.6

This sends the 7 most significant bits of the encoder's value as the value for CC#20, and the 7 least significant bits as the value for CC#21.
($B0 here of course means I'm assuming MIDI channel 1.)

You should set Value 1 to 0 and Value 2 to 15460 (i.e. 120 x 128 + 100).

On the General tab:
Show value: ON
Resolutions: a value that suits your needs: 1000, even 10000?
LEDs: (e.g.) 1 dot

However, the above setup is not EXACTLY what you want:
The problem is that the BC can't be set up to exactly split an encoder's value into two "sections" with a modulus of 100 (which is what you'd want), only bitwise, with a modulus of 128 as done above:
It's as if your Fine Tune parameter runs from 0 to 127 each time instead of to 100. Presumably (indeed: hopefully!) your synth won't react when it receives a Fine Tune higher than 100. So you'll get "dead areas" while turning the encoder knob; I'm not sure how well it'll work.

Hope this helps,
Mark.




--
Alex

Re: [bc2000] Re: 1 encoder = 2 parameters in this manner

2010-12-12 by Bruno

Hi Alex

2010/12/12 Alex <alex655321@...>
>
>
> Hi Mark,
>
> It worked! You are a genius!
> I will continue this thread by email for not boring the rest of people with my thoughts about this particular thing.

I wouldn't say it's boring. Recently I was thinking about
possibilities of "tuning" SY77 FM operators (using SysEx). This thread
came just in time...

Cheers, Bruno

Re: [bc2000] Re: 1 encoder = 2 parameters in this manner

2010-12-12 by Alex

Hi Bruno,

I enjoy that you have found interesting this thread because since I purchased my Mopho I always asked me why this feature was omitted in the oscillators behavior. I missed the chance to make huge glissandos with one knob and use out of tune sounds in an old-fashioned way.

Cheers,

Alex
Show quoted textHide quoted text
2010/12/12 Bruno <brunorc@...>

Hi Alex

2010/12/12 Alex <alex655321@...>


>
>
> Hi Mark,
>
> It worked! You are a genius!
> I will continue this thread by email for not boring the rest of people with my thoughts about this particular thing.

I wouldn't say it's boring. Recently I was thinking about
possibilities of "tuning" SY77 FM operators (using SysEx). This thread
came just in time...

Cheers, Bruno




--
Alex

Re: 1 encoder = 2 parameters in this manner

2010-12-13 by Mark

--- In bc2000@yahoogroups.com, Alex <alex655321@...> wrote:
> I noticed I made a mistake
> during the explanation. This way would be right:
> 
> Clockwise behavior: Fine Tune goes from 50 to 100. When 100 is
> reached Freq Osc will increase by 1 and Fine Tune will reset to 50
> (not to 0 as I said before.) The process will start over again.
> 
> Counterclockwise behavior: Fine Tune goes from 50 to 0. When 0 is 
> reached Freq Osc will decrease by 1 and Fine Tune will reset to 50.
> The process will start over again.
> 
> I don't know if your solution is still the same or I must change
> something.

If I understand you correctly, the behavior you describe above is what happens when you turn a knob on the synth itself.

If this behavior corresponds numerically to what happens when you send MIDI messages from the BCF/R to the synth, then the solution I proposed could not work (and I can't immediately think of a solution to this).

For instance, wouldn't turning the BC encoder clockwise lead to a BACKWARD jump of a full semitone every time the Fine Tune value jumps from 99 to 0 (together with Freq Osc increasing by 1)?

However, you later wrote that things worked, so I'm wondering how that is possible.

Mark.

Re: [bc2000] Re: 1 encoder = 2 parameters in this manner

2010-12-13 by Alex

Hi Mark,

The behavior I described corresponds numerically to what happens when I send MIDI messages from the BCR to the synth.

The Freq Osc and the Fine Tune, are 2 different parameters in the Mopho and have to be controlled by 2 different knobs in the synth. I want to 'combine' these 2 parameters into 1 encoder of the BCR to make a smooth transition (like a huge glissando) through the oscillator frequency range.

This is what Mopho Manual says in the Program Parameter Data section:

1 Oscillator Frequency: 0 - 120 in semitones (10 octave range). CC# 20 and/or NRPN# 0 (for oscillator 1)
2 Oscillator Fine Tune: 0- 100. 0 = -50 cents, 50 = 0 (centered), 100 = +50 cents. CC# 21 and/or NRPN# 1 (for oscillator 1)

The solution I suggested I think is the right one to make what I want but I can be wrong. If you or somebody has a better solution, please, don't hesitate to post it here. I will post again my idea:

1 Encoder of BCR:

Clockwise behavior: Fine Tune goes from 50 (centered) to 100 (1 semitone up). When 100 is reached, Freq Osc is increase by 1 and Fine Tune is reset to 50 to starts over again the whole process while I continue moving the encoder clockwise.

Counterclockwise behavior: Fine Tune goes from 50 (centered) to 0 (1 semitone down). When 0 is reached, Freq Osc is decrease by 1 and Fine Tune is reset to 50 to starts over again the whole process while I continue moving the encoder counterclockwise.

Maybe the solution you gave me does not do what I am describing above but I can hear a huge glissando in the frequency oscillator when I move the encoder.

If you find a more accurate solution please let me know.

Thank you so much for your help Mark!

Cheers

Alex

2010/12/13 Mark <markwinvdb@...>
--- In bc2000@yahoogroups.com, Alex wrote:
> I noticed I made a mistake
> during the explanation. This way would be right:
>
> Clockwise behavior: Fine Tune goes from 50 to 100. When 100 is
> reached Freq Osc will increase by 1 and Fine Tune will reset to 50
> (not to 0 as I said before.) The process will start over again.
>
> Counterclockwise behavior: Fine Tune goes from 50 to 0. When 0 is
> reached Freq Osc will decrease by 1 and Fine Tune will reset to 50.
> The process will start over again.
>
> I don't know if your solution is still the same or I must change
> something.

If I understand you correctly, the behavior you describe above is what happens when you turn a knob on the synth itself.

If this behavior corresponds numerically to what happens when you send MIDI messages from the BCF/R to the synth, then the solution I proposed could not work (and I can't immediately think of a solution to this).

For instance, wouldn't turning the BC encoder clockwise lead to a BACKWARD jump of a full semitone every time the Fine Tune value jumps from 99 to 0 (together with Freq Osc increasing by 1)?

However, you later wrote that things worked, so I'm wondering how that is possible.

Mark.




--
Alex

Re: [bc2000] Re: 1 encoder = 2 parameters in this manner

2010-12-13 by Alex

Hi again,

This image shows a perfect oscillator frequency up glissando. This is what should happen when I move the encoder clockwise constantly in my BCR. I hope this helps a little bit.



2010/12/13 Alex <alex655321@...>
Show quoted textHide quoted text
Hi Mark,

The behavior I described corresponds numerically to what happens when I send MIDI messages from the BCR to the synth.

The Freq Osc and the Fine Tune, are 2 different parameters in the Mopho and have to be controlled by 2 different knobs in the synth. I want to 'combine' these 2 parameters into 1 encoder of the BCR to make a smooth transition (like a huge glissando) through the oscillator frequency range.

This is what Mopho Manual says in the Program Parameter Data section:

1 Oscillator Frequency: 0 - 120 in semitones (10 octave range). CC# 20 and/or NRPN# 0 (for oscillator 1)
2 Oscillator Fine Tune: 0- 100. 0 = -50 cents, 50 = 0 (centered), 100 = +50 cents. CC# 21 and/or NRPN# 1 (for oscillator 1)

The solution I suggested I think is the right one to make what I want but I can be wrong. If you or somebody has a better solution, please, don't hesitate to post it here. I will post again my idea:

1 Encoder of BCR:

Clockwise behavior: Fine Tune goes from 50 (centered) to 100 (1 semitone up). When 100 is reached, Freq Osc is increase by 1 and Fine Tune is reset to 50 to starts over again the whole process while I continue moving the encoder clockwise.

Counterclockwise behavior: Fine Tune goes from 50 (centered) to 0 (1 semitone down). When 0 is reached, Freq Osc is decrease by 1 and Fine Tune is reset to 50 to starts over again the whole process while I continue moving the encoder counterclockwise.

Maybe the solution you gave me does not do what I am describing above but I can hear a huge glissando in the frequency oscillator when I move the encoder.

If you find a more accurate solution please let me know.

Thank you so much for your help Mark!

Cheers

Alex

2010/12/13 Mark <markwinvdb@...>

--- In bc2000@yahoogroups.com, Alex wrote:
> I noticed I made a mistake
> during the explanation. This way would be right:
>
> Clockwise behavior: Fine Tune goes from 50 to 100. When 100 is
> reached Freq Osc will increase by 1 and Fine Tune will reset to 50
> (not to 0 as I said before.) The process will start over again.
>
> Counterclockwise behavior: Fine Tune goes from 50 to 0. When 0 is
> reached Freq Osc will decrease by 1 and Fine Tune will reset to 50.
> The process will start over again.
>
> I don't know if your solution is still the same or I must change
> something.

If I understand you correctly, the behavior you describe above is what happens when you turn a knob on the synth itself.

If this behavior corresponds numerically to what happens when you send MIDI messages from the BCF/R to the synth, then the solution I proposed could not work (and I can't immediately think of a solution to this).

For instance, wouldn't turning the BC encoder clockwise lead to a BACKWARD jump of a full semitone every time the Fine Tune value jumps from 99 to 0 (together with Freq Osc increasing by 1)?

However, you later wrote that things worked, so I'm wondering how that is possible.

Mark.




--
Alex



--
Alex

Re: 1 encoder = 2 parameters in this manner

2010-12-14 by Mark

--- In bc2000@yahoogroups.com, Alex <alex655321@...> wrote:
> This is what Mopho Manual says in the Program Parameter Data section:
> 
> 1 Oscillator Frequency: 0 - 120 in semitones (10 octave range). CC# 20 
> and/or NRPN# 0 (for oscillator 1)
> 2 Oscillator Fine Tune: 0- 100. 0 = -50 cents, 50 = 0 (centered), 100 = 
> +50 cents. CC# 21 and/or NRPN# 1 (for oscillator 1)

OK, that's fine then: it means that there are no overlapping ranges (which would spoil things for our BCR setup): each next cycle of Fine Tune nicely starts where the previous one stopped.

> 1 Encoder of BCR:
> 
> Clockwise behavior: Fine Tune goes from 50 (centered) to 100 (1 semitone 
> up). When 100 is reached, Freq Osc is increase by 1 and Fine Tune is 
> reset to 50 to starts over again the whole process while I continue 
> moving the encoder clockwise.
> 
> Counterclockwise behavior: Fine Tune goes from 50 (centered) to 0 (1 
> semitone down). When 0 is reached, Freq Osc is decrease by 1 and Fine 
> Tune is reset to 50 to starts over again the whole process while I 
> continue moving the encoder counterclockwise.

I think I now understand the reason for my confusion in my previous message: in your above description (as in your previous message) you imply that a Fine Tune jump from VALUE 50 (= 0 cents = centered) to VALUE 100 (= + 50 cents) is a jump of 1 semitone. But that's not the case: 50 cents is a HALF semitone; 1 semitone is 100 cents, and 1 octave (12 semitones) is 1200 cents. So that's why (in my previous message) I had started thinking that the synth uses a (very unusual) overlapping system, but as your quote from the manual shows, this is not the case. So our BCR setup should work well (apart from the dead areas from 100 to 127, but that's not nearly as serious as overlaps would be.)

Best wishes,
Mark.

Re: [bc2000] Re: 1 encoder = 2 parameters in this manner

2010-12-14 by Alex

Hi Mark,

Oops! You are on the right. I misunderstood that manual says from the start. So, the project I did into Reaper to show you my idea in a picture won't work as I expected. (I didn't test it on the synth yet.)

I had started to read your BC MIDI Implementation manual trying to understand why your solution had worked from the start but I gave up :D

Thanks a lot!

Alex
Show quoted textHide quoted text
2010/12/14 Mark <markwinvdb@...>
--- In bc2000@yahoogroups.com, Alex wrote:
> This is what Mopho Manual says in the Program Parameter Data section:
>
> 1 Oscillator Frequency: 0 - 120 in semitones (10 octave range). CC# 20
> and/or NRPN# 0 (for oscillator 1)
> 2 Oscillator Fine Tune: 0- 100. 0 = -50 cents, 50 = 0 (centered), 100 =
> +50 cents. CC# 21 and/or NRPN# 1 (for oscillator 1)

OK, that's fine then: it means that there are no overlapping ranges (which would spoil things for our BCR setup): each next cycle of Fine Tune nicely starts where the previous one stopped.


> 1 Encoder of BCR:
>
> Clockwise behavior: Fine Tune goes from 50 (centered) to 100 (1 semitone
> up). When 100 is reached, Freq Osc is increase by 1 and Fine Tune is
> reset to 50 to starts over again the whole process while I continue
> moving the encoder clockwise.
>
> Counterclockwise behavior: Fine Tune goes from 50 (centered) to 0 (1
> semitone down). When 0 is reached, Freq Osc is decrease by 1 and Fine
> Tune is reset to 50 to starts over again the whole process while I
> continue moving the encoder counterclockwise.

I think I now understand the reason for my confusion in my previous message: in your above description (as in your previous message) you imply that a Fine Tune jump from VALUE 50 (= 0 cents = centered) to VALUE 100 (= + 50 cents) is a jump of 1 semitone. But that's not the case: 50 cents is a HALF semitone; 1 semitone is 100 cents, and 1 octave (12 semitones) is 1200 cents. So that's why (in my previous message) I had started thinking that the synth uses a (very unusual) overlapping system, but as your quote from the manual shows, this is not the case. So our BCR setup should work well (apart from the dead areas from 100 to 127, but that's not nearly as serious as overlaps would be.)

Best wishes,
Mark.




--
Alex

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.