Learning   Examples | Foundations | Hacking | Links

Examples > Communication

Generador de notas MIDI

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).

Circuito

Todas las conexiones MIDI son hembra por definición de la especificación MIDI. Se conectan a la Arduino de la siguiente manera:

  • pin digital 1 conectado al conector MIDI en el pin 5
  • pin 2 del conector MIDI conectado a tierra
  • pin 4 del conector MIDI conectado a 5V mediante una resistencia de 220 ohmios

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.

Código

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).

 
     
     
       
  

     
     

Share