Problema de latência com Teclado MIDI/USB + Ardour

E aí galera, beleza?

Estou utilizando um teclado MIDI/USB para gravar algumas coisas com o Ardour, mas sempre tem uma latência chata. Por ex, eu pressiono a tecla mas o som só sai nos alto-falantes uma fração de segundo depois, o que acaba atrapalhando um pouco para tocar.

Consigo ignorar/contornar esse problema porquê o meu teclado é arranjador, então eu coloco o som o PC no mudo e gravo utilizando o som do próprio teclado como retorno.

Alguém sabe se existe alguma forma de eliminar essa latência?

Segue abaixo as minhas configurações do Jack:

Puxa, adoro esse assunto, mas infelizmente tem muito tempo que não mexo com áudio profissional no Linux. Qual distro você tá usando? Do pouco que eu me lembro a gente sempre procurava usar distros com kernel real-time (rt) pra tentar a menor latência possível.

Há uns meses atrás eu tive esse mesmo problema (mas para gravação de guitarra/violão) e consegui configurar com essas dicas do próprio site do JACK:
http://jackaudio.org/faq/linux_rt_config.html

Basicamente os passos são:

  1. Configurar o arquivo /etc/security/limits.d ou /etc/security/limits.d/99-realtime.conf, se o primeiro não existir, com as linhas:
    @realtime - rtprio 99
    @realtime - memlock unlimited

  2. Criar o grupo realtime e adicionar seu usuário à ele:
    $ groupadd realtime
    $ usermod -a -G realtime yourUserID

No meu, ao iniciar um projeto as configurações são essas. Antes de iniciar a gravar eu clico em “Start”, para iniciar o JACK, e depois tudo funciona muito bem. Além disso, você pode tentar diminuir um pouco o tamanho do buffer.

Adendo:
Aproveito para indicar os vídeos do meu amigo e professor de guitarra Guilherme Zech. Ele dá bastante dicas de gravação, usando Windows, mas que podem ser convertidas para Linux.
https://www.youtube.com/user/guilhermemzech

@brunonzanette
Na verdade eu já tinha feito tudo isso que tu falou.

De fato a latência não é muito grande, acredito que um músico profissional consiga tocar sem problemas com essa latência, acho que não chega a meio segundo. O que atrapalha um pouco é que ainda não sou lá muito habilidoso e volta e meia me atrapalho por conta do delay. haha
Então tenho que mutar o som do PC e tocar com o som dos alto-falantes do próprio teclado.

Mesmo assim acredito que deva existir uma maneira de zerar a latência, pois se o cara utiliza um teclado controlador (que não possui alto falantes próprios) então ele não pode utilizar do mesmo método que eu para contornar o problema.

Mas me diz, no teu caso a latência é 0?

Acredito que o que me resta a tentar é o Kernel LowLatency.

1 Curtida

@brunonzanette Uma pergunta:

Essa janela de configuração do teu print apareceu pra mim quando inicializei o Ardour pela primeira vez, mas nunca tentei acessá-la depois disso. Como faço para acessá-la agora?

1 Curtida

Cara, no meu aparece toda vez por padrão. Também aparece quando eu crio uma nova sessão. E acabei de descobrir que dá pra acessar via “Janela -> Configuração de áudio/MIDI”

A latência fica na casa de alguns millisegundos, o que pra mim é bem confortável.

Você tem algum processo grande rodando? Está configurado para usar o JACK como sistema de áudio?

Uma outra sugestão, se quiser usar um kernel RT, é usar o Ubuntu Studio que é feito para isso e já vem com o RT.

Outra coisa que você pode fazer é verificar se o JACK está apresentando algum erro, usando o programa “QJackCtl”:
Captura%20de%20tela%20de%202019-08-28%2018-18-25

Então, só para finalizar o tópico. Pelo que andei pesquisando e após o último vídeo lá no Vartroy Tecnologia descobri qual é o problema.

Eu não tenho uma interface de áudio externa, utilizo o teclado conectado diretamente no PC via USB, e desse modo, ao menos com o Ardour é praticamente impossível eliminar 100% da latência. Sem uma interface de áudio o som precisa fazer um caminho muito longo até os auto falantes, e utilizando apenas uma placa de áudio onboard zerar o delay fica praticamente impossível.

A nota precisa sair do teclado e chegar no PC/Ardour via USB, para ser “transformada” em som pelo Ardour e então enviada ao chip de som da placa mãe para depois chegar aos auto-falantes atravéz do cabo p2.

O lado bom é que o meu teclado é Arranjador e não Controlador, assim eu consigo utilizar o retorno do próprio teclado deixando a saída de som do PC no mudo enquanto gravo, assim contornando o problema de latência.

Muito obrigado @brunonzanette pela ajuda!

O plano agora é comprar uma interface de áudio externa. haha

1 Curtida

Bela solução! Ela só vai te dar problemas se você for gravar o teclado em cima de algum outro material, tipo uma base bateria/baixo. Ai sim nesse caso você vai precisar do mínimo de latência possível. Eu já tive uma Roland/Edirol EA-25. É uma placa bem razoável e rodava bem com o Debian/Ardour, mas faz tanto tempo que usei esse setup (por volta de 2006) que nem sei se ainda rola.

É óbvio que não é uma boa solução, aliás, nem é uma solução. Se tu leu o tópico todo deve ter percebido que eu falei que é uma forma de contornar o problema enquanto busco por uma solução.

Como eu disse, utilizar o som do próprio teclado como retorno é uma forma de contornar o problema, e para MIM funciona, ao menos de forma provisória até que eu possa adquirir o equipamento adequado.

Mas é claro que se tu souber de um método mais eficaz sem que eu precise adquirir nenhum equipamento, sintá-se à vontade para compartilhar. Ficarei muito grato pela ajuda, inclusive.

Precisei editar o teu post. Então da próxima vez sem palavrões, por gentileza.

Tranquilo, acho que eu me expressei mal, mas realmente achei uma boa solução de contorno.
Como já foi citado anteriormente, eu acho que vale o teste do kernel real time. Eu pessoalmente não tive uma boa experiência com o Ubuntu Studio na minha máquina, ficou um pouco pesado, mas se rodar legal, é melhor do que compilar o próprio kernel (ainda que existam pontos positivos em questão de baixa latência que possam ser obtidos com uma compilação customizada).

1 Curtida