Thanks for the info. It will take me a little time to absorb. Thank you for your time on the matter. Just curious, I stumbled upon this doing a search and interested me as I'd like to use NRPN messages since the Prosynth is known to be buggy with respect to parameter changes using sysex. Is this possible? See below: "Hi All So I found I can get -ve values into Miniak via a bcr but not quite as I would like it. I wonder ... can the "push encoder", or indeed one of the buttons be programmed to take a NRPN value and add a large offset to it (click adds on 16184 say?). Here's why I want this: 1] if I extended my code to take two hex values, then suddenly the NRPN stuff becomes clearer I was passing say 0x241 as a NRPN value from midi-ox. Of course the C# correctly interprets this as 0x2 x 0x100 + 0x41. But Midi-ox is infact display 7bit values IE this should be 0x2 x 0x80 + 0x41 !! 2] Therefore I put midi-ox on the output and could see I _can_ get -ve NRPNs on BCR2000 Set low to be 0, high to be 16384 for NRPN 0xc say (OSC1 waveshape) Then, 0 -> 100 gives waveshape 0, 100. Then a massive gap ... Then from 16284->16384 the -ve values appear :-). If we could ask the nice people at Berhinger to give a new s14 (for signed 14 bit) that would solve this issue completely. Then we set the min to be 0x7f1c which is -100 in 7 bit hex (or more simply -100 as a decimal!)" -Frank On Thursday, March 27, 2014 1:26 AM, "rpcfender@..." <rpcfender@...> wrote: So from that site http://feldkir.ch/MSR-2%20SYSEX.txt ASM System Exclusive Specification F0 system exlusive status 00 Marion Systems manufacturer id... 00 ... 59 ... 01 MSR-2 product id, use 7F as ALL IDs identifier 01 MSR-2 ASM product member, use 7F as ALL IDs identifier dd ASM device id, use 7F as ALL IDs identifier pp ASM message type, 4 = Request Data, 3 = Set Data tt ASM data type, 0 = global, 1 = preset, 2 = layer, 3 = tuning table, 4 = patch map, 5 = velocity curve, 6 = patch name, 7 = parameter mm ASM data 14-bit number msb ll ASM data 14-bit number lsb ... data, one 14-bit value per byte F7 End of system exclusive message So I guess, to adjust a parameter you use F0 00 00 59 7F 7F 7F 03 07 MSB_Param LSB_Param MSB_Value LSB_Value F7 Assuming the data is sent the same as the MSR-2 "14 bit signed numbers are used to transmit data values. These are transmitted by sending the most significant 7 bits first and the least significant 7 bits last. Bit 14 represents the sign bit. " my guess is .... 99 = $00 63 98 = $00 62 ... 2 = $00 02 1 = $00 01 00 = $00 00 -1 = $7F 7F -2 = $7F 7E ... -98 = $7F 1E -99 = $7F 1D These are not continuous values as 0 won't wrap around to $7F 7F To get the BC to handle negative numbers in a continuous way it needs to use an extra bit (ie in this case 15bits) 99 = $01 00 63 98 = $01 00 62 ... 2 = $01 00 02 1 = $01 00 01 00 = $00 00 00 -1 = $00 7F 7F -2 = $00 7F 7E ... -98 = $00 7F 1E -99 = $00 7F 1D With a minimum of $00 7F 1D and a max of $01 00 63 and ignore the first byte when you output the message (val 7.13 and val0.6 are the BC commands for the data) It can't do this as it can only handle 14bits. If only the 14th bit was not used for negative there is a way to fudge the negative number. This is the same problem as I have for Emu Morpheus and I have never been able to create a solution. Try using MidiOx and building a sysex parameter message to make sure that your synth does function that way. All the best Royce
Message
Re: [bc2000] Re: Controlling the Marion Prosynth
2014-03-27 by F Aitken
Attachments
- No local attachments were found for this message.