Mixing barato em Linux – 3

Claro que uma solução ainda melhor, e explicada de forma satisfatória neste artigo no Viva Linux, é conjugar o XMMS com o dbmix.

Ganha-se um interface simples e eficaz com controlo de volume, pitch, suporte de sampling e N canais distintos e também controlo de playlists unificado. Está em banho maria desde 2002, mas funciona. Portar isto para gtk2 e rejuvenescer o interface não era mal pensado… 🙂

Também tem suporte para cueing numa placa de som independente.

No meu setup não funciona bem ao nível do hardware. Mas calculo que seja uma conjugação de factores, ter uma placa no bus USB, mau suporte da placa onboard e da USB, problemas de latência, etc.

Será que a libertação da versão em condições do OSS vai mudar o panorama actual?

Mixing barato em Linux – 2

Melhor que usar o XMMS para este fim, talvez seja usar o Audacious. Baseado no XMMS tem um feeling mais actualizado e parece-me que o desenvolvimento continua. As notícias no site do XMMS parecem ser actualmente anúncios cheios de sarcasmo quando uma distribuição qualquer deixa de ter o XMMS nos repositórios… 😛

Podemos usar o truque que usei para o XMMS de redefinir a variável de ambiente $HOME para ter configurações independentes para cada player, mas no Audacious não é assim tão simples, porque algumas coisas ficam na directoria principal de configuração, como as presets de equalização, mas isso não é algo negativo, já que basta definirmos as que pretendemos usar e ficam disponíveis nos dois players e no player principal.

Além disso não existe opção de várias instâncias nas configurações do Audacious, mas podemos editar o ficheiro de configuração para obter essa funcionalidade.

As minhas configurações estão disponíveis aqui.

O mais certo é ser necessário reconfigurar a posição de cada janela, etc, depois de correr o script de arranque das duas instâncias.
Da próxima vez que o script for lançado estará tudo como ficou, inclusive as posições das janelas.

Quanto a equalização as principais presets serão o corte das frequências agudas, graves e médias (vozes e idênticos). Eu estou a usar este ficheiro que pode ser copiado para $HOME/.audacious/eq.preset.

Mixing no Linux com Python, GTK2 e GStreamer

Graças ao esforço do Jono em incentivar quem pegue nesta matéria, estive a brincar com os exemplos dele, no Eclipse+PyDev (entretanto fartei-me das manias do Eclipse e passei a usar o PyPe) e no Glade.

Fiz um simples player com controlo de pitch, ganho de volume e bending. 🙂

screenshot-pydj.png

O código foleiro em Python está aqui, e o interface glade, aqui.

Entretanto refiz o GUI e estou a tentar fazer alguma coisa de jeito e usável (o código actual está aqui). 🙂

screenshot-pydjpy.png

Com o poder que os pipelines do GStreamer permitem, talvez consiga aquilo que pretendo, um player simples com controlo de pitch e possibilidade de definir as opções do sink para poder usar duas placas de som independentes. Até os kill switches devem ser simples de implementar (adicionando um bpwsinc ao pipeline ou algo do género), só não sei como será a latência… 😛

Alteração ao GUI para os kill switches:

screenshot-pydjpy-1.png

Muito obrigado Jono!

Mixing barato em Linux – 1

Este será o primeiro do acompanhar de uma ideia que andava há vários meses para experimentar, usar placas de som baratas USB para misturar música.

usb_audio.pngComecei por adquirir um par de placas USB baratas. Em Linux funcionam na perfeição, são do mais simples possível, uma saída e uma entrada. Tive alguns problemas de latência se usar ambas num hub USB, mas este hub não tem alimentação, nem tenho a certeza que suporte a versão 2.0 do protocolo USB, mas poderá ser que o tráfego no barramento USB seja demasiado para duas placas em simultâneo. 🙂

Tenho para aqui uma mesa de mistura com a minha idade, mas que já tem crossfader, dado que a equalização será feita por software também é desprezável o facto de não haver equalização por canal na mesa.

Para já testei ambas as placas a funcionar com o xmms e corre tudo sem problemas, dado que as ligue a portas USB independentes sem passar pelo hub. A minha ideia era usar o mixxx, mas ainda não suporta várias placas de som… por isso vou para já fazer uns testes com o mais que testado xmms.:)

Para poder ter duas instâncias de xmms sem partilha de definições, configurei o xmms como queria (activei o suporte para múltiplas instâncias):

screenshot-preferences.png

Depois criei uma pasta onde vou guardar as definições de cada instância, chamei-lhe xmms. O xmms recorre apenas à variável $HOME para saber onde está o directório onde guardará as suas definições, daí podermos mudá-lo a nosso favor.

Criei o seguinte script bastante simples para gerir o arranque das duas instâncias e no meu caso chamei-lhe launch_xmms:

#! /bin/bash
# Player 1
export HOME=$PWD/player1
xmms&

# Player 2
export HOME=$PWD/player2
xmms&

Dei-lhe permissões de execução com

chmod +x launch_xmms

Depois criei dois directórios, player1 e player2, para onde copiei a configuração original do xmms:

cp -r $HOME/.xmms player1 && cp -r $HOME/.xmms player2

Agora posso correr o script de arranque e tenho duas instâncias do xmms com definições independentes entre si e do xmms normal:

./launch_xmms

Agora em cada instância defino a placa de saída, hw:1,0 e hw:2,0:

screenshot-alsa-driver-configuration.png

Agora falta apenas ligar as placas à mesa e testar. Com o suporte de filtros LADSPA do xmms posso usar os filtros disponíveis para esta framework no xmms, inclusive controlo de pitch, além de haver um plugin também para esse fim.

Nos próximos posts pretendo documentar melhor todo o processo com mais imagens e fotografias e talvez alguns samples do resultado.

Aspecto exemplificativo:

screenshot.png