Você pode usar ttymidi para fazer a ponte entre uart e alsa.
Você deve conseguir que isso funcione com o projeto RaspberryPi, mas você mesmo precisará compilá-lo.
Posso convencer o Linux (kernel / ALSA / Jack) a usar uma porta UART ou serial arbitrária (geralmente /dev/ttyS*
ou /dev/ttyUSB*
ou /dev/ttyACM*
) para gerar as mensagens MIDI?
Esta é a maneira que o MIDI foi feito no Amiga, por exemplo. Se o lado elétrico estiver configurado corretamente e a UART puder ter clock de taxas MIDI, a transmissão deverá funcionar em princípio.
O que eu gostaria de saber é que existe uma opção de software, configuração, driver ou hack pronto para fazer isso.
Você pode usar ttymidi para fazer a ponte entre uart e alsa.
Você deve conseguir que isso funcione com o projeto RaspberryPi, mas você mesmo precisará compilá-lo.
Isso é muito difícil. A porta serial pode ser programada em certas baudrates, que normalmente variam entre 300 Bauds (ou mais) para 115200 (230400 e 460800 em máquinas mais recentes). A maioria das velocidades, no entanto, são múltiplas: 300, 600, 1200, 2400, 4800, etc MIDI no entanto é 31250 Bauds, que é difícil de programar, como o não há relação "harmônica". Como isso é corrigido no PC (e diferente do Atari), representa um problema sério.
Outra questão é que o MIDI é um circuito de circuito de corrente (com optoacopladores), enquanto o RS232 trabalha com tensões. Você terá que fazer uma interface externa para tornar o compatível.
Então, o obstáculo final é o software: Gerenciar a UART é relativamente fácil, e há muitos exemplos (procure por "programação serial em série". A questão aqui parece que você provavelmente deseja apresentar alguma interface padrão para os programas de gerenciamento de MIDI, então 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 o tempo 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-MIDI barata!
Tags serial-port midi linux