Make a controller send Values - 63 to +63

Cayenne

2010-02-03 13:57:27

Hi I am using the MT pro trial version.
I am using M-Audio keystation pro to control some sysex messages o a M3 that do not have natural CC assigned and can only be manipulated by either the M3 hardware or through sysex.
purpose is to use FLStudio to record automation data , I can access most of the M3 using sythmaker and record and automate the data (but the sysex message passing in synthmaker appears to be too hard for me to understand) so I am looking at MT to fill in some gaps.

The keystation knobs and sliders seem to be only sending values of 0 - 127 ( I dont see a way to change this )
Some of the targets that I want to controll are from -63 to +63 .
Is there a way to attain this using MT and rules and if so can someone help with a very simple example .

thanks in advance

Attigo

2010-02-08 04:57:33

Hi Cayenne,

A control that sends a value from 0-127 is an 'absolute' message, which determines an absolute position of a control. The other message kind is 'relative' which moves a control in a certain direction from its current position, based on speed/velocity and direction. An example of relative control is the way a mouse works on a computer. There are different relative values in MIDI, sometimes it can be -63 or +63, or commonly, 63 or 65 or even 0 or 127. The higher number is normally the incremental value (increasing the control value) and the lower number is a decremental control.

If I am understanding you correctly, you are wanting to turn an absolute control, such as a slider, into a relative control... ?

This can be done quite easily with MT but relative control is meant to be used with 'endless' controls, such as an encoder. We can make a slider send an incremental value when it is going up, and a decremental when it is going down. This should work fine but when it reaches the top or bottom, it can then only send the opposite value because the slider won't go any further, it can only come back!

Here is how you could use the translators:

Code: Select all

Translator 0: Determine Direction
Options: stop=false
Incoming: MIDI B0 01 qq 
Rules: 
  if qq>ga then rr=63
  if qq<ga then rr=-63
Outgoing: MIDI B1 01 rr 

Translator 1: Set Previous Value 
Options: stop=false
Incoming: MIDI B0 01 ga 
Outgoing: (none)
What's happening here is:

The first Translator is figuring out if the input value has increased or decreased since the last input value and sends out the correct 'relative' message/value.
The second Translator is setting the last value the control (slider) send. (This will only work if this Translator is after the 'deciding' Translator)

(For the example, I've written the input control is B0 01 xx and the output message is B1 01 xx)

As for the SYSEX messages, can you show me an example, I should be able to help with that too...

cheers,
Scott

Cayenne

2010-02-08 19:23:05

Hi Scott , thank you for your reply.

I tried the code and translator settings suggested , but I think I must be stupid or something as I couldnt get it to work , mainly when the control was moving up I didnt get any changes, but when the control moved back then my device the M3 gives a midi data receiving error.

this is the sysex data from the M3 which I want to manipulate below shows both the negative values and the positive as they look different the negative seems to have some 7F in there as well, whereas positive looks to be all 00 values then pp

I get this value from the M3 when its in the negative range 00 to -63
F0 42 30 75 41 03 00 2D 00 05 0F 7F 7F 7F pp F7

I get this value from the M3 when its in the positive range 00 to +63
F0 42 30 75 41 03 00 2D 00 05 00 00 00 00 pp F7

I get this data value from the Keystation control
B2 07 pp

thanks
regards
Paul

Attigo

2010-02-09 05:37:12

Hi Paul,

Sorry, when you say -63 to +63, do you mean the parameter in the software rather than the MIDI message? For example, an EQ knob that is -63 all left, +63 all right and 0 in the middle? If so then I totally misunderstood you...

Scott

Cayenne

2010-02-09 11:18:43

Hi Scott, in the Korg M3 hardware there is for example EG Level Time/Modulation parameters for EG1 Level Velocity intensity values range from -63 all the way through to +63 default value is 00 .

I probably explained badly and probably still do...

thanks
Paul

Attigo

2010-02-10 04:23:55

Cayenne,

Your software should just use 0-127 to span over your EQ knob, ie, 0=-63, 64=0 and 127=63. Do you understand me?

So is your problem then just translating a SYSEX message into a standard CC MIDI Message?

Scott

Cayenne

2010-02-19 00:31:37

Hi Scott, If i disregard my software so it isnt part of the equation as it can only send CC and not sysex so it cant be used as is to send or control some of the M3 hardware (if I use it to control a CC that does have -63 to +63 range then it does send correct values for the hardware.

If I use MT to try and control the M3 Hardware using the M-Audio keystation pro then the M3 values are not correct they do not go from -63 to +64 when the keystation controller is moved.

the data I want to send values to doesnt have CC number it just has sysex messaging shown in a previous post.

thanks
Paul

Attigo

2010-02-19 01:25:29

OK, so you want to convert a CC into a SYSEX message? These 2 SYSEX messages you showed me can be done in MT, but can you do me a favour and watch the SYSEX message with the 'Capture MIDI' option selected (in the Translator editor) and watch what 'pp' displays? What happens when you turn it clockwise? Does the number increase? And does the number decrease in the negative range?

Your Translator will be something like this, but i think you will maybe need to have some direction detection in there if going clockwise the SYSEX has '00 00 00' and anti-clockwise it has '7F 7F 7F'.

Code: Select all

Translator 0: CC to SYSEX
Options: stop=false
Incoming: MIDI B2 07 pp 
Outgoing: MIDI F0 42 30 75 41 03 00 2D 00 05 0F 7F 7F 7F pp F7 
This will translate the CC into the SYSEX and carry through the velocity (pp).

I'm still not sure if this is what you after...

Scott

Cayenne

2010-02-19 17:22:50

hi Scott, I didnt try what you last said yet but as requested here is a selection of ranges that get displayed in MT.

clockwise :
F0 42 30 75 41 03 00 2A 00 02 00 00 00 00 01 F7 == +01
F0 42 30 75 41 03 00 2A 00 02 00 00 00 00 3F F7 == +63

I eventually got this for +00 value.
F0 42 30 75 41 03 00 2A 00 02 pp qq rr ss tt F7 == +00
F0 42 30 75 41 03 00 2A 00 02 00 00 00 00 00 F7 == +00

anti clockwise
F0 42 30 75 41 03 00 2A 00 02 0F 7F 7F 7F 7F F7 == -01

F0 42 30 75 41 03 00 2A 00 02 0F 7F 7F 7F 76 F7 == -10

F0 42 30 75 41 03 00 2A 00 02 0F 7F 7F 7F 41 F7 == -63

thanks
Paul

Attigo

2010-02-22 00:14:22

Hi Paul,

I think I understand now, try this:

Code: Select all

[x] Translator 0: Convert (0 to +63)
Incoming: MIDI B2 07 oo
Rules:
  if oo<64 then exit rules, skip Outgoing Action
  pp=oo-64
Outgoing: MIDI F0 42 30 75 41 03 00 2A 00 02 00 00 00 00 pp F7

[x] Translator 1: Convert (-63 to 0)
Incoming: MIDI B2 07 oo
Rules:
  if oo>=63 then exit rules, skip Outgoing Action
  pp=oo+65
Outgoing: MIDI F0 42 30 75 41 03 00 2A 00 02 0F 7F 7F 7F pp F7

What is happening here is your controller sends/receives the SYSEX almost backwards, from (on the knob) 0 to +63 it is sending the velocity 0 to 63 (makes sense) and on the negative side, -63 to 0 it sends the velocity 65 to 127. The rules I have written above will convert 0-127 (the default velocity your first controller sends) to send 65 to127, then 0 to 63. 65 is there -63 is on your controller, 127 is -1, 0 is 0 and 63 is 63. Hope this makes sense...

Give it a go and let me know how you get on...

I still don't fully understand what your controller is doing when you send it these values?

Scott

Cayenne

2010-02-22 23:19:56

Hi Scott , thanks for the reply , the rules you gave for some reason when I used them and went completely anticlockwise the M3 value became +63 , it did go from - figures to -63 then last value was +63 ?
some reason as well , maybe my hardware is crazy , but your rules seemed they skipped 00 as well !!!.

In any case after a bit of experiment I found that the below rules ( but I don't really know why, it was mainly guesswork) appear to work fine at least with MT and keystation and the M3 , next I will try some recorded automation in FLStudio but I am certain it will be ok.
thanks for your help , I guess its time to check my wallet and purchase MT :-)
=======================================
[x] Translator 0: Convert (0 to +63)
Rules:
if oo<=63 then exit rules, skip Outgoing Action
pp=oo-64
=======================================
[x] Translator 1: Convert (-63 to 0)
Rules:
if oo>=63 then exit rules, skip Outgoing Action
pp=oo+64
if oo==0 then exit rules, skip Outgoing Action
pp=oo+64
========================================
With the MTranslator and controller , I am mainly trying to access parts of the Korg M3 that the software cant talk to as it can only see CC and not access or talk to sysex on the hardware , this way I hope to be able to record events and manipulate the M3 with more total control, eg: number of steps in the modsequencer of the radias exb , also the individual step values for pitch, filter , etc it will also allow me to edit the events afterwards as well.
some reason a fair few of the parameters in the M3 appear to have negative values as well as positive , and I am hoping that none of the other parameters are as hard to get to grips with as this one was.
does the above paragraph answer this "I still don't fully understand what your controller is doing when you send it these values?"

Is it my M-Audio sending crazy messages or is it the M3 that has crazy messages ???

regards
Paul

Attigo

2010-02-23 03:51:41

Hi Paul,

Sorry, i must have been confused. From what you said the controller sends, that's what I made the CC translate to. I get what you are trying to do now, but it is the M3 that has the weird messages.

I'm glad you got it working...

cheers,
Scott

Cayenne

2010-02-23 20:13:16

Hi Scott , would never have been able to work it out without your good and much appreciated help , so a big thanks for you.
@ buying will have to wait till end of month to buy MT as my money is sooo slim at this moment..

I will try and ask someone about the M3 sysex and why its a bit wierd , but TBH I dont expect they will give any clues..

regards
Paul