为什么我又用回Windows了
2024-04-23 16:06:10

路漫漫其修远兮!

前言

我最近买了把电吉他,Epiphone的黑卡——波奇酱的电吉他的官方廉价替代品,四千大洋出头拿下。

I am too depressed, friend. I need something more severe, like… ROCK MUSIC!

我还买了一些效果器、耳机、声卡之类的东西。

练了两天,想尝试一下使用DAW录音,顺便学一学混音的相关知识。

我原以为在Linux下录音并不是很难的事情——有很多艺术家都在用Linux,只不过他们不那么出名而已。然而,正是这看似简单的事情,让我对日用Linux完全失望。

Jack、ALSA、PulseAudio和Pipewire

我觉得我事先必须要厘清一些概念:

Jack,被GNU式定义为Jack Audio Connection Kit,是一个声音服务器的daemon,可以给相关应用程序提供实时、低延迟的连接。

ALSA又叫做Advanced Linux Sound Architecture,是Linux内核自带的一个音频驱动程序。

PulseAudio是一种通用的声音服务器,通过使用ALSA,作为应用和硬件之间的中间件运行。

PipeWire 是一个新的底层多媒体框架。 它旨在以最低的延迟为音频和视频提供录制和播放功能,并支持基于 PulseAudio、JACK、ALSA 和 GStreamer 的应用程序。

Pipewire相当于Jack、ALSA和Pulseaudio上面的一个封装层,用户不用去调试底层的PulseAudio之类的系统,直接用就好。理论上是这样的。

我的Arch Linux使用的就是Pipewire。

Reaper? Literally reaper!

我所使用的DAW(Digital Audio Workstation,数字工作站)是Reaper,所谓数字工作站,就是一类软件,用户可以在上面对输入的音频信号进行处理,比如切分、加效果、将不同的音轨叠放起来。

Reaper在一定程度上为Linux设计,也支持很多效果。

我的声卡是Focusrite的Scarlett Solo,在Linux上是免驱动的,通过USB插口怼到主板上,直接就可以进行输入输出。播放浏览器的声音,完全没问题。

然而,当我想用Reaper录音的时候,我发现Reaper的选项里不包括Pipewire和设备选项,只包括JACK、ALSA和PulseAudio。如果选择JACK和ALSA,Reaper会默认读取我的板载声卡输入,如果选择PulseAudio,Reaper能读取我的电吉他输入,但是又没法从我的外置声卡输出。

我翻遍了全网,找遍了各个热门的或者冷门的论坛,然而一个有用的解决方案都没有。

一寸光阴一寸金

一瞬间,我觉得我在Linux上折腾太久了,我太挫败了。我浪费了太多时间在寻找替代品、查找解决方案、阅读Wiki、折腾Wine、折腾Proton、写各种各样的配置文件上了。我不愿意再折腾了。

于是我换回了Windows,真香。Windows的Reaper直接有声卡的设备选项,直接将输入输出调为声卡即可。

我又可以拥有桌面歌词;拥有无需配置的开箱即玩的Steam的体验了。

约莫两年,我踩了无数的坑,经历了无数的挫败,终于还是放弃日常使用Linux了。

双刃剑

不过,通过这个过程,我也学会了很多东西,比如部署各种Linux的服务、尝试写一些使用Linux API的软件、简单Hack一下内核……

Whatever.