¿Puedo convencer a Linux (kernel/ALSA/Jack) para que use un UART arbitrario o un puerto serie (generalmente /dev/ttyS*
o /dev/ttyUSB*
o /dev/ttyACM*
) para generar los mensajes MIDI?
Así es como se hacía MIDI en Amiga, por ejemplo. Si el lado eléctrico está configurado correctamente y el UART puede sincronizarse a velocidades MIDI, la transmisión debería funcionar en principio.
Lo que me gustaría saber es si existe alguna opción de software, configuración, controlador o truco para hacer esto.
Respuesta1
Puedes usarttymidipara tender un puente entre uart y alsa.
Debería poder hacer que funcione con el proyecto RaspberryPi, pero deberá compilarlo usted mismo.
Respuesta2
Eso es muy difícil. El puerto serie se puede programar a ciertas velocidades en baudios, que normalmente varían entre 300 baudios (más o menos) y 115200 (230400 y 460800 en máquinas más recientes). Sin embargo, la mayoría de las velocidades son múltiplos: 300, 600, 1200, 2400, 4800, etc. Sin embargo, el MIDI es 31250 baudios, lo cual es difícil de programar, ya que no existe una relación "armónica". Como esto está solucionado en la PC (y es diferente al Atari), representa un problema grave.
Otro problema es que MIDI es un circuito de bucle de corriente (con optoacopladores), mientras que RS232 funciona con voltajes. Tendrás que crear una interfaz externa para que sea compatible.
Luego, el último obstáculo es el software: administrar el UART es relativamente fácil y hay muchos ejemplos (busque el 'instructivo de programación en serie'. El problema aquí parece ser que probablemente desee presentar alguna interfaz estándar al MIDI -administrar programas de música que existen. Por lo tanto, su controlador tendrá que administrar el lado UART y presentar la interfaz correcta al software.
La mayoría de las interfaces MIDI modernas también presentan sincronización con el código MIDI al programa de usuario, lo que supone un problema adicional.
Por lo tanto, ¡es mucho más fácil comprar una interfaz USB a MIDI barata!