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.
2010/12/11 Mark <markwinvdb@...>
--- In bc2000@yahoogroups.com, Alex wrote:Try this:
> 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?
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