Potenciometro MIDI

Buenas!

Quería hacer una consulta sobre un conflicto que tengo con un potenciometro al querer usarlo como MIDI.

Cargo el conversor de serial a MIDI con el siguiente codigo

int cambioControl = 176; // MIDI canal 1
int numeroControl = 21;
int controlValor = 0;
int controlValorAlt = 0;
int ValorPote = 0;

void setup() {
 Serial.begin(9600);

}

void loop() {
  ValorPote = analogRead(A0);
  controlValor = map(ValorPote,0,1023,0,127);

  if (controlValor != controlValorAlt) {

  Serial.write(cambioControl);
  Serial.write(numeroControl);
  Serial.write(ValorPote);
  }

  controlValorAlt = controlValor;
  
  }

Y bueno luego al querer usarlo en FL STUDIO o cualquier otro software con MIDI,
al girar una vuelta completa del potenciometro en el programa da "4 VUELTAS"

Que puede estar mal en el codigo? Cuando lo pruebo en el monitor serial da bien los rangos de bytes, pero el midi se descontrola.. Estoy usando potenciometros de 10K. ALGUNA SUGERENCIA ? Gracias!

Aunque solo hablo por intuición, sugiero que pruebes con esto

controlValor = map(ValorPote,0,1023,0,127);

puntualmente 127 es el valor máximo que será enviado por ende es quien puede ser malinterpretado.

surbyte:
Aunque solo hablo por intuición, sugiero que pruebes con esto

controlValor = map(ValorPote,0,1023,0,127);

puntualmente 127 es el valor máximo que será enviado por ende es quien puede ser malinterpretado.

En un principio crei lo mismo pero intente cambiar el 1023 por otro valor mas bajo, pero sucede lo mismo..

no.. 1023 es el valor que corresponde a 5V cuando el potenciometro llega a ese punto y 0 cuando llega a GND:
Lo valores que devuelve esa funcion map estan entre 0 y 127 por eso cambiándolos tendras algún cambio en tu control MIDI.