Posso usar uma UART (porta serial) como um dispositivo MIDI no Linux?

1

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.

por XTL 05.05.2015 / 20:37

2 respostas

2

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.

    
por 08.03.2016 / 23:29
0

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!

    
por 05.05.2015 / 20:50