O André Magoo (André Alves Pereira) ensina no tutorial abaixo como configurar sua estação de trabalho Linux para uso como estação de trabalho com áudio digital (em inglês Digital Audio Workstation - DAW).
Parece trabalhoso, mas aparentemente os músicos profissionais estão dispostos a grandes esforços para obter condições perfeitas de seu equipamento de áudio ;-)
André Magoo (André Alves Pereira)
andre.pereira@ig.com.br
Este documento tem por finalidade mostrar como configurar sua estação de trabalho Linux para uso como estação de trabalho com áudio digital (em inglês Digital Audio Workstation - DAW). Estarei usando com distribuição o Slackware 9 pela sua simplicidade e versatilidade (não confunda simplicidade com facilidade...) porém creio que com poucas ou até nenhuma adaptação este documento possa ser aplicado a qualquer outra distribuição. Nada do que está aqui foi criado por mim, estou apenas juntando em um único documento informações que garimpei no último ano pela internet. Espero que seja útil para alguém... Estou também acreditando que você seja pelo menos um usuário intermediário, não entrando em detalhes de como coisas básicas devem ser feitas, tais com o criar diretórios, por exemplo.
Abaixo segue uma lista dos softwares que serão utilizados no processo:
a) Kernel 2.4.21 com os patche de baixa latência de Andrew Morton;
b) ALSA - Advanced Linux Sound Architecture;
c) JACK - Jack Audio Connection Kit;
d) LADSPA - Linux Audio Developer's Simple Plugin API;
e) Qjackconnect - Audio patchbay para o JACK;
f) Kaconnect - MIDI Patchbay para ALSA;
Por enquanto é só... mais tarde talvez coloque mais algo ;-)
a) Kernel (http://www.kernel.org)
Vamos começar pelo kernel. Baixe-o (http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.21.tar.bz2) e também o patch de baixa latência (http://www.zip.com.au/~akpm/linux/2.4.21-low-latency.patch.gz). Copie os dois arquivos para /usr/src e siga os passo abaixo:
$ cd /usr/src
$ tar jxvf linux-2.4.21.tar.bz2
<várias mensagens>
$ gunzip 2.4.21-low-latency.patch.gz
<várias mensagens>
$ rm linux
$ ln -s linux-2.4.21 linux
$ cd linux
$ cp /boot/config-ide-2.4.20 .config
$ patch -p1 < ../2.4.21-low-latency.patch
<várias mensagens>
$ make menuconfig
Agora vamos fazer alguns acertos na configuração do kernel antes de compilá-lo. Vá em Processor type and features, marque Low latency scheduling e Control low latency with sysctl. Acerte também a opção Processor family para o seu tipo de processador (Athlon/Duron/K7 no meu caso...). Pressione escape até voltar a tela principal e vá agora na opção Sound. Desmarque todas as opções com excessão de Sound card support. Isso é necessário porque não usaremos mais o OSS como API de som e sim o ALSA que deverá ser compilado e instalado mais tarde. Pressione a tecla escape até que ele pergunte se que salvar a configuração do kernel, responda yes. Edite o arquivo Makefile e altere a seguinte linha:
EXTRAVERSION =
Para:
EXTRAVERSION = -ll
Edite o arquivo /usr/src/linux/include/linux/capabilities.h e altere a linha:
#define CAP_INIT_EFF_SET to_cap_t(~0&~CAP_TO_MASK(CAP_SETPCAP))
para:
#define CAP_INIT_EFF_SET to_cap_t( ~0 )
E também a linha:
#define CAP_INIT_INH_SET to_cap_t(0)
para:
#define CAP_INIT_INH_SET to_cap_t( ~0 )
Estas alterações são necessárias para que se possa ter acesso as funções de tempo-real do kernel como usuário comum. Mais informações em http://www.tml.hut.fi/~tilmonen/givertcap/
Grave as alterações e saia. Novamente no prompt execute os seguintes comandos:
$ make dep
<várias mensagens>
$ make bzImage
<várias mensagens>
Isso deve criar o núcleo básico do kernel. Vamos copiá-lo para o local correto:
$ cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.4.21-ll
Vamos agora compilar os módulos:
$ make modules
<várias mensagens>
Módulos criados. Instalando:
$ make módules_install
<várias mensagens>
Agora vamos criar uma entrada no lilo para este novo kernel. Edite o arquivo /etc/lilo.conf e adicione as seguintes linhas no final:
image = /boot/vmlinuz-2.4.21-ll
root = /dev/hdxx
label = Linux-21-ll
read-only
Onde hdxx é a partição onde sua partição root está. Agora o básico:
$ lilo
<algumas mensagens>
Pronto seu novo kernel já esta pronto. Reincie a máquina e escolha a nova entrada que foi adicionada ao lilo para carregá-lo. Uma observação... se você tinha adicionado módulos extras ao seu kernel terá que faze-lo denovo, por exemplo, drivers de vídeo da Nvidia terão que ser reinstalados. No entanto deve ser algo simples, basta seguir os mesmos passos que você havia seguido anteriormente para instalá-los.
b) ALSA (http://www.alsa-project.org)
Kernel resolvido vamos agora para o ALSA. Baixe os pacotes mais atualizados em http://www.alsa-project.org que no momento que escrevi este domumento são:
ftp://ftp.alsa-project.org/pub/driver/alsa-driver-0.9.6.tar.bz2
ftp://ftp.alsa-project.org/pub/lib/alsa-lib-0.9.6.tar.bz2
ftp://ftp.alsa-project.org/pub/utils/alsa-utils-0.9.6.tar.bz2
ftp://ftp.alsa-project.org/pub/tools/alsa-tools-0.9.6.tar.bz2
ftp://ftp.alsa-project.org/pub/oss-lib/alsa-oss-0.9.6.tar.bz2
Na verdade os dois últimos provavelmente não serão necessários. Mas se tiver disponibilidade de banda, baixe-os e deixe por aí, um dia pode precisar dele :-)
Continuando. Descompacte o primeiro pacote e entre no diretório criado:
$ tar jxvf alsa-driver-0.9.6.tar.bz2
<várias mensagens>
$ cd alsa-driver-0.9.6
Compilando:
./configure -with-oss=yes -with-sequencer=yes -enable-optimize
<várias mensagens>
make
<várias mensagens>
make install
<várias mensagens>
Compilado e instalado. Em caso de dúvidas quanto as opções usadas no ./configure use ./configure -help para uma explanação sobre elas. Para configurar, siga com os comandos:
$ cd utils
$ ./alsaconf
Este é um script de configuração do ALSA . Sempre funcionou perfeitamente, mas em caso de problemas entre em contato comigo. Vamos agora para o segundo pacote:
$ cd ../..
$ tar jxvf alsa-lib-0.9.6.tar.bz2
$ cd alsa-lib-0.9.6
$ ./configure -prefix=/usr -enable-optimize
<várias mensagens>
$ make
<várias mensagens>
$ make install
<várias mensagens>
Tudo pronto. Proximo pacote:
$ cd ..
$ tar jxvf alsa-utils-0.9.6.tar.bz2
$ cd alsa-utils-0.9.6
$ ./configure -prefix=/usr -enable-optimize
<várias mensagens>
$ make
<várias mensagens>
$ make install
<várias mensagens>
Feito. Para evitar complicações, reinicie o computador para fazer uma carga limpa do sistema com os novos módulos. Após a carga vá no prompt e digite:
$ alsamixer
Deve aparecer um mixer para você acertar o volume de sua placa de som, que por padrão vem muda. Feitos os ajustes saia do programa com ctrl+c e grave as alterações feitas com:
$ alsactl store
Algumas observações. Algumas placas profissionais de áudio (tais como Echo LAYLA, Gina, Mia, Midiman 1010, 1010LT, entre outras) podem precisar de procedimentos especiais para instalação e configuração de seus módulos. Em caso de dúvida dê uma olhada em (http://www.alsa-project.org/alsa-doc/) onde tem uma tabela das placas suportadas e links para instruções de como é feita a instalação das mesmas. Atenção! Para placas comuns isto não é necessário (tais como SBLive, Audigy, VIA86xxx, etc). Feita a configuração do ALSA.
c) JACK (http://jackit.sourceforge.net)
Na verdade todas aquelas modifições feitas no kernel foram para que este cara funcione direito. O JACK é um servidor de baixa-latência e banda larga que permite a comunicação entre aplicações de áudio que é o coração de nossa DAW. Só para comparação ele seria comparado ao ReWire da Steinberg (Windows/Mac) com a vantagem que permite a comunicação entre processos totalmente independentes, não possui limitação de números de canais (o ReWire só vai até 64...) e, melhor de tudo, é livre ;-)
Antes de instalar o JACK precisamos de uma biblioteca, a libcap. Baixe-a:
http://www.kernel.org/pub/linux/libs/security/linux-privs/kernel-2.4/libcap-1.10.tar.bz2
E o de sempre:
$ tar jxvf libcap-1.10.tar.bz2
$ cd libcap-1.10
$ make
$ make Install
Edite o arquivo /etc/fstab e adcione as seguintes linhas:
shmfs /dev/shm shm defaults 0 0
none /mnt/ramfs tmpfs defaults 0 0
Não esqueça de cria o diretório /mnt/ramfs... Depois:
mount -a
Bem vamos lá. Voce pode baixar a ultima versão (http://prdownloads.sourceforge.net/jackit/jack-audio-connection-kit-0.75.0.tar.gz) e usá-la, porém recomendo o uso da versão CVS (devido ao fato das aplicações linux estarem em estágio desenvolvimento muito ativo podem haver melhoramentos significativos de um dia para o outro. Podem também ocorrer grandes acidentes de um dia para o outro, portanto deixem aquela querida senhora for a disso por favor :-)) logo vou começar usando a versão CVS como referência, mesmo porque a partir de determinado ponto o procedimento é o mesmo para as duas versões. Baixe o programa:
$ cvs -d :pserver:anonymous@cvs.jackit.sourceforge.net:/cvsroot/jackit login
<enter para password>
$ cvs -d :pserver:anonymous@cvs.jackit.sourceforge.net:/cvsroot/jackit -z3 co jack
<várias mensagens>
Agora vamos compilá-lo:
$ cd jack/
$ ./autogen.sh
Bom, a partir daqui o procedimento é o mesmo para as duas versões:
$ ./configure -prefix=/usr -enable-capabilities -enable-optimize --with-default-tmpdir=/mnt/ramfs
<várias mensagens>
$ make
$ make install
Pronto para o uso. Inicie o serviço com:
jackstart -a -R -d alsa -d hw:0 -p 512 -r 48000
Feito. Para maiores informações leia:
http://jackit.sourceforge.net/docs/faq.php
http://www.djcj.org/LAU/jack/
d) LADSPA (http://www.ladspa.org)
Esta é a API usada para desenvolvimento de plugins para aplicações de áudio. Seria um equivalente do VST da Steinberg ou DirectX do Windows. Sua vantagem está na sua implementação é muito simples pois sua SDK compões-se de apenas um arquivo header (ladspa.h) dez plugins de exemplo e três programas utilitários. Para uma melhor apresentação, leia:
http://linux.oreillynet.com/pub/a/linux/2001/02/02/ladspa.html
Baixe o SDK em http://www.ladspa.org/download/ladspa_sdk_1.12.tgz e execute os comandos abaixo:
$ tar zxvf ladspa_sdk_1.12.tgz
$ cd ladspa_sdk/src
$ make
$ make install
Edite o arquivos /etc/profile e acrescente a seguinte linha:
export LADSPA_PATH=/usr/local/lib/ladspa/
Pronto. Esta é só a API. Para usá-la são necessários plugins e programas hosts (que aceitem os ditos plugins). Mais a frente darei exemplos destes programas. Quanto aos plugins abaixo segue uma lista de excelentes opções (outras nem tanto :-)):
Hum... Sempre instalo-o... deve ter algo de bom :-)
http://www.ladspa.org/download/cmt_lib_1.15.tgz
Speak simulator. Muito bom!
http://quitte.de/dsp/unmatched.html
Preamp para guitarra baseado no Fender 5F4. Se usado com o Speak Simulator o resultado é incrível!
http://quitte.de/dsp/preamp.html
Excelente coleção de plugins:
http://plugin.org.uk/
Tem um chorus legalzinho...
http://alsamodular.sourceforge.net/MCP-plugins-1.2.tar.bz2
Desculpe puxar a sardinha pro meu lado. É que sou guitarrista então estou mais apto a opinar a este respeito, porém neste conjunto existem plugins excelentes para qualquer uso... Constantemente estão aparecendo coisas novas na net. Pesquise frequentemente e você terá felizes surpresas!
e) Qjackconnect (http://www.suse.de/~mana/jack.html)
Este programa é um patchbay (painel de conexões) de áudio para o JACK. Baixe o programa e execute os comandos abaixo:
$ tar jxvf qjackconnect-0.0.3b.tar.bz2
$ cd qjackconnect-0.0.3b
$ make -f make_qjackconnect
$ cp qjackconnect /usr/bin/
f) Kaconnect (http://www.suse.de/~mana/kalsatools.html)
Este é um patchbay MIDI para ALSA. Na verdade é uma GUI para o aconnect. Baixe-o:
ftp://ftp.suse.com/pub/people/mana/kalsatools-current/kaconnect-1.1.1.tar.bz2
Vamos nós outra vez...
$ tar jxvf kaconnect-1.1.1.tar.bz2
$ cd kaconnect-1.1.1
$ make -f make_kaconnect
$ cp kaconnect /usr/bin/
Feito isso seu Linux está agora pronto para funcionar como estação de trabalho para áudio digital. Seguidos estes procedimentos você conseguirá latências muito baixas (no meu Athlon XP1800+ com 384Mb de RAM os xruns ocorrem com tempos máximos de 0,6ms!). Agora só faltam os programas propriamente dito, então abaixo vai uma lista com algumas sugestões que eu costumo usar. Se houver interesse da comunidade posso escrever outro documento para mostrar com instalá-los :^)
- Jack-rack (http://pkl.net/~node/jack-rack.html)
Rack de efeitos que utiliza JACK e LADSPA, é o que eu uso atualmente com minha guitarra. O resultado é realmente impressionante, acreditem!
- Ardour (http://ardour.sourceforge.net/)
Software de áudio multipistas. Impressionante! Dê uma lida na página de características dele (http://ardour.sourceforge.net/features.html). Detalhe, não são características pretendidas, é o que ele já faz!
- ZynAddSubFX (http://zynaddsubfx.sourceforge.net/)
Software de síntese de áudio. A qualidade é muito boa e também é bonito ;-)
- Rosegarden-4 (http://www.all-day-breakfast.com/rosegarden/)
Software Sequenciador de áudio e MIDI, editor de partituras. Acho que ainda falta algo, mais tá chegando lá...
- Muse (http://muse.seh.de/)
O mesmo que o anterior...
- Sweep (http://www.metadecks.org/software/sweep/)
Software para edição de áudio com suporte à LADSPA. Realmente bom.
Segue algora alguns links de onde tirei as informações que coloquei neste documento:
http://www.kernel.org
http://www.alsa-project.org
http://linux-sound.org/
http://jackit.sourceforge.net/
http://www.linuxdj.com/audio/lad/resourceslatency.php3
http://www.zip.com.au/~akpm/linux/schedlat.html
http://www.linuxdj.com/audio/lad/
Espero não ter esquecido ninguém... Bom, qualquer coisa estamos aí!
André Magoo (André Alves Pereira)
andre.pereira@ig.com.br
» Postado por: Rafael Goulart em agosto 14, 2003 08:30 AM, 200.217.64.:
Ei, valeu mesmo.
Acho que vou tentar um dia desses faver um Kurumin Audio... Mas antes vou estudar um pouco de música... Quanto aos softwares, recomendo o Ardour. O Rosegarden, como foi dito, está chegando lá.
» Postado por: André Magoo em agosto 14, 2003 11:41 AM, 200.141.126:
Se está pensando em mexer com MIDI, recomendo o Muse. Estive usando aqui e parece bem melhor que o Rosengarden...
» Postado por: Jean Silva em agosto 14, 2003 05:36 PM, 200.153.241:
Parabéns pelo tutorial! Gostaria de convidá-los a participar da nossa lista, onde discutimos projetos de produção de áudio baseados em Linux.
http://br.groups.yahoo.com/group/linuxaudio/
» Postado por: adell em agosto 14, 2003 06:39 PM, 200.203.227:
Rafael, caso tenha capacidade para tal (eu não a tenho) seria otimo, algo para audio direto do cd, ou até mesmo instalado na maquina mesmo, assim como para video seria muito interessante.
» Postado por: Luciano Giordana em agosto 14, 2003 07:23 PM, 200.246.46.:
Olá,
gostaria somente de sugerir uma adição à lista de aplicativos. o Protux
Apesar dele ser um projeto iniciado aqui no brasil a quase 3 anos, ele nao é muito conhecido por aqui,
mas pelos nossos registros, já totalizamos quase 50 mil
downloads desde o inicio do projeto.
Algumas criticas de alguns sites, como o freshmeat, o icewalkers e o proprio savannah apontaram o Protux como o 2a lugar em DAW, perdendo apenas para o Ardour.
A equipe de desenv. do Protux e' composta por 12 desenvolvedores, que também são produtores de audio profissionais, sendo alguns deles engenheiros de som.
Alem disso, para quem gosta do emacs, o Protux é todo orientado a teclado.
abraços e parabéns pelo tutorial
» Postado por: Da Styler em agosto 20, 2003 04:31 PM, 200.253.253:
Parabens pelo artigo, André!!
Muito bom mesmo!!!
Eu gostaria de indicar uma suite completa de softwares, semelhante com o que voce descreveu neste artigo, e funciona especificamente para o Red Hat.
Chama-se Planet CCRMA, e ele cria um kernel de baixa latencia como voce descreveu aqui.
Mais infos (em INGLES):
» Postado por: André Magoo em agosto 22, 2003 12:29 PM, 200.149.187:
É legal, mas eu recomendo o procedimento que eu escrevi pois por melhores que sejam os RPM's eles não vão estar otimizados para sua máquina... por isso que eu escolhi o Slackware como distro usada. Ela "força" o usuário a compilar os pacotes e subsequentemente otimizar os aplicativos ao máximo...
» Postado por: Leiza Franco em novembro 20, 2003 04:34 PM, 200.171.58.:
Sou aluna da ETE Philadelpho Gouvea Netto, estou cursando telecomunicacoes, e estou precisando de informacao sobre o uso de DSP(processamento digital de sinais)na masterizacao. Queria contar com voces para o envio de informacoes a respeito deste assunto
» Postado por: Aline M. Marques em novembro 20, 2003 04:46 PM, 200.171.58.:
Sou aluna do ETE Philadelpho Gouvea Netto, de Sao Jose do Rio Preto, estou cursando curso de telecomunicacoes, e estou fazendo um trabalho sobre o uso de DSP(Processador Digital de Sinais)
na masterizacao, remasterizacao e pre-masterizacao, e gostaria de contar com a ajuda de voces para o envio de informacoes.
deste ja meus agradecimentos.
Aline M. Marques
» Postado por: Bebeto_maya em janeiro 23, 2004 05:07 AM, 200.97.186.:
Eu queriarecomendar aqui o Audacity, simples editor de audio, mas que e capaz de editar sons com extrema precisao em mais de 40canais.Tem muitos plugins tambem.Uso ele e ja fiz trabalhos profissonais com Samples, Riffs. Inclusive, simulando uma banda completa! ! !Ele e muito bom pra juntar todo o material, editar e mixar! ! !
» Postado por: epichin em janeiro 30, 2004 12:59 PM, 200.216.117:
minha duvida ,,sao as seguintes ,,mexo com audio digital ..faço gravaçoes com softwares do windows,,como cubase e etc..o linux tem suporte para placas de som profissionais ? visto que a qualidade de uma gravacao tambem é propiciada pela qualidade da placa e seus conversores A/D .e qual distribuicao linux que mais se encaixa para esse tipo de serviço...obs,,nao seco nada de linux,,estou começando e me enteressar a pouco tempo . vou ate fazer um curso ,,etc...quem pode me dar alguma informacao ?
» Postado por: Dorival Junior em fevereiro 22, 2004 12:07 PM, 200.195.71.:
Parabéns pelo artigo. Estou a procura de um destes a muito tempo, e só agora consegui!!! Se possível, coloque um artigo sobre a instalacao dos programas de audio sim !!!! até mais ,valeu
» Postado por: Tamiris em agosto 22, 2004 10:27 AM, 200.175.37.:
tenho que fazer um trabalho sobre as etapas de remasterizacao de um software livre, no caso o linux..
se alguem compreender do assunto, mande um e-mail para mim..
desde ja grata
» Postado por: dani em outubro 8, 2004 12:13 PM, 62.81.151.1:
seria posible precisar de esta informacion en español!
gracias
O Arquivo Histórico do BR-Linux.org mantém no ar (sem alteração, exceto quanto à formatação) notícias, artigos e outros textos publicados originalmente no site na segunda metade da década de 1990 e na primeira década do século XXI, que contam parte considerável a história do Linux e do Open Source no Brasil. Exceto quando indicado em contrário, a autoria dos textos é de Augusto Campos, e os termos de uso podem ser consultados na capa do BR-Linux.org. Considerando seu caráter histórico, é provável que boa parte dos links estejam quebrados, e que as informações deste texto estejam desatualizadas.