前两期传送门:
我在第一期里提到,目前主流的商业音频软件厂商,只会把精力集中在Windows和MacOS,往往直接忽略Linux。这就使得计算机音乐制作领域的大半壁江山都不属于Linux。好在,Wine的发展,使部分Windows专属的VST插件得以在Linux下运行,一定程度上弥补了这一缺憾。
接下来就介绍如何在Linux下,给DAW装配上VST插件。
Wine的安装和初始化
在Arch Linux下,要想安装Wine,首先须开启multilib
源,这个源默认情况下是不启用的。
sudo
打开Pacman的配置文件/etc/pacman.conf
,然后取消注释以下两行,保存:
1 |
|
注意:上方还有一个
multilib-testing
,收录测试中的软件,可能不稳定,一般不启用。
更新软件源,然后安装Wine。下方的wine-mono
和wine-gecko
分别为.NET运行时、浏览器内核,为可选组件,但最好装上以免Wine在初始化时提示安装:
1 |
|
安装时可能需要选择用哪个版本的libfreetype
,保持默认值就好。
安装完成后初始化,运行任意一个Windows应用程序,或是运行winecfg
(Wine的配置工具),即可启动Wine,它会帮我们创建一个默认的“前缀(Prefix)”。这里的“前缀”是Windows程序的运行环境,相当于一个个沙盒,每个前缀彼此独立。
使用VST插件的方案
Linux下的DAW,主要有三种支持Windows版VST插件的方案:
- 使用基于Wine的桥接器,将Windows版VST插件转换成原生的Linux VST插件,如LinVST
- 原理是构建一个原生VST格式的wrapper,宿主在加载wrapper后会自动调用桥接器的host服务端,从而利用Wine加载VST本体。
- 通用的方案,只要DAW支持原生VST,就可以用。
- 内建桥接器,即采用自己编写的桥接器,如LMMS中的VeSTige
- 只有少数的DAW有这个功能。
- 直接使用Wine来运行Windows版的DAW,它会像在Windows里那样加载VST。
- 基本不需任何其他配置。
方案一:直接使用Wine运行Windows下的DAW
例如,在Wine中使用REAPER,可直接加载Windows下的VST插件,基本无须第三方配置。只需在REAPER的设置中,把VST插件扫描的目录设置好,然后把插件放入其中。其他DAW也是如此,具体过程和Windows相同,这里省略。
插件可以放到Wine的前缀当中,也可放到前缀外普通的文件系统里(默认用Z:\
来访问Linux根文件系统,你也可以在winecfg
当中自己分配盘符)。
方案二:内建桥接器
以LMMS为例,它附带了专门的桥接器VeSTige,可以直接像在Windows那样,加载*.dll
为扩展名的VST插件。
操作步骤如下:
- 点击左侧的Instrument Plugins(音频插件);
- 插件列表出现,在下方找到VeSTige,拖到音轨视图里;
- 点击音轨视图里的VeSTige图标,打开插件界面;
- 在插件界面中点击“打开”按钮,定位到VST插件目录,打开它;
- 可以点击“Show/hide GUI”按钮来显示或隐藏VST插件的界面。
能否加载成功,仍然因系统环境和Wine的版本而异。如果无法加载,则使用htop
,把RemoteVSTHost.exe
这个进程结束,以免占用过多处理器资源。
方案三:使用LinVST
LinVST是由OSXMidi开发的桥接器。类似于Windows下的jBridge,用户通过它提供的转换工具,创建一个原生VST插件,作为Windows版VST插件的wrapper,接下来只需在宿主中加载即可。
它同时支持VST2和VST3,分别对应两个独立的项目:LinVST2、LinVST3。它们各自还拥有一个增强版本——LinVST-X和LinVST3-X,允许一个VST插件实例被共享,起到节省资源的目的(例如把一个Kontakt实例用在多个音轨上)。
Arch Linux的官方源没有收录LinVST,须通过AUR安装。笔者用的是yay
。
1. 安装LinVST本体
首先安装LinVST。AUR的包分为源码包和二进制包,后者开箱即用,前者则需编译。建议选择二进制包。
1 |
|
如果需要增强版本,则安装:
1 |
|
注意:采用源码版编译会有两个问题:
- 只有
linvst
能编译,linvst3
会在编译附加组件ArchStudioUtils
时出错。- 生成wrapper必不可少的
linvstconvert
没有编译。用户必须手动进入源码的convert/
目录来编译才行。
2. 如果出现错误:“一个或多个文件没有通过有效性检查!
”
但是,由于LinVST的二进制包更新与AUR PKGBUILD
的MD5值不同步,会出现能下载成功,却通不过有效性检查的情况。这时要手工修改PKGBUILD
文件,去掉有效性检查的部分。
首先进入linvst-bin
包的yay缓存目录:
1 |
|
然后修改PKGBUILD
文件,更改md5sums=('xxxxx')
一行,把括号里的字符串值改为SKIP
,表示“跳过有效性检查”。注意大小写:
1 |
|
保存后,运行makepkg
,生成安装包:
1 |
|
生成好的安装包位于当前目录,文件名为linvst-bin-x.y-z-x86_64.pkg.tar.zst
(x,y,z
为版本号)。可以直接安装:
1 |
|
用同样的方法,制作并安装其他几个二进制包。
3. 生成wrapper
LinVST用于生成wrapper的工具有以下几种,它们界面大体相同,须从终端运行:
linvstconvert
、linvstxconvert
、linvst3convert
、linvst3xconvert
:指定一个文件夹,然后由其中的VST插件生成对应的wrapper。- 以上工具加上
tree
作为后缀:递归寻找子目录下的所有VST插件,为其生成wrapper。
如果所有的VST插件都在一个文件夹里,则选前一类;而如果位于若干个子目录里(比如部分VST插件带有附属的文件,要与插件本体放在单独目录中),则选后一类。
运行后,出现这个界面:
首先把你的Windows VST插件统一放到一个目录中,建议
~/.vst
(VST2)和~/.vst3
(VST3)。在生成工具界面中,选择LinVST库。点击_【Choose linvst.so】_,在文件对话框中定位到
/usr/share/LinVst
,选择linvst.so
。其他几个VST3和增强版的库文件也在该文件夹中,如果是linvst3convert
,则选择linvst3.so
,以此类推。然后通过下方的_【Choose dll folder】_,选择Windows VST DLL所在的文件夹。(如果是
linvst3convert
,则界面是_【Choose VST3 folder】_,选择*.vst3
所在文件夹)。点击_【Start】_生成,随后VST插件目录下就会出现与插件同名的
*.so
文件,即原生VST wrapper。最后把插件目录添加到DAW中即可。实测,REAPER for Linux完美支持。
注意:
- VST插件和生成的
*.so
文件必须在同一目录下,否则LinVST会提示找不到插件。
Wine的兼容性
Wine是一个持续开发的项目,这是由Windows的复杂度决定的,开发团队不可能在短期内适配真实Windows下的所有特性,并保持其稳定性。因此并不是所有的程序都能完美运行,包括VST插件,测试中程序挂掉、出现Bug,在所难免。
幸运的是,有些开发者会考虑到Linux的生态,会优化自己的应用程序,使其能完美地运行于Wine。REAPER就是一个很好的例子,它的Windows版本可以直接在Wine中安装。之前REAPER并未推出原生的Linux版本,官方特别在下载页中提到,“Windows版本可在Wine下运行良好(_For Linux users, the Windows version works well with WINE._)”,便利了Linux用户,也实现了开疆拓土。
即便如此,REAPER仍属于少数。大部分的应用仍需自行去测试,检验其在Wine下的兼容性,以及事后会不会出Bug。
我所做的测试
- Kontakt Player:我用Wine下的REAPER测试,它可以在REAPER中正常加载并播放NKI采样,表现与Windows下一致。不过,如果在REAPER中就地重新加载(选择“更改当前VST效果”后重新选择Kontakt),则会导致长时间卡住,可见并不完美。
- Synth1:一款免费、强悍的合成器插件。
- 在LMMS下尝试用VeSTige打开,但没能启动成功。相反LMMS自带的VST宿主程序(
RemoteVSTHost.exe
)还卡在后台占用CPU,只能手动结束。 - 移师REAPER for Linux,借助LinVST,顺利运行,体验与Windows别无二致。
- 在LMMS下尝试用VeSTige打开,但没能启动成功。相反LMMS自带的VST宿主程序(
- 本文作者: 爱拼安小匠
- 本文链接: https://anclark.github.io/2020/12/09/Linux_Audio_Production/Make_Your_ArchLinux_An_Audio_Workstation_03.md/
- 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-ND 3.0(署名-非商用-禁止演绎 3.0) 许可协议。转载请注明出处!