Dsi evolver keyboard problem sending midi

hi,
ive just got a DSI Evolver keyboard which is festooned with knobs but doesn’t send out CC messages from the knobs, however it sends out midi sysex and I want to convert what it sends to midi cc so I can use it as a midi controller.

As has been mentioned on here
DSI Poly Evolver (which is similar) which is mainly controlled by sysex instructions which contain LS and MS nibbles (in that order), e.g.

Oscillator 1 Fine Tune: F0 01 20 01 01 01 LS MS F7

How would I go about converting this into a useable CC assignment ?
Thankyou in advance for any help with this.

Kind Regards

Chris

http://www.davesmithinstruments.com/downloads/evolver/doc/Evolver_manual_3.2a.pdf?765cbf

Based on your description, the below should work.

It is based on this Scaling Tutorial to scale from 14 bit to 7 bit.

Here are the rules:

// combine nibbles
qq=qq<<7
qq=qq|pp
// Scale it to 7 bits (16384 to 128)
qq=qq*128
qq=qq/16384

Point the alias ‘My Controller’ to your keyboard. I’m using the alias ‘Application’ to the destination device.

image

Scale-Sysex-to-CC-Example.bmtp (1.7 KB)

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

hi Steve, I’m getting nowhere with this

as mentioned on a previous post by someone else:

where LS cycles through 00 → 0F and MS counts up from 00 → 06 (once LS has cycled through 0F it returns to 00 and MS increments by 1.) Values range from 00 00 to 0A 06 (0-100) (I think this is correct)

when I apply the template you have done, I just get a value of 0-6 for the midi cc output value, in steps of x15 zeros, x13 ones, x6 twos, x9 threes, x7 fours, x6 fives and finally x2 sixes. This give me a CC output range of 6 out of a possible 128 steps.

I don’t know how to explain it better, but its really odd.
The only other thing to to add is that these knob controls on the keyboard are rotary endless encoders and not POTS, so I don’t know if that could be an issue ?

Ive attached the manual incase you need it, I’m a bit out of by depth somewhat at this point.
I’ve had a good go at it but im going to need a little more of your help with it to get me over the line if you would be so kind .

[http://www.davesmithinstruments.com/downloads/evolver/doc/Evolver_manual_3.2a.pdf?765cbf ]

OK, so max value will be 0x64 or 100.

Try the attached.

DSi-Evolver-OSC1-FineTune-Sysex-to-CC.bmtp (2.1 KB)

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz
1 Like

Hi Steve
This works well… however, ive noticed that my synths knobs have different max values
the fine tune goes to a max of 100 which is correct using your rules
but the cutoff frequency goes to 164 so the midi cc is going beyond 127 and starting over and ending up with a midi cc value of around 37…
is there a way to limit the output to 127 if that makes any sense.

im nearly there with this, im eternally greatful

Add the following rule.

if qq>127 then qq=127

For any parameter requiring a value of > 127 either the parameter must be rescaled or if your destination device will need to support values greater (either NRPN, pitchbend of 14bit CC).

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

Thats great Steve, this raises a final question that there may not be an answer to.
the midi cc message is now maxing out at 127 which is great but the value is still going to 164, meaning when I dial back from 127 there is a lag where it is catching up from 164 before it picks back up again from 127, its like an invisible ceiling.
I assume there is no way of putting it to a complete stop when it gets to 127 ?
To avoid this catchup situation.

Hi,
You can apply scaling.

This version uses 2 translators.

The first one looks at the parameter number with local variable oo and applies a different scaling factor (max value+1).
It also determine by oo which CC that you want to send.

It then passes these parameters to the second translator which applies the scaling and then sends the proper CC number and scaled value.

Here are the rules for the first translator (2.0).


//Log "Log pp=0x%02X pp%"
//Log "Log qq=0x%02X qq%"

// combine nibbles
// pp will be LSB 0-15
pp=pp&15
// Combine them
qq=qq<<4
qq=qq|pp

// Set Desired Scale input scale max value+1
// fine tune
if oo==1 then uu=128
if oo==1 then Log "Log Parameter Fine Tune"
// Filter Frequency steps in semitones
if oo==16 then Log "Log Parameter Filter frequencey Steps"
if oo==16 then uu=165
// Desired MIDI Channel
vv=0
// CC# based on incoming parameter number
if oo>127 then Log "Log Invalid Parameter %oo%"
if oo==1 then ww=12
if oo==16 then ww=13
// Use Perform
// First Paramter - Desired MIDI CH
// Second paramtter is CC#
// Third paramter if current unscaled value
// Forth parameter is max value for input


Log "Log Unscaled value is 0x%02X qq%"


// First Paramter - Desired MIDI CH
// Second paramtter is CC#
// Third paramter if current unscaled value
// Forth parameter is max value for input
// scale it
qq=qq*128
qq=qq/rr
Log ‘Log Scaled value = %qq%’

type or paste code here

DSi-Evolver-Scaled-Sysex-to-CC.bmtp (3.4 KB)

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

Hi Steve
There’s a bit to digest here, but im also learning a lot along the way.
Thankyou so much, I’ll get into this tomorrow and let you know how I get on.

Many thanks for all your effort, I really appreciate it.

Regards

Chris

Im looking through the rules you have made, its massively over my head but I’m learning slowly how this amazing software works, the last file you uploaded is superb, it does exactly what I wanted and I can pretty much use the dsi keyboard as a midi controller, which is incredible.
Thankyou for you efforts, that’s not something that was easy to put together and im very very grateful for this, and also greatful for other assistances you’ve made on other projects ive had with Bome.

Have a great Christmas
Kind Regards

Yeah, I’ve been doing this for a while. Glad I could help and Merry Christmas!

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz
1 Like