Arduino midi data stream confusing ableton

Change the function to:

int controlChange(byte channel, byte pin, byte prevVal, byte controller)
{
  int currVal = analogRead(pin);

  if(abs(currVal - prevVal) > 5)
  {
    Serial.print(channel, BYTE); // MIDI control change; channel
    Serial.print(controller, BYTE); // MIDI controller
    Serial.print(val, BYTE); // MIDI controller value from potentiometer
    delay(5);
  }
  return currVal;
}

Change the calls to:

  sonsor0Value =  controlChange(0xB0, sensor0Pin, sensor0Value, 0x07); // VOLUME

It really isn't magic. It's simple logic.