作为程序员+音乐人二合一,我的系统环境横越Windows和ArchLinux。起初ArchLinux只拿来做开发,但如此强悍的系统,我总认为它还有无限的可能性还没有开掘下来,例如,做音乐。

相较于Windows,作为开发者首选的系统之一,ArchLinux有以下无法比拟的优势:

不过,不管是那个发行版,Linux总有一点比不上Windows和MacOS,就是音乐制做——很少有音频软件厂商才能提供原生支持Linux的音乐制做工具。尤其是NativeInstruments这样的业界大鳄,只专注于Windows和MacOS,不会为Linux提供任何支持。实在是可悲。

辛运的是,开源的力量是无穷的,既然Linux能普及,总有大鳄在弥补这方面的空白。各类适用于Linux的音乐制做工具链应运而生,从底层驱动级别的JACK,到对标业界标准插件规范(VST、RTAX、AAX、DX、AU)的LADSPA,甚至完整的DAW——LMMS、Ardour、REAPERforLinux,应有尽有。自此,Linux不再是没有音乐人驾临的沙漠。

Linux作为音乐制做环境的必备要求

要想把Linux打导致音乐工作站,须要进行以下方面的配置:

第一:安装与配置JACK

要把你的ArchLinux打导致音乐工作站,首先要做的就是配置音频服务——JACK。JACK是一套高性能、低延后的音频服务程序,它基于Linux底层的ALSA,可为音频应用程序提供低延后的音频回放、录制支持,相当于Windows下的ASIO,以及MacOS下的CoreAudio。

安装那个版本的JACK?

通常的发行版会提供两个版本的JACK:

JACK2:包名为jack2,用C++重画的版本:

先给出推论——选择JACK2,不要选择JACK1!

尽管JACK1是最初版本,包括Manjaro、ArtixCommunity在内的多款发行版都有预装,但它并不是开箱即用的。想要使用JACK1,首先要配置realtime权限,之后再把当前用户添加到audio用户组中,重新登陆后再通过QJackCtl这类工具来手工启用JACK服务,十分麻烦。

加之,JACK,和PulseAudio是独占访问声卡的,其中PulseAudio是各大Linux发行版和各类应用首选的音频服务,这就意味着一旦开启JACK,其他应用程序就难以出声,甚至会导致一些难以预想的错误。

相较于此,重画的JACK2则解决了上述两大败笔。首先,JACK2使用了全新的构架,默认情况下无需依赖realtime权限和audio用户组即可运行,和PulseAudio一样都能直接运行于用户空间(区别于root权限下的系统服务)。其次,开发者设计了一套“桥接(Bridging)”机制,才能把ALSA和PulseAudio重定向到JACK里来,因而保证其他使用了PulseAudio的应用程序仍能正常使用,听歌做歌两不误。

其实,首选的JACK版本非JACK2莫属。

安装与启动JACK2

首先安装JACK2,以及JACK2的音频控制面板Cadence:

sudopacman-Ssjack2cadence

Cadence是一款端庄的JACK2控制面板linux软件音乐,功能全面。首先打开它:

图1Cadence主界面

之后点击【JACKStatus】部分的【Start】,启动JACK服务。若启动成功,则该部份会显示以下内容,表示JACK2启动成功,并给出当前的运行参数。

图2JACK启动成功后,Cadence显示的状态

启动成功后,PulseAudio到JACK的桥接功能也会手动启用。打开PulseAudio桥接后,系统会多出一个音频设备,为“PulseAudioJACKsink”,是把PulseAudio重定向到JACK的设备,选择它即可让原本使用PulseAudio播放音频的程序都通过JACK来输出音频。

若不须要PulseAudio桥接,可以在Cadence下方的【JACKBridges】的【PulseAudio】选项卡里自动开关这个功能。

图3启动JACK2后,KDE音量控制里多出的音频设备

提示:

设置输出设备

默认地,Cadence会把输出设备设置为Dummy(空设备),会造成难以出声。因而要自动设置音频设备。

在Cadence主界面里,点击【JACKStatus】部分的【Configure】,步入JACK设置,之后点选【Drivers】选项卡。

右侧【Drivers】一栏有五种输出设备:ALSA(调用本地声卡)、Dummy(空设备)、Loopback(回环)、Net/NetOne(网路源)。点选ALSA,以使用我们的声卡。其余选项不常用。

图4设置Cadence输出设备

此时左边都会显示出可用的设置项。

见到【Device】部分,设置输出设备。注意下边几个设置项,按下表设置好:

设置项

说明

取值

Device/Interface

选择要给JACK使用的设备,包含输入、输出

hw:0指向默认的声卡设备

InputDevice

OutputDevice

单独设置输入、输出设备

只有在DuplexMode勾选后才会设置

hw:0指向默认设备的默认插口

DuplexMode

勾选后,可以分别设置输入/输出设备

否则全部使用Device/Interface中的设备

InputChannels

OutputChannels

输入、输出通道数

默认值为0,会手动指向该设备支持的最大通道数

之后看见【Properties】部分,设置以下两个参数:

设置项

说明

取值

SampleRate

取样率

通常音乐制做用44100或48000即可

要求音效则可用96000或192000,但声卡不一定能支持。

BufferSize

缓冲区大小

取值越小,延后越低,但在集成声卡上可能会造成破音。

通常设置成256~512,通常的集成声卡和独立声卡都能兼具延后和音效

其他参数保持默认值即可。

设置完成后确认,先后点击【Stop】和【Start】,重启JACK,即可生效。

第二:安装Linux下的DAW

Linux下的主流DAW软件不多,几大商业DAW大厂(如Steinberg、AVID、Ableton)基本没有适配Linux的计划。但一些优秀的开发团队推出了适用于Linux的自由软件DAW,例如:

以上软件皆可直接从ArchLinux的官方源安装。因篇幅限制,这儿不介绍软件的用法,读者可自己体验。

sudopacman-Sardour

sudopacman-Slmms

sudopacman-Smixxx

作者使用的是强大的商业DAW——REAPER。有别于其他大厂,它提供了官方的Linux版本,能直接使用专为Linux开发的VST插件;且其Windows版本也可以利用兼容层Wine,在Linux下运行。

第三:安装原生疗效器插件

不仅DAW,一些优秀的开发者也推出了同属自由软件的疗效器插件,囊括LV2、LADSPA与VST等几大格式,满足Linux下音乐人的使用。它们同样可以在ArchLinux下运行。这儿先介绍两款插件:

LSPPlugins

全名LinuxStudioProjectPlugins,是一套专为Linux构建的疗效器插件,借以弥补Linux下缺乏优质插件的空白。它涵盖了混缩所需的一系列疗效器,包括压缩器、延迟疗效器、图形均衡器、多段均衡器(类似于FabfilterPro-Q),甚至扩充器(Expander)、频段压缩器、侧链压缩器这样的中级玩法。部份插件还提供动态的频谱图显示,清晰直观。

例如,右图所示的压缩器DynamicProcessorStereo:

DynamikprozessorStereo

以及多段基团压缩器SidechainMultibandCompressorStereox8:

SidechainMulti-bandKompressorStereox8

在ArchLinux中,直接安装即可。

sudopacman-Slsp-plugins

DragonflyReverb

这是一款十分高质量的混响工具,与商业DAW自带的不相上下,用彼此独立的几款插件来实现大厅(Hall)、房间(Room)、板式(Plate)混响,并提供一个反射疗效插件(Reflections)。

它也可以直接安装:

sudopacman-Slsp-plugins

插件的安装目录

ArchLinux下,通过Pacman安装的插件假如提供VST版本,通常还会置于/usr/lib/vst下。把它添加到支持VST的DAWVST扫描目录中(如REAPERForLinux)。

第四:使用Windows下的VST插件

我在上文里提及,目前主流的商业音频软件厂商,只会把精力集中在Windows和MacOS,常常直接忽视Linux。这就促使计算机音乐制做领域的大半壁江山都不属于Linux。好在,Wine的发展,使部份Windows专属的VST插件得以在Linux下运行,一定程度上填补了这一缺憾。

接出来就介绍怎样在Linux下,给DAW装配上VST插件。

Wine的安装和初始化

Wine是专为Linux和MacOS开发的兼容层,让你能在Linux下运行Windows下的程序。

在ArchLinux下,要想安装Wine,首先须开启multilib源,这个源默认情况下是不启用的。

sudo打开Pacman的配置文件/etc/pacman.conf,之后取消注释以下两行,保存:

[multilib]

Include=/etc/pacman.d/mirrorlist

注意:上方还有一个multilib-testing,收录测试中的软件,可能不稳定,通常不启用。

更新软件源,之后安装Wine。下方的wine-mono和wine-gecko分别为.NET运行时、浏览器内核,为可选组件,但最好装上以免Wine在初始化时提示安装:

sudopacman-Syy

sudopacman-Swinewine-monowine-gecko

安装时可能须要选择用那个版本的libfreetype,保持默认值就好。

安装完成后初始化,运行任意一个Windows应用程序,或是运行winecfg(Wine的配置工具),即可启动Wine,它会帮我们创建一个默认的“前缀(Prefix)”。这儿的“前缀”是Windows程序的运行环境,相当于一个个沙盒,每位前缀彼此独立。

使用VST插件的方案

Linux下的原生DAW,主要有两种支持Windows版VST插件的方案:

内建桥接器,即采用自己编撰的桥接器,如LMMS中的VeSTige

另外linux软件音乐,还可以直接使用Wine来运行Windows版的DAW,它会像在Windows里那样加载VST。它基本不需任何其他配置,但不具备普适性,不能保证所有的DAW都能正常运行。目前兼容性好的只有REAPER。

方案一:内建桥接器

以LMMS为例,它附送了专门的桥接器VeSTige,可以直接像在Windows那样,加载*.dll为扩充名的VST插件。

操作步骤如下:

点击两侧的InstrumentPlugins(音频插件);插件列表出现,在下方找到VeSTige,拖到音轨视图里;点击音轨视图里的VeSTige图标,打开插件界面;在插件界面中点击“打开”按钮,定位到VST插件目录,打开它;可以点击“Show/hideGUI”按钮来显示或隐藏VST插件的界面。

能够加载成功,一直因系统环境和Wine的版本而异。倘若未能加载,则使用htop,把RemoteVSTHost.exe这个进程结束,以免占用过多处理器资源

方案二:使用LinVST

LinVST是由OSXMidi开发的桥接器。类似于Windows下的jBridge,用户通过它提供的转换工具,创建一个原生VST插件,作为Windows版VST插件的wrapper,接出来只需在寄主中加载即可。

它同时支持VST2和VST3,分别对应两个独立的项目:LinVST2、LinVST3。它们各自还拥有一个提高版本——LinVST-X和LinVST3-X,容许一个VST插件实例被共享,起到节约资源的目的(比如把一个Kontakt实例用在多个音轨上)。

ArchLinux的官方源没有收录LinVST,须通过AUR安装。笔者用的是yay。

0.安装yay

初次据说AUR和yay的读者,可以先添加ArchLinuxCN源。同样是编辑/etc/pacman.d,在结尾添加:

[archlinuxcn]

Server=$arch

之后安装秘钥包,以及yay本体:

sudopacman-Sarchlinuxcn-keyringyay

1.安装LinVST本体

首先安装LinVST。AUR的包分为源码包和二补码包,前者开箱即用,后者则需编译。建议选择二补码包。

#源码包

yay-Slinvstlinvst3

#二补码包

yay-Slinvst-binlinvst3-bin

假如须要提高版本,则安装:

yay-Slinvst-x-binlinvst3-x-bin

注意:采用源码版编译会有两个问题:

2.倘若出现错误:“一个或多个文件没有通过有效性检测!”

然而,因为LinVST的二补码包更新与AURPKGBUILD的MD5值不同步,会出现能下载成功,却通不过有效性检测的情况。这时要手工更改PKGBUILD文件,除去有效性检测的部份。

首先步入linvst-bin包的yay缓存目录:

cd~/.cache/yay/linvst-bin/

之后更改PKGBUILD文件,修改md5sums=(xxxxx)一行,把括弧里的字符串值改为SKIP,表示“跳过有效性检测”。注意大小写:

#更改前,字符串值为MD5校准和

md5sums=(6868bb329329da98939893ee340993409934099cc77dd88adadad55cbcbcb99cc940940)

#更改后,字符串值为SKIP

md5sums=(SKIP)

保存后,运行makepkg,生成安装包:

makepkg

生成好的安装包坐落当前目录,文件名为linvst-bin-x.y-z-x86_64.pkg.tar.zst(x,y,z为版本号)。可以直接安装:

sudopacman-Ulinvst-bin-x.y-z-x86_64.pkg.tar.zst

用同样的方式,制做并安装其他几个二补码包。

3.生成wrapper

LinVST用于生成wrapper的工具有以下几种,它们界面大体相同,须从终端运行:

假如所有的VST插件都在一个文件夹里,则选前一类;而假如坐落若干个子目录里(例如部份VST插件带有附属的文件,要与插件本体置于单独目录中),则选后一类。

运行后,出现这个界面:

首先把你的WindowsVST插件统一放在一个目录中,建议~/.vst(VST2)和~/.vst3(VST3)。在生成工具界面中,选择LinVST库。点击【Chooselinvst.so】,在文件对话框中定位到/usr/share/LinVst,选择linvst.so。其他几个VST3和提高版的库文件也在该文件夹中,假如是linvst3convertlinux 软件,则选择linvst3.so,以这种推。之后通过下方的【Choosedllfolder】,选择WindowsVSTDLL所在的文件夹。(假如是linvst3convert,则界面是【ChooseVST3folder】,选择*.vst3所在文件夹)。点击【Start】生成,此后VST插件目录下才会出现与插件同名的*.so文件,即原生VSTwrapper。最后把插件目录添加到DAW中即可。实测,REAPERforLinux完美支持。

注意:

Wine的兼容性

Wine是一个持续开发的项目,这是由Windows的复杂度决定的,开发团队不可能在短期内适配真实Windows下的所有特点,并保持其稳定性。因而并不是所有的程序都能完美运行,包括VST插件,测试中程序死掉、出现Bug,在所难免。

辛运的是,有些开发者会考虑到Linux的生态,会优化自己的应用程序,使其能完美地运行于Wine。REAPER就是一个挺好的反例,它的Windows版本可以直接在Wine中安装。之前REAPER并未推出原生的Linux版本,官方非常在下载页中提及,“Windows版本可在Wine下运行良好(ForLinuxusers,theWindowsversionworkswellwithWINE.)”,便利了Linux用户,也实现了开疆拓土。

虽然这么,REAPER仍属于少数。大部份的应用仍需自行去测试,检验其在Wine下的兼容性linux cp,以及事后会不会出Bug。

我所做的测试

杂记

以上是作者在ArchLinux下试玩音乐制做软件的感受,开掘了Linux的别样用法。因为厂商适配策略的不同,并不能保证Linux一定能拥有不输于Windows和MacOS的体验,但当下的Linux起码不存在这方面的空白。

不过,在Linux下制做音乐尚有显著的局限性,彰显在众多商业软件缺乏对Linux的支持。作者以前在自己的惠普电脑上安装ArchLinux,配置好REAPER和NativeInstruments的KompleteStart套装,无奈兼容性差强人意,到最后还是只能回到Windows。要想让Linux能在音乐制做领域与Windows、MacOS一分高下,还有很长的路要走。

本文出自

可下载MidifanforiOS应用在手机或平板上阅读(直接在AppStore里搜索Midifan即可找到,或扫描下边的二维码直接下载),在iPad或iPhone上下载并阅读。

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复