Incremental CC values for non-regular increments - rounding??


Mike Watkinson
 

Hi all - any help with this would be great
I have a challenge caused by trying to programme for Eventide's Octavox harmoniser in Ableton Live. I wish to use the FCB1010 to move the harmonising interval either up or down. There are 29 possible intervals, and I have worked out the acceptable range of CC value that maps to each one. The issue is that each range is not the same in Ableton - it is sometimes 4 and sometimes 5 , but not in a regular pattern. So - one way of addressing this is by using a variable in UnO2, and making the increment 4.5 - this gives non acceptable CC values unless the resulting value can be rounded up (or down), but if that were possible, the CC value would map to all available key centres (except 1).
So - question 1 - is it possible to round in UnO2 Control Center?

So far I have had to create a long list of 'if, else if' values to map each increment into the correct range (see below) - but the issue with this is it is very inefficient. The code below is for two switches to move the pitch either up or down, but I want to have 4 sets of 2 switches (for four harmonies), requiring this to be copied a further three times - and there isn't enough memory!
So - question 2 - is there a better way of doing this that will fit the available memory?

Here's my rubbish code so far:

TRIGGER_CLICK Interval 1 up =
{
if($key == 66)
      $key -= 5
   else if($key == 61)
      $key -= 5
   else if($key == 56)
      $key -= 4
   else if($key == 52)
      $key -= 5
   else if($key == 47)
      $key -= 4
else if($key == 43)
      $key -= 5
else if($key == 38)
      $key -= 4
else if($key == 34)
      $key -= 5
else if($key == 29)
      $key -= 4
else if($key == 25)
      $key -= 5
else if($key == 20)
      $key -= 4
else if($key == 16)
      $key -= 5
else if($key == 11)
      $key -= 4
else if($key == 7)
      $key -= 5
 
else if($key == 70)
      $key -= 4
else if($key == 75)
      $key -= 5
else if($key == 79)
      $key -= 4
else if($key == 84)
      $key -= 5
else if($key == 88)
      $key -= 4
else if($key == 93)
      $key -= 5
else if($key == 97)
      $key -= 4
else if($key == 102)
      $key -= 5
else if($key == 102)
      $key -= 5
else if($key == 106)
      $key -= 4
else if($key == 111)
      $key -= 5
else if($key == 115)
      $key -= 4
else if($key == 120)
      $key -= 5
else if($key == 124)
      $key -= 4
else if($key == 127)
      $key -= 3
 
 
   SendMidi MainStage CtrlChange 78 $key 
}
 
TRIGGER_CLICK Interval 1 down =
{
if($key == 66)
      $key += 4
   else if($key == 70)
      $key += 5
   else if($key == 75)
      $key += 4
   else if($key == 79)
      $key += 5
   else if($key == 84)
      $key += 4
else if($key == 88)
      $key += 5
else if($key == 93)
      $key += 4
else if($key == 97)
      $key += 5
else if($key == 102)
      $key += 4
else if($key == 106)
      $key += 5
else if($key == 111)
      $key += 4
else if($key == 115)
      $key += 5
else if($key == 120)
      $key += 4
else if($key == 124)
      $key += 3
 
 
else if($key == 61)
      $key += 5
else if($key == 56)
      $key += 5
else if($key == 52)
      $key += 4
else if($key == 47)
      $key += 5
else if($key == 43)
      $key += 4
else if($key == 38)
      $key += 5
else if($key == 34)
      $key += 4
else if($key == 29)
      $key += 5
else if($key == 25)
      $key += 4
else if($key == 20)
      $key += 5
else if($key == 16)
      $key += 4
else if($key == 11)
      $key += 5
else if($key == 7)
      $key += 4
else if($key == 2)
      $key += 5
 
 
   SendMidi MainStage CtrlChange 78 $key
}


Jack Fenton
 

Hi,

Integer variables on UNO2 are values 0-127 only so there can be no rounding.  You might need to pass incremental values of 1 only to an external translator like Bome MIDI translator Pro to handle conversion to the values you want.  There may be other tools out there as well.


chrisw_63
 

I'm not familiar with the Octavox, but going up by 4 and 5 sounds like thirds in a scale to me.  If so, can you use the Scale plugin in Ableton to translate the input to the scale you need?  I know it's not easy to make that flexible, but it can be done.  I had a MIDI effect rack doing this for background pads, with a macro assigned to the Base parameter to change keys.


Mike Watkinson
 

Thanks both for your replies - what a great group! I hadn’t thought of using a ‘translator’ but will definitely give that a go. Bome looks great but I’ll try some free options available from the Ableton community first as this is currently my only requirement from a translator.