segunda-feira, 16 de julho de 2007

Ouvir músicas de outro computador da rede sem interrupções

...sem ter de se recorrer ao streaming.


Esta solução também parece resolver alguns dos problemas de 'saltos' entre músicas, que não se deviam notar quando há transições de faixas e a música não pára, mas nos mp3 ouve-se um pequeno 'salto'.



Quando se tem outro computador na rede e nesse computador estão os mp3 que se quer ouvir, torna-se, no mínimo, frustrante tentar ouvi-los através de uma rede lenta (p. ex., wireless), com um player comum e sem mais configurações adicionais. As interrupções tornam-se irritantes e as mudanças de música são sempre uma espera que parece interminável.

# apt-get install audacious audacious-crossfade
No audacious, ir às Preferences -> Audio e em "Current output plugin", escolher o "Crossfade Plugin".
Clicar em "Output Plugin Preferences" e no separador "Crossfader", desactivar todos os efeitos de transições, paragem, etc. (todos com a transição em "None (gapless/off)").
Para os efeitos de "Automatic songchange" e "Manual songchange", escolher "Simple crossfade". O valor para o "Length (ms)", assim como o valor para o "Mixing buffer size (ms)" depende de alguns factores.

O "Mixing buffer" é o buffer principal, que determina a quantidade do ficheiro que já foi transferida e que está pronta a ouvir. Quando este buffer enche, a transferência pára. Enquanto não está cheio, continua a ser feito o download da música.
Quanto maior for este buffer, melhor serão suportadas oscilações na velocidade da rede, falhas na ligação, etc. Se se tiver uma ligação lenta, e este buffer for colocado no seu valor máximo (60000ms = 60 segundos), poder-se-á ouvir algumas músicas com um bitrate elevado sem interrupções. O problema é que isso poderá não durar muito, se a rede continuar instável durante muito mais do que esses 60 segundos.
De notar que é também necessário indicar nas Preferences -> Audio, o tamanho do "Output Buffer", que deverá ser maior ou igual ao indicado no plugin. Quanto maior for este buffer, maior será também o tempo durante o qual o interface gráfico do audacious dirá que a música já parou, mas em que se continua a ouvir tocar.
Estes valores podem e devem ser adaptados empiricamente conforme a necessidade/qualidade da ligação observada.

Algumas conclusões importantes:
Velocidade máxima suportada pela rede -> bitrate máximo audível sem quaisquer interrupções, do princípio ao fim
20~30kB/s -> 192kb/s
40~45kB/s -> 256kb/s
50+kB/s -> 320kb/s
De notar que quanto maior o tamanho do buffer, mais tempo da música será possível ouvir até que haja nova interrupção, qualquer que seja a velocidade da ligação.

Para bitrates variáveis (VBR), depende muito dos valores entre os quais os bitrates variam. Uma ligação que aguente 50kB/s é mais que suficiente para nunca se ter interrupções na audição. No entanto, 30kB/s pode chegar, uma vez que as alturas em que a música requer menos bit/s podem compensar com as alturas em que requer mais.


O "Crossfade Buffer Monitor" dá uma boa indicação do estado do buffer e daquilo que este plugin está a fazer, em tempo real. Pode (e deve) ser activado em Preferences -> Audio -> Output Plugin Preferences, no separador "Advanced", em "Show Buffer Monitor".


Se a ligação suporta as velocidades indicadas acima, e se se pretendem ouvir músicas com os bitrates correspondentes, ter os dois buffers com 15 segundos cada um (15000ms) costuma ser suficiente.
Se a ligação está àquem destas velocidades, o melhor a fazer (pelo menos, ainda não descobri uma solução melhor) é aumentar os buffers para valores elevad(íssim)os. 60 segundos para o "Mixing Buffer" e um exagero (p.ex., de 10 minutos = 600000 milisegundos) para o "Output Buffer" (haja RAM...). A técnica que uso normalmente é colocar a música a tocar, colocar logo na pausa, esperar até que os buffers encham e depois ouvir... Esperando que os buffers não esvaziem totalmente. Convém observar o monitor para ter uma ideia do que está a acontecer.
Importante também é colocar a música na pausa antes de os buffers esvaziarem. Caso contrário, o interface do audacious irá bloquear durante muito tempo, até que desista de tocar e passe à música seguinte...
Ainda não consegui encontrar uma lógica que permitisse encontrar uma configuração definitiva para ouvir uma série de mp3 com bitrates elevados, do início ao fim, sem quaisquer interrupções.


De qualquer maneira, nada como experimentar e tentar encontrar a configuração ideal!


Na Wikipédia há uma página com informações sobre Gapless Playback.

Sem comentários: