No compadre!!!
MIDI IN! Queremos que el Kaoss pad se sincronice a lo que le llegue por clock no? Si tiramos clock desde el tap tempo del Kaoss Pad entonces lo que haremos es cambiar el BPM de todo!
Mira el proceso (ahora que le he estado dando más vueltas tranquilamente frente a un bocata de atun) sería algo así:
- Tenemos una fuente de midi clock (hardware o software tanto da).
- Tenemos un Arduino con una entrada midi (hay kits que simplifican esto sobremanera)
- Tenemos cableados todos los pulsadores que necesitemos del Kaoss Pad Quad a las salidas del arduino, en el caso del midi clock propongo el botón de tap tempo por razones obvias.
Entonces:
- Llega un mensaje midi al arduino que por lo visto tiene esta particularidad (el midi no el arduino):
Alguien escribió:
So, what exactly is MIDI clock? Well, it is a set of specific bytes that form part of the MIDI protocol. The great thing is that MIDI clock messages are only one byte long (instead of two or three bytes like other MIDI messages), so the code is very simple.
Here are the main, useful MIDI clock bytes:
start = 0xfa
stop = 0xfc
clock tick = 0xf8
continue = 0xfb
Twenty-four clock tick bytes are sent per quarter note when the host sequencer is running. Every time the sequencer is stopped, the stop byte is sent. Every time the sequencer is started after being stopped, the start byte is sent. Every time the sequencer is started after being paused, the continue byte is sent.
Using this information, it is possible to write a simple Arduino sketch to handle MIDI clock bytes and "do something" for every clock tick. The trick is to work out what you want to do with every clock tick, and then simply adjust the code below to add this desired functionality.
Fuente del Articulo
Por así decirlo el midi codifica el bpm en unos ticks (24 por 1/4 de nota si no he entendido mal) y teoricamente la mquina que lo recibe se sincroniza a estos y las señales de start, stop y pausa.
El algoritmo implicado en traducir estos mensajes en algo que nos sirva a nuestro proposito es algo que ahora msimo no toca (no acabaría el post hoy porque se me escapan cosas aún... pensad que se me ocurrió ayer esta locura...) pero hay un tipo en los comentarios que justamente pregunta algo similar y ya le he tirado un mail a ver si lo tiene avanzado.
Estabamos que le llegaba el mensaje midi al arduino...
- El arduino lee la entrada y con la información realiza un calculo (en base a esos ticks) y genera un pulso electrico de salida (creo que un PWM puede ser lo que necesitamos).
- Esa salida física del arduino (llamada pin digital) se conecta al tap tempo que no es más que un
pulsador (perogrullada.. pulsador: componente que tiene algo que pulsar y que si pulsamos con un ciclo genera una pulsación o pulso... vamos que tantomonta) y en lugar de pulsar nosotros mismos el tap tempo fisicamente (presionando el boton que cortocircuita en la placa para generar el on) pues lo que hacemos es cortocircuitar la placa desde el arduino. Ojo cuando digo cortocircuitar no me refiero a freirla sino a tirar un puente entre los dos polos del pulsador (que es un circuito en placa por el tipo de botones que usan los kaoss pad y korg en numerosos productos). Si mirais mi tutorial de antes tenéis más detalles sobre esta parte del proceso.
Conclusión:
Señal midi entrante ... lectura de la señal por parte del arduino (codigo) ... algoritmo de calculo para lanzar el pulso ... cable hasta el tap tempo ... tap tempo ... sync desde midi clock.
Se entiende?