Eis uma forma simples e barata de ter N saídas (ou entradas) num servidor jack.
A ideia é usar algumas placas de som USB baratas e configurar o ALSA para juntá-las num interface único. Para isso usamos um ficheiro de configuração do ALSA parecido com este:
$ cat ~/.asoundrc
pcm.geral {
type multi
slaves.a.pcm hw:0
slaves.a.channels 6
slaves.b.pcm hw:1
slaves.b.channels 2
slaves.c.pcm hw:2
slaves.c.channels 2
# 6 canais da placa 1
bindings.0.slave a
bindings.0.channel 0
bindings.1.slave a
bindings.1.channel 1
bindings.2.slave a
bindings.2.channel 2
bindings.3.slave a
bindings.3.channel 3
bindings.4.slave a
bindings.4.channel 4
bindings.5.slave a
bindings.5.channel 5
# 2 canais da placa 2
bindings.6.slave b
bindings.6.channel 0
bindings.7.slave b
bindings.7.channel 1
# 2 canais da placa 3
bindings.8.slave c
bindings.8.channel 0
bindings.9.slave c
bindings.9.channel 1
}
ctl.geral {
type hw
card 0
}
Cheguei a esta configuração com base neste tutorial.
Estou a usar esta configuração num portátil, usando a placa interna (que tem 6 canais) e mais duas placas de som USB simples só com 1 entrada e 1 saída, e apenas aproveito as saídas. A mesma ideia podia servir para ter N entradas para gravação de várias fontes (para uma banda, por exemplo).
Não tomei atenção à latência do sistema, mas isto não pretende ser algo que compita com placas dedicadas de som de N entradas e saídas, mas que custam várias centenas ou alguns milhares de euros. Potencia porém quem se queira aventurar no assunto e começar a aprender, mas tenha poucos recursos para investir em equipamento e já tenha um computador relativamente recente.
Com os circuitos simples que estas placas têm é possível também sincronizá-las, soldando ligações do cristal de uma das placas para as outras. Um tutorial a abordar esta modificação pode ser encontrado aqui. Isto será mais importante na gravação de áudio para garantir que a sample rate é igual para todas as origens de áudio.
Depois a partir daqui com o jackd a correr poderão ser necessários alguns ajustes para tudo funcionar bem. Não experimentei com o kernel rt, mas uso permissões de rt para o áudio no limit.conf:
@audio - rtprio 99 @audio - nice -10 @audio - memlock 512000
Para arrancar o jackd uso o seguinte .jackdrc:
/usr/bin/jackd -R -m -dalsa -P -dgeral -r48000 -p1024 -n2 -m
De notar que uso a opção -P para só usar o playback, já que não configurei a captura das placas no ficheiro de configuração do ALSA.
Isto permite usar o mixxx com várias placas de som, basta usar uma versão com suporte para o jack e configurar o master para os canais 6-7 e o monitor para os canais 8-9, para neste exemplo usar as 2 placas externas. Podendo fazer a mistura directamente no mixxx ou usando uma mesa de mistura externa.
Terei que experimentar melhor para saber se este sistema é minimamente estável, mas para quem quer começar a aprender técnicas de DJ ou a criar alguma coisa com os sequenciadores e sintetizadores que suportem o jackd tendo a possibilidade de monitorizar algumas dessas aplicações, este sistema pode ser um ponto de partida.
Actualmente as aplicações que estou a usar com este sistema são o seq24 (sequenciador) a activar o hydrogen (drumbox com samples), o zynaddsubfx (sintetizador multi-canal, polifónico e com efeitos) e o nekobee (emulador da 303), o som destas 3 aplicações entra no jackeq (mesa de mistura virtual com equalizador e 4 canais), o monitor deste liga a uma placa externa e o master entra no jamin (equalizador e compressor). Do jamin sai para a placa principal que liga ao sistema de som, ou uso o timemachine para gravações. Tudo isto é ligado com a ajuda do patchage. Cheguei a usar o qjackctl mas o patchage suporta o lash e tem um interface mais simples.
Estas aplicações têm quase todas suporte para o gestor de sessão lash, o que simplifica a preparação do sistema quando queremos voltar a um estado usável, ou à última configuração. Além disso permite configurar várias sessões com diferentes aplicações. As aplicações sem suporte para o lash (jackeq, jack-dssi-host para correr o nekobee e o jamin) podem ser arrancadas com o lash_wrap para ficarem associadas à sessão. Algumas configurações podem não ficar guardadas, mas na globalidade funciona suficientemente bem.
Com várias aplicações e tantos controlos, sinto que o rato se torna um bocado ineficiente… mas com a ajuda de vários desktops virtuais e como a máquina é suficientemente rápida, o compiz também dá alguma ajuda com os plugins cube, expo e scale, por exemplo. Tenho que experimentar isto com o whiteboard para o wiimote quando tiver acesso a um projector… 😎 Não sei se seria funcional, mas não deixa de ser uma ideia engraçada. Os controladores nano da Korg também parecem ser uma alternativa de baixo custo para tornar o sistema mais fácil de gerir.
Para quem gosta de estilos de música em que os graves reinam, uns auscultadores com boa reprodução costumam ser difíceis de encontrar. Normalmente porque os drivers são compreensivelmente pequenos (o tempo da boombox no ombro não se avizinha novamente) e têm pouca ou quase nenhuma deslocação.
Se a qualidade é sequer próxima dos AKG? Nop. Como já sabia (de ter lido opiniões de outras pessoas), falham na reprodução de frequências médias-altas, ou seja, o som podia ser um pouco mais límpido, problema que se pode minimizar com alguma equalização (são para usar ao computador, com a implementação do
O sistema de filtragem passa baixo activo usa uma pilha AA, pode ser desactivado e tem regulação da quantidade de vibração (que pode ser afinada com equalização na fonte). Infelizmente não tem aviso (um LED, por exemplo) de necessidade de carregar a pilha (a que vem não é recarregável, mas trocá-la por uma que seja é obrigatório :P), mas quando deixar de tremer logo se percebe. 🙂