Como depurar a latência do programa?

2

Estou tentando executar o amsynth em um rpi. Última versão do raspbian, nova instalação.

Eu testei o amsynth na minha área de trabalho x86 e ele funciona muito bem, sem latência.

No rpi, no entanto, recebo um atraso de cerca de 1 segundo entre enviar um comando midi (usando vkeybd) e ouvir o tom.

Definir uma melhor gentileza não parece ajudar.

Eu escrevi um pequeno script em python usando a biblioteca mido para controlar o amsynth também, mas ainda ouço o atraso.

Como eu tentaria depurar o que está causando isso? Eu sou basicamente apenas um usuário final.

Eu estou supondo que o comando midi está ficando atrasado de alguma forma, ou o próprio amsynth está atrasado (parece improvável).

A média da carga é de 0,4 durante esses testes, contra 0,1 de marcha lenta.

top mostra o amsynth pairando a 12% da utilização da CPU.

Um kernel de baixa latência não deve ser necessário para isso, certo? Eu imagino que o aplicativo seria para obter a latência de 50 ms para 10 ms, por exemplo, contra o que eu quero fazer aqui é só pegar a latência de 1000 ms para 50 ms.

Editar: Usando alsa, e não obtendo qualquer tipo de atraso de áudio com outros programas, ou seja, reproduzir áudio do YouTube no Chromium funciona em tempo real. Quando pressiono o play e pausa, o atraso não é nem perceptível.

    
por cat pants 30.09.2018 / 04:27

2 respostas

1

Tente determinar o que você usa com amsynth e vkeybd: Jack, alsa, etc Então você pode tentar:

  • link
  • link
  • possivelmente tente o kernel com o patch PREEMPT_RT (tenha em mente que você precisará criar um kernel personalizado)

É difícil usar:

por 08.10.2018 / 21:00
0

Certifique-se de que o processo tenha privilégios em tempo real (isso geralmente é feito por usuário).

Como mencionado por Ivan, um kernel com o patchset PREEMPT_RT pode ser mais adequado.

Na minha experiência, o JACK é melhor que o ALSA para áudio de baixa latência.

link

    
por 09.10.2018 / 05:27