Learning Examples | Foundations | Hacking | Links
Examples > Communication
Este tutorial explica cómo generar notas MIDI desde una Arduino.
MIDI es el interfaz digital de instrumento musical (Musical Instrument Digital Interface) es un protocolo útil para controlar sintetizadores, secuenciadores y otros aparatos musicales. Hay dos tipos de máquinas MIDI: controladores (por ejemplo aparatos que generan señales MIDI a partir de acciones humanas) y sintetizadores (que incluye samplers, secuenciadores, etc.). Los últimos reaccionan a los datos MIDI generando sonido, luz o efectos.
MIDI es un protocolo serie que opera a 31250 bits por segundo. El puerto serie interno de Arduino (y todos los puertos de la Mega) son capaces de enviar datos a esta velocidad.
Los bytes MIDI se dividen en dos tipos: bytes de comando y bytes de datos. Los de comando son mayores o iguales a 128 (de 0x80 a 0xFF en hexadecimal). Los de datos son menores o iguales a 127 (de 0x00 a 0x7F en hexadecimal). Los comandos incluyen inicio de nota, fin de nota, picth bend (portamento), etc. Los datos incluyen cosas como el tono de la nota a tocar, la fuerza (también llamada velocidad, se refiere al volumen normalmente), etc. Para más detalles, ver la especificación MIDI o alguna de las muchas Guías del protocolo MIDI en la Web.
Los datos MIDI normalmente se escriben en hexadecimal porque los bancos MIDI y los instrumentos están dispuestos en grupos de 16.
Para más información, consultar introduction to MIDI (inglés) o este ejemplo (inglés).
Todas las conexiones MIDI son hembra por definición de la especificación MIDI. Se conectan a la Arduino de la siguiente manera:
Para ver la imagen en su tamaño original, hacer click en la imagen.
imagen generada con fritzing Fritzing. Para más información visitar la página del proyecto Fritzing
Esquema
Para ver la imagen en su tamaño original, hacer click en la imagen.
Este código muestra cómo enviar notas con el protocolo MIDI a través del pin 1 (TX) de la Arduino. Si se conecta a un sintetizador MIDI, tocará las notas F#-0 (0x1E) a F#-5 (0x5A).