Como chegar a uma configuração perfeita do jackd que funciona sem problemas e fora da caixa?

5

Enquanto trabalhava em um PPA para fornecer binários para Sonic Pi , os usuários dos binários do PPA continuam tropeçando no jackd. Como facilitar as coisas para eles?

O Sonic Pi é uma ferramenta de música educacional que combina um sintetizador eletrônico com uma linguagem de programação. Destina-se a usuários iniciantes e crianças em idade escolar para ensinar codificação através de diversão com música . O principal alvo de instalação do software é Raspbian, onde vem pré-instalado. E o código contém alguns recursos internos hacks, uh, quero dizer, soluções pragmáticas para colocar o jackd em funcionamento no Raspberry Pi. Mas esses hacks são específicos da RPi e não funcionam bem em outras distribuições.

Aqui está a situação:

  • Sonic-Pi é um IDE gráfico
  • com um servidor baseado em ruby em execução em segundo plano que controla a música
  • para tocar a música, ele está usando scsynth (uma parte do Supercollider) como o backend do sintetizador
  • scsynth atualmente requer o uso de jackd para reproduzir áudio no Linux
  • o servidor Sonic Pi baseado em ruby inicia o jackd (se já não estiver em execução) e depois o scsynth

Agora aqui os problemas começam se você estiver no Ubuntu (e eu acho que no Debian também):

  • a configuração padrão do jackd no Ubuntu parece não funcionar para todos, então em alguns sistemas, ele simplesmente não inicia e o usuário precisa usar o qjackctl ou cavar os logs e alterar os arquivos de configuração
  • quando o jackd começa, bloqueia o PulseAudio , qualquer programa que use o áudio já em execução parará de funcionar
  • O jackd prefere o agendamento em tempo real, mas o Ubuntu não é pré-configurado para fazer isso e requer alterações no usuário para fazê-lo

Então, ao todo, é uma bagunça . Esta não é a experiência que um usuário iniciante deseja após instalar o Sonic Pi.

Há guias lá fora, como fazer com que o jackd trabalhe com o Ubuntu, mas trabalhar com elas é pedir muito de um usuário novato ou de um professor em uma sala de aula que só quer que esse software funcione.

Então, o que eu estou procurando é uma forma que garanta que após instalar o Sonic Pi a partir do .deb, coisas com o jackd funcionem sem problemas, sem problemas, nenhuma configuração manual necessária.

A lista de desejos é esta:

  • uma configuração para o jackd que "simplesmente funciona" fora da caixa
  • para todas as contas de usuário sem privilégios
  • que não bloqueia o PulseAudio / ALSA no mesmo sistema
  • em um Ubuntu padrão (e, se possível, em um Debian padrão e Raspbian também)
  • e as teclas de acesso padrão do mixer de áudio e do controle de volume continuam funcionando

Isso existe mesmo?

Existe um .deb para isso (ou pode ser feito um .deb) que os usuários podem apenas instalar para configurá-lo dessa maneira?

    
por hez 04.12.2015 / 11:16

1 resposta

3

Li os comentários do Takkat e pode ser que esteja tudo bem para você:

  • De aqui , instale " pulseaudio-module-jack "edite /etc/pulse/default.pa ( sudo gedit /etc/pulse/default.pa ): Adicione as seguintes linhas, abaixo da linha que diz #load-module module-alsa-sink
    Módulo de carga-jack-jack-sink
    Módulo de carga module-jack-source
    Em seguida, crie ou modifique .jackrc em sua casa contendo:
    /usr/bin/jackd --no-realtime -dalsa -dhw -r44100 -p1024 -n2

Reinicie o pulseaudio executando killall pulseaudio (também pare o jackd se estiver rodando killall jackd ): pulseaudio reiniciará automaticamente e o jackd também iniciará, ambos conectados corretamente para que Jackd e Pulseaudio possam ser usados ao mesmo tempo
.      (isso funciona no meu Ubuntu 14.04 pc).

  • Realtime só é necessário se você quiser baixa latência para gravação multitrack. A configuração de jackd acima produzirá latência de 21ms, o que é bom para a maioria dos programas de áudio (a latência pode ser aumentada para 2048 em vez de 1024 em.jackrc, procure em jackd --help)
    Assim você não precisa dar em tempo real acesso a usuários ,
    (Você pode ignorar os avisos se houver algum ("Não é possível usar o agendamento em tempo real")). O parâmetro -dhw deve funcionar na maioria dos PCs, mas pode ser omitido usar o dispositivo de áudio padrão ou alterado para -d hw:1,0 para usar o 2º dispositivo de áudio
  • Pode ser mais um passo se você precisar conectar manualmente jackd a entrada / saída de áudio usando "Qjackctl connect manager" (a maioria dos programas se conecta ao jackd automaticamente, neste caso não há necessidade de fazer isso): instale "jack tools" e use os comandos "jack_connect" para criar scripts dessas conexões (você também pode usar aj-snapshot para salvar e restaurar as conexões dos conectores)
por laugeo 04.12.2015 / 18:39