Thanks for the detailed explanation. I will definitely have to study it, as working with sysex is new to me. The math seems relatively simple, but doable. I have to echo the final sentiment in you post, which is part of the reason I had convinced myself that there just had to be more parameters, given who designed the synth. It seemed almost inconceivable that a person who was such a dominant figure in Midi, would design a synth that is not compatible with current midi standards. Love the synth, but this sysex thing is driving me nuts. --- In DSI_Evolver@yahoogroups.com, John Pascuzzi <johnp@...> wrote: > > At 11:53 AM 6/8/06, you wrote: > >I don't know what happened!?!? > >When I typed it up it was full of paragraph and line breaks! I am a > >programmer by trade, so white space IS my friend! > > > Came in fine and formatted on my Eudora pc email client: > > > >As far as I am aware, the Evolver transmits neither RPN or NRPN's. It only > >transmits a few basic CC's, everything else is SYSEX. Programming SYSEX > >isn't terrible. You just need a BASIC understanding of the binary and > >hexidecimal notations. MIDIOX will help you see what your Evolver is > >transmitting and a simple scientific calculator (like the one provided > >with windows) will help translating between binary, hexidecimal, and decimal. > > > >For example (and I'm at work at the moment, not home in front of my > >manual, I am doing this from "memory"), I believe "LFO 1 Amount" is > >Program Parameter #42 and it can accept values of 0 through 200. If you > >look in the manual, it will tell you how to format a SYSEX message for the > >transmission of a Program Parameter. It's definition is in binary, > >something like 1111 0000 0000 0001 0010 0000 0000 0001 0000 0001 0XXX XXXX > >0000 YYYY 0000 ZZZZ 1011 0111 (XYZ are variables for different > >combinations 0's and 1's). The program parameter list is in decimal, ie > >42, and can also be found in the manual. Your resulting SYSEX message > >needs to be in hexidecimal, ie F0 ..... F7. > > > >Here is a partial explaination of that binary string above. I am only > >going over the important parts as most of it will be a static hard coded value. > > > >X > >Ok, 0XXX XXXX represents the two bytes needed to convey what parameter you > >are using - in this example we are using #42. If you use the calculator > >provided by Windows, in scientific mode, 42 translates to '2A' in > >Hexidecimal. (or 0010 1010 in binary [notice the leading 0's, the first > >one matches the template above, the second one was added because 42 in > >binary is only 6 characters long and two bytes is composed of 8 > >characters, so the first is "given", the second is filler]). > > > >Y & Z > >Now for the fun part. If I am not mistaken 0000 YYYY represents the "least > >significant byte" (LS) of the Program Parameter VALUE. 0000 ZZZZ > >represents the "most significant byte" (MS) of the Program Parameter > >Value. Let's use 198 as our Program Parameter Value. The way it is written > >in the sysex message is slightly backwards. For example the binary > >representation of 198 is "1100 0110" LS=0110 & MS=1100. To break that > >down MS=The byte containing "anything" over 15. LS=The byte that contains > >15 and under. Broken down even further MS='1100'==192 (128 + 64) and > >LS='0110'==6 (4 + 2) MS (192) + LS (6) = 198. > > > >So to put it together: 198 = '1100 0110' }--> MS=1100 LS=0110 }--> 0000 MS > >& 0000 LS }--> SYSEX LS MS == 0000 1100 0000 0110. > > > >Now to put our sysex message together translate your binary to hexidecimal > >(two byte groupings) > > > >1111 0000 = F,0 > >0000 0001 = 0,1 > >0010 0000 = 2,0 > >0000 0001 = 0,1 > >0000 0001 = 0,1 > >0010 1010 = 2,A <<<<< Program Parameter for LFO Amount 1 = 42 > >0000 0110 = 0,6 <<<<< LS for 198 = 6 > >0000 1100 = 0,C <<<<< MS for 198 = 192 > >1111 0111 = F,7 > > > >F0 01 20 01 01 2A 06 0C F7 > > > >Anyway, I hope this made sense. I know it looks daunting, however one > >thing to keep in mind is typically the only value you ever have to > >calculate is the Program Parameter, like LFO 1 Amount. The LS and MS are > >typically variables, so your editor will fill them in, you just tell it > >where they reside in the SYSEX string. > > > >On my Novation Remote 25, it can only use values up to 127. So I can not > >go all the way up to 200 for my LFO 1 Amount. And on top of that, I can > >only have one variable in my SYSEX string. So I have to choose whether I > >want to turn my MS or LS into a variable and then hard code the other. > > > >Here is what we are looking at: > >LS can represent 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14, or 15 > >MS can represent 16,32,48,64,80,96,112,128,144,160,176,192,208,224, or 240 > > > >Since I can only use one variable and would have to hard code the other, I > >would choose to hard code LS and turn MS into a variable so I can have a > >wider range of control - so I could get any of the MS values plus the hard > >coded LS. Since LFO 1 Amount only goes to 200 it makes no sense to hard > >code the LS to anything other than 0-8, if I do, I will make my control > >even LESS granular then it already is! > > > >So, on my novation, my SYSEX for LFO 1 Amount looks like: > >f0 01 20 01 01 2a 0DV 00 f7. > >0DV=variable=MS > >00=hard coded=LS > > > >If you already knew this, then sorry for the long winded answer. If you > >didn't I really hope you understood this. If you didn't then I will be > >glad to answer any additional questions. I hope I got it right myself! > > > >Now for my rant.... > >I'm going to complain to Novation, their controllers are VERY EASY to > >program, however they aren't very flexable with SYSEX messages!!! > > > >It also sux that Dave Smith didn't implement NRPN for their granular > >controls instead of SYSEX! HELLO DAVE, THAT IS WHAT NRPN IS THERE FOR!!! > >YOU HELPED CREATE THE MIDI SPECIFICATION, SO WHY DIDN'T YOU USE NRPN!! > > > >Sorry Dave, I DO love your products though! > > > >-Jim >
Message
Re: [Evolver] cakewalk INS files?
2006-06-09 by Trevor
Attachments
- No local attachments were found for this message.