O Linux é um sistema operacional bastante abrangente (assim como o Windows e o MacOS) e uma de suas infinitas possibilidade é a produção musical.
Através deste guia eu vou compartilhar alguns conhecimentos que obtive ao longo da última década (ou um pouco mais de tempo).
O ponto de partida, sem dúvidas, é escolher uma distribuição que seja suficientemente completa e tenha o suporte necessário de tudo que vamos precisar pra trabalhar com música.
A minha escolha da vez é o Debian.
Se você gosta deste tema e quer conversar com outros músicos que também usam Linux, acesse o nosso grupo no Telegram.
Debian
O Debian é uma das distribuições comentadas na internet, por esse motivo atrai a atenção de muitos usuários.
Isso se dá pelo fato de que o Debian é uma das distribuições mais antigas ainda em atividade e por isso, é possível encontrar muito conteúdo sobre ele na internet.
Neste guia eu vou utilizar o ambiente gráfico KDE, mas todos os comandos indicados são compatíveis com qualquer um dos ambientes gráficos do Debian.
rtcqs
O rtcqs
é um checador de configurações do sistema, necessário pra checar se todas as configurações de desempenho já estão setadas corretamente, garantindo que o sistema tenha o máximo de desempenho possível com os programas de áudio.
As checagens indicadas se baseiam nas recomendações da Wiki do LinuxAudio.
📦 Instalação
sudo apt install pipx python3-tk
pipx install rtcqs
mkdir -p "$HOME"/.local/share/{applications,icons}
wget -qO "$HOME"/.local/share/applications/rtcqs.desktop https://github.com/autostatic/rtcqs/raw/main/rtcqs.desktop
sed -i "s@Exec=rtcqs_gui@Exec=$HOME/.local/bin/rtcqs_gui@g" "$HOME"/.local/share/applications/rtcqs.desktop
wget -qO "$HOME"/.local/share/icons/rtcqs.svg https://github.com/autostatic/rtcqs/raw/main/rtcqs_logo.svg
🔧 Configuração
sudo usermod -aG audio "$USER"
cat <<EOF |sudo tee /etc/sysctl.d/swappiness.conf>/dev/null
vm.swappiness = 10
EOF
cat <<EOF |sudo tee /etc/default/grub.d/cmdline-linux-default.cfg>/dev/null
GRUB_CMDLINE_LINUX_DEFAULT="cpufreq.default_governor=performance mitigations=off preempt=full quiet splash threadirqs"
EOF
sudo update-grub
sudo wget -qO /etc/udev/rules.d/99-cpu-dma-latency.rules https://raw.githubusercontent.com/Ardour/ardour/master/tools/udev/99-cpu-dma-latency.rules
systemctl --user disable xdg-desktop-portal
systemctl --user mask xdg-desktop-portal
sudo systemctl mask xdg-desktop-portal
udev-rtirq
O udev-rtirq
é um script que adiciona regras de gerenciamento de hardware ao sistema, que garantem alta prioridade no gerenciamento da interface de áudio.
📦 Instalação
sudo apt install build-essential git
git clone -q https://github.com/jhernberg/udev-rtirq
cd udev-rtirq
sudo make install
cd ..
rm -r udev-rtirq
XanMod
O XanMod é o núcleo de sistema recomendado para este contexto, por conter uma série de patches e otimizações que contribuem para o melhor desempenho de programas executados através do WINE, além de contribuir de forma decisiva para uma baixíssima incidência de xruns (que ocasionam artefatos sonoros, como clicks e pops no áudio) ao utilizar programas de áudio de baixa latência.
📦 Instalação
wget -cq https://dl.xanmod.org/check_x86-64_psabi.sh
chmod +x check_x86-64_psabi.sh
wget -cq --show-progress https://dl.xanmod.org/xanmod-repository.deb
sudo apt install --no-install-recommends ./xanmod-repository.deb
sudo apt update
sudo apt install linux-firmware linux-xanmod-x64$(./check_x86-64_psabi.sh|cut -d"-" -f3)
rm check_x86-64_psabi.sh xanmod-repository.deb
Cadence
O Cadence é o programa responsável por gerenciar todas as configurações de som do sistema, utilizando como base os programas JACK e PulseAudio.
Através das configurações indicadas aqui, seu sistema estará preparado pra executar o áudio com baixa latência e bom desempenho.
📦 Instalação
wget -cq --show-progress http://ppa.launchpad.net/kxstudio-debian/kxstudio/ubuntu/pool/main/k/kxstudio-repos/"$(wget -qO- http://ppa.launchpad.net/kxstudio-debian/kxstudio/ubuntu/pool/main/k/kxstudio-repos/|grep all.deb|tail -n1|cut -d '"' -f8)"
sudo apt install ./kxstudio-repos*.deb
sudo add-apt-repository -ny contrib
sudo add-apt-repository -y non-free
sudo add-apt-repository -y non-free-firmware
echo 'jackd2 jackd/tweak_rt_limits string true'|sudo debconf-set-selections
sudo apt install alsa-firmware cadence pulseaudio
sudo apt autoremove --purge qjackctl meterbridge
systemctl --user mask pipewire.service pipewire.socket
systemctl --user --now stop pipewire.service pipewire.socket
systemctl --user --now disable pipewire.service pipewire.socket
systemctl --user --now enable pulseaudio.service pulseaudio.socket
systemctl --user --now start pulseaudio.service pulseaudio.socket
pactl info|grep "Nome do servidor"
rm kxstudio-repos*.deb
🔧 Configuração
As configurações recomendadas para o Cadence podem variar um pouco de acordo com o seu hardware, vou deixar aqui configurações que funcionam bem na maioria dos hardwares atuais.
Caso você tenha baixo desempenho ou artefatos sonoros, procure alterar o valor Periods/Buffer na aba Driver, pela minha experiência, esse valor não tem um padrão claro, cada hardware precisa de um ajuste específico.
WINE TkG
O WINE é o programa responsável por disponibilizar uma camada de compatibilidade para a execução de programas do Windows no Linux, a versão TkG é compilada utilizando patches específicos para um maior desempenho, em especial o patch FSYNC.
📦 Instalação
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install q4wine wine wine32:i386 winetricks
wget -q --show-progress "$(wget -qO- https://api.github.com/repos/Kron4ek/Wine-Builds/releases|grep browser_download_url|grep staging-tkg-amd64.tar.xz|head -n1|cut -d '"' -f4)"
tar fx wine*staging-tkg-amd64.tar.xz
rm wine*staging-tkg-amd64.tar.xz
sudo mv wine*staging-tkg-amd64 /opt/wine-tkg
cat <<EOF |sudo tee /etc/environment.d/99wine.conf>/dev/null
if [ -d "/opt/wine-tkg/bin" ] ; then
PATH="/opt/wine-tkg/bin:\$PATH"
fi
export WINE_ENABLE_PIPE_SYNC_FOR_APP=1
export WINEESYNC=1
export WINEFSYNC=1
EOF
🔧 Configuração
winetricks -f -q dxvk
yabrige
O yabridge
é o programa responsável por criar links simbólicos dos plugins VST do Windows, que podem ser lidos pelos programas de áudio nativos do Linux, como REAPER, Waveform, Bitwig, entre outros.
Ele é compatível com plugins VST2 e VST3 de 32 e 64 bits.
📦 Instalação
wget -q --show-progress "$(wget -qO- https://api.github.com/repos/robbert-vdh/yabridge/releases|grep browser_download_url|head -n2|tail -n1|cut -d '"' -f4)"
tar fxz yabridge*.tar.gz
rm -r yabridge*.tar.gz
sudo mv yabridge/yabridgectl /usr/bin/yabridgectl
sudo mv yabridge/libyabridge* /usr/lib/
sudo mv yabridge/yabridge* /usr/bin/
rm -r yabridge
🔧 Configuração
mkdir -pv "$HOME"/.wine/drive_c/Program\ Files/Common\ Files/VST3
mkdir -pv "$HOME"/.wine/drive_c/Program\ Files/VSTPlugins
yabridgectl add "$HOME"/.wine/drive_c/Program\ Files/Common\ Files/VST3
yabridgectl add "$HOME"/.wine/drive_c/Program\ Files/VSTPlugins
yabridgectl sync --prune --verbose
REAPER
O REAPER é uma estação de trabalho de áudio digital, com o qual você pode produzir música, editar áudio, editar vídeo (de maneira básica) e fazer apresentações musicais ao vivo.
Os comandos indicados aqui incluem a instalação do ReaPack e da extensão SWS, além da tradução para o português brasileiro.
📦 Instalação
REAPER_VER="$(wget -qO- http://reaper.fm| grep VERSION|cut -d '>' -f2|cut -d ':' -f1|sed 's/VERSION //g')"
cd /tmp
rm -rf /tmp/*reaper* /tmp/*libSwell*
wget -q --show-progress http://reaper.fm/"$(wget -qO- http://reaper.fm/download.php|grep _linux_x86_64.tar.xz|cut -d '"' -f2)"
tar fx reaper*_linux_x86_64.tar.xz -C /tmp
sed -i 's/rmdir --/rm -rf --/g' /tmp/reaper*/install-reaper.sh
sudo /tmp/reaper*/install-reaper.sh --install /opt --integrate-desktop --quiet --integrate-sys-desktop
wget -qO libSwell.colortheme https://stash.reaper.fm/41334/libSwell.colortheme
sudo mv libSwell.colortheme /opt/REAPER/libSwell.colortheme
cd ..
cat <<EOF |sudo tee -a /usr/share/applications/cockos-reaper.desktop>/dev/null
#\n
Actions=NewProject;ShowAudioConfig;ReaMote;WhatsNew;License;
[Desktop Action NewProject]
Name=REAPER (create new project)
Name[pt_BR]=REAPER (criar novo projeto)
Exec=/opt/REAPER/reaper -new
Icon=cockos-reaper
[Desktop Action ShowAudioConfig]
Name=REAPER (show audio configuration on startup)
Name[pt_BR]=REAPER (mostrar configurações de áudio ao iniciar)
Exec=/opt/REAPER/reaper -audiocfg
Icon=cockos-reaper
[Desktop Action ReaMote]
Name=ReaMote
Exec=/opt/REAPER/reamote-server
Icon=folder-remote
[Desktop Action WhatsNew]
Name=What's new
Name[pt_BR]=O que há de novo?
Exec=xdg-open /opt/REAPER/whatsnew.txt
Icon=text-x-plain
[Desktop Action License]
Name=License and User Agreement
Name[pt_BR]=Licença e contrato de usuário
Exec=xdg-open /opt/REAPER/EULA.txt
Icon=text-x-plain
EOF
🔧 Configuração
mkdir -pv "$HOME"/.config/REAPER/{LangPack,UserPlugins}
wget -O "$HOME"/.config/REAPER/LangPack/pt-BR.ReaperLangPack https://stash.reaper.fm"$(wget -qO- https://stash.reaper.fm/tag/Language-Packs|grep pt-BR|head -n1|cut -d '"' -f2|sed 's/\/v//g')"
wget https://sws-extension.org/download/pre-release/"$(wget -qO- http://sws-extension.org/download/pre-release/|grep Linux-x86_64|head -n1|cut -d '"' -f4)"
tar fvx sws-*-Linux-x86_64-*.tar.xz -C "$HOME"/.config/REAPER
rm -rfv sws-*-Linux-x86_64-*.tar.xz
wget -O "$HOME"/.config/REAPER/UserPlugins/reaper_reapack-x86_64.so "$(wget -qO- https://api.github.com/repos/cfillion/reapack/releases|grep browser_download_url|grep download/v|grep x86_64.so|head -n1|cut -d '"' -f4)"
Boas práticas para evitar xruns
Desative conexões sem fio (wifi e bluetooth)
Conexões sem fio, sabidamente causam xruns
esporádicos.
Alguns notebooks têm um botão físico para desativar a conexão sem fio, se esse não for o seu caso, você pode desativar através do gerenciador de rede na área de notificação do seu ambiente gráfico.
Evite a conversão de arquivos de áudio em tempo real
Muitos programas de gravação de áudio, como é o caso do REAPER, por exemplo, permitem que você importe arquivos em formatos diferentes pra dentro do projeto, fazendo a conversão desses formatos em tempo real, durante a reprodução do projeto, isso gera uma sobrecarga de processamento que sabidamente pode causar xruns
.
Quando você estiver usando um programa de gravação de áudio, é recomendado evitar a conversão de arquivos de áudio em tempo real, ou seja, faça a conversão prévia de quaisquer arquivos que precisa usar no seu projeto, evitando sobrecarga no processamento durante a execução desses arquivos dentro do seu programa de gravação.
Para checar os formatos dos arquivos, você pode usar o programa MediaInfo, que pode ser facilmente instalado através do comando indicado abaixo.
📦 Instalação
sudo apt install mediainfo-gui
Para converter os arquivos de áudio, vídeo e imagem em outros formatos, você pode usar o programa Mystiq, que pode ser facilmente instalado através dos comandos indicados abaixo.
📦 Instalação
sudo apt install mystiq
Se você gostou do conteúdo desta postagem e quer receber mais conteúdos como este, me siga no Mastodon ou se inscreva aqui no Substack.
Raul, outra coisa que eu me bato um monte é com o wine. Eu sei que é possivel rodar qualquer coisa do windows com o wine mas eu me bato absurdamente quando preciso instalar qualquer coisa. Vc teria alguma indicação de material de estudo sobre o wine? Eu não gosto e nem tenho poder de processamento pra ficar rodando as coisas paralelamente com VM. Tem sempre alguma coisa que preciso usar que é exclusivo do windows que dá zica e eu não consigo fazer funcionar com o wine, o que me obriga a voltar. Obrigado.
Fazendo download do debian 12.8 que foi lançado hoje. Vou tentar chegar numa otimização visual agradável. Mas bem que vc podia fazer um script em um post aqui no substack sobre isso né kkkkkkkkkk