Docker com áudio em tempo real / baixa latência? (para amplificadores virtuais como o Guitarix…)

2

Eu tenho tentado obter um amplificador de guitarra foss virtual para rodar na minha máquina Fedora por um tempo agora, Guitarix (que roda em JACK ) para ser mais preciso. Mas eu simplesmente não consigo descobrir. As pessoas dizem que é muito direto para fazê-lo funcionar usando o AV Linux . Eu não quero instalar uma nova distro na minha máquina, no entanto. Então, minha ideia é criar uma imagem do Docker baseada no AV Linux e, de alguma forma, passar meu Coisa adaptador de placa de som USB (que eu uso para conectar minha guitarra) através do recipiente Docker e, em seguida, use uma ferramenta VNC para interagir com o Guitarix GUI no container. (Eu também tenho um placa de som USB normal que pode ser usado como dispositivo de saída caso isso ajude a reduzir a latência.

Mas meu medo é que fazer isso com o Docker introduziria muita latência de áudio, tornando-a inútil. É muito importante para mim que o atraso entre escolher uma string e ouvir o som seja o mais baixo possível. Um 100 milissegundos, por exemplo, já seria demais. 20-30ms provavelmente seriam aceitáveis.

Eu já tentei com uma máquina virtual e a latência foi bastante horrível. Eu tenho que admitir que eu estava usando uma VM do Windows com um amplificador virtual diferente (RockSmith) que é muito intensivo em CPU / GPU, no entanto.

    
por Forivin 23.08.2017 / 21:36

1 resposta

1

Alguns pontos que podem orientá-lo:

  • Você não precisa do AV Linux para usar o Guitarix assim que ele estiver nos repositórios oficiais do Fedora 26, então não vejo nenhuma vantagem de usá-lo dentro de um container / VM.

So my idea is to create a Docker image based on AV Linux and somehow pass my USB sound card adapter thingy (which I use to connect my guitar) through to the Docker container and then use a VNC tool to interact with the Guitarix GUI in the container.

Não existe imagem de janela de encaixe do AVLinux, até onde eu sei.

Se você realmente quiser usar o Guitarix dentro de um contêiner, dê uma olhada aqui:

link

Existem alguns exemplos de aplicativos da área de trabalho em execução em um contêiner e os respectivos arquivos do docker. Você pode aprender com isso.

But my fear is that doing this with Docker would introduce a lot of audio latency, effectively rendering it useless.

Não, ele não apresentará muita latência de áudio (quase nenhum).

A 100 milliseconds for example would be way too much already. 20-30ms would probably be acceptable.

Acima de 6 a 7 ms você pode sentir, provavelmente a experiência não será ótima.

Se sua intenção é fazer o trabalho corretamente, coloque algum esforço para executá-lo em seu host. Se você quiser algumas aventuras, tente entender melhor o modo de contêiner de trabalhar para evitar alguns equívocos.

Se você quiser experimentar outra distribuição de áudio do Linux, pode sempre dar uma olhada no link

    
por 26.08.2017 / 13:13