Posso convencer o Linux (kernel/ALSA/Jack) a usar um UART arbitrário ou porta serial (geralmente /dev/ttyS*
ou /dev/ttyUSB*
ou /dev/ttyACM*
) para gerar as mensagens MIDI?
Foi assim que o MIDI foi feito no Amiga, por exemplo. Se o lado elétrico estiver configurado corretamente e o UART puder ser sincronizado com taxas MIDI, a transmissão deverá funcionar em princípio.
O que eu gostaria de saber é se existe uma opção de software, configuração, driver ou hack pronto para fazer isso.
Responder1
Você pode usarttymidipara fazer a ponte entre uart e alsa.
Você deve conseguir fazer isso funcionar com o projeto RaspberryPi, mas precisará compilá-lo sozinho.
Responder2
Isso é muito difícil. A porta serial pode ser programada em determinadas taxas de transmissão, que normalmente variam entre 300 Bauds (ou mais) a 115200 (230400 e 460800 em máquinas mais recentes). No entanto, quase todas as velocidades são múltiplas: 300, 600, 1200, 2400, 4800, etc. MIDI, entretanto, é 31250 Bauds, o que é difícil de programar, pois não há relação 'harmônica'. Como isso é consertado no PC (e diferente do Atari), representa um problema sério.
Outra questão é que o MIDI é um circuito de loop de corrente (com acopladores ópticos), enquanto o RS232 funciona com tensões. Você terá que fazer uma interface externa para tornar compatível.
Então, o obstáculo final é o software: gerenciar o UART é relativamente fácil e há muitos exemplos (procure o 'como fazer programação serial'. O problema aqui parece que você provavelmente deseja apresentar alguma interface padrão para o MIDI -gerenciando programas de música por aí, então seu driver terá que gerenciar o lado UART e apresentar a interface correta para o software.
A maioria das interfaces MIDI modernas também apresentam temporização com o código MIDI para o programa do usuário, o que é um problema extra.
Portanto, é muito mais fácil comprar uma interface USB para MIDI barata!