v3-MIDI-controller - SHIFTERS

Hola! soy nuevo con el Kilomux, nunca asistí a los TCMIDI, con lo cual recién hace poco logre hacerlo funcionar (16 potes enviando mensajes CC por el puerto midi).
Mi idea es utilizar por ahora 16 potenciometros y un par de bancos (botones shifters), para controlar via midi un sintetizador.

Mi duda es como debo configurar el botón shifter, para que me permita programar diferentes tipos de mensajes CC (Control Change)..por ej. el cutoff del filtro responde al CC 74..necesitaría que en otro BANCO o Shifter responda al CC82.

Estoy usando la v3 del código..y tengo un pulsador común de dos conectores, conectados al puerto B del MUX (entrada digital), y conecte el pin GND y el pin 0 (Canal del MUX)..y no observo que aparezca ningún tipo de mensaje en el monitor serial.

Hasta ahora en el código tengo lo siguiente: #define COMUNICACIÓN_MIDI, #define NUM_SALIDAS 16, #define BOTONES_CC, #define SHIFTERS, tipoEntrada (Analogica) MUX - A (1 a 16 ACTIVADAS), tipoEntrada (Digital) MUX-B (1 ACTIVADA, resto DESACTIVADAS), mapeoNOTES (esta por default), mapeoCC (Aqui asigne los 16 primeros CC, necesito 16 más), no tengo leds definidos, #if defined(SHIFTERS) #define BOTON_BANCO_1 12 (el resto estan comentados), #define SHIFTER_1 (esta por default), #define BANCO_0 (esta por default)

Gracias por la ayuda!!

Comentarios

  • editado octubre 2016
    Hola frndo!

    Para usar ese botón como shifter en principio deberías asegurarte que el botón funcione.

    Para eso dejá comentada la línea que tiene el define SHIFTERS.

    El define BOTONES_CC lo que hace es que los botones en lugar de enviar Notes ON y OFF, envíe mensajes CC. Por lo que comentás, no creo que lo necesites, así que también podés dejarlo comentado.

    El código "v3midiController.ino" está pensado para que los shifters cambien los mensajes que envían el resto de los controles. Cada shifter suma 16 al valor por defecto de cada control (los que se colocan en los arrays mapeoCC y mapeoNotes).

    Lo que vos querés hacer no es tan directo, ya que necesitás dos arrays de mapeo distintos, para poder colocar en ellos los valores que necesitas para cada pote, en cada uno de los bancos.

    Para eso te sugiero que hagas otro array como el de mapeoCC que podría llamarse mapeoCCbanco1, y en la función EnviarControlChangeMidi, harías algo así:

    // Remapea las entradas analógicas y las envía por MIDI
    void EnviarControlChangeMidi(unsigned int valor, unsigned int cc) {
      if(bancoActivo == 0){
        MIDI.sendControlChange(mapeoCC[cc], valor, CANAL_MIDI_CC);  
      }
      else if (bancoActivo == 1){
        MIDI.sendControlChange(mapeoCCbanco1[cc], valor, CANAL_MIDI_CC);  
      }
      return;
    }

    Luego, una vez que te funcione el botón (es decir, que veas actividad en el monitor serial al presionarlo y soltarlo), acordate que número de nota envía y reemplazalo por el 12 que tenés en BOTON_BANCO_1, y descomentá el define SHIFTERS.

    Espero que te ayude!
  • Hola Sanoytx..muchas gracias.
    Estoy intentando sustituir la linea de codigo en la funcion EnviarControlChangeMidi, pero me da el siguiente error..ya intente sustituir el dato "unsigned int note" por "cc" en la linea 
     #if defined(COMUNICACION_MIDI)|defined(HAIRLESS_MIDI)..pero sigue tirando el error..que podra ser?

    /Users/macmini/Documents/Arduino/v3midiController/v3midiController.ino: In function 'void EnviarControlChangeMidi(unsigned int, unsigned int)':
    v3midiController:993: error: redefinition of 'void EnviarControlChangeMidi(unsigned int, unsigned int)'
     void EnviarControlChangeMidi(unsigned int valor, unsigned int cc) {
          ^
    v3midiController:432: error: 'void EnviarControlChangeMidi(unsigned int, unsigned int)' previously defined here
     void EnviarControlChangeMidi(unsigned int valor, unsigned int cc) {
          ^
    exit status 1
    redefinition of 'void EnviarControlChangeMidi(unsigned int, unsigned int)'

    This report would have more information with
    "Show verbose output during compilation"
    option enabled in File -> Preferences.

  • Perdon, ya lo resolvi..estaba copiando mal las lineas de codigo que me pasaste.
    Ahora funciona perfectamente!!
    Voy a intentar agregar un par mas de shifters y algunos leds..

    muchas gracias!
  • Excelente!
Accede o Regístrate para comentar.