|
楼主 |
发表于 2021-2-21
|
1 w! X( ~7 n# k" s d w# e
使用VST插件的方案' l3 ]% i r f6 s9 n' ?
* P( O' V" S" z6 o9 d
Linux下的原生DAW,主要有两种支持Windows版VST插件的方案:
' M# `$ c K% p' M4 L8 B6 E9 R; W
) x. \/ b" \/ ?% I使用基于Wine的桥接器,将Windows版VST插件转换成原生的Linux VST插件,如LinVST
, O; D; W" Q2 t% O1 ?, x8 A原理是构建一个原生VST格式的wrapper,宿主在加载wrapper后会自动调用桥接器的host服务端,从而利用Wine加载VST本体。
; b4 u% {/ x. a' V: g% I8 O通用的方案,只要DAW支持原生VST,就可以用。( H7 ~. Q6 z' u) g, O+ g
内建桥接器,即采用自己编写的桥接器,如LMMS中的VeSTige ]% D5 I" L( ?/ O1 ~# B: G
只有少数的DAW有这个功能。4 Z/ E& e+ J* T4 C3 Y
另外,还可以直接使用Wine来运行Windows版的DAW,它会像在Windows里那样加载VST。它基本不需任何其他配置,但不具备普适性,不能保证所有的DAW都能正常运行。目前兼容性好的只有REAPER。' x1 L; @( E0 V! \- J# c
/ D3 q. b/ I' O- I方案一:内建桥接器
$ c3 W9 |) g; F: Q, c0 c4 D
3 U2 F f: D% {8 t4 ~ s S以LMMS为例,它附带了专门的桥接器VeSTige,可以直接像在Windows那样,加载*.dll为扩展名的VST插件。
" x, ]6 k y& y! |0 U8 R/ K; h! |4 y2 f+ d; V5 h8 s( D; V$ }( `
, G+ O, C, i* v/ b- z |! k% {! N4 P! Z
操作步骤如下:/ z' L e. {+ \2 V
+ w8 E0 [7 d' I1 J2 H8 S点击左侧的Instrument Plugins(音频插件);
6 M! y( k- @5 X; L/ x& w7 d插件列表出现,在下方找到VeSTige,拖到音轨视图里;
" p. k6 {: c- \" K4 [; {7 k点击音轨视图里的VeSTige图标,打开插件界面;
2 K& F- f2 [5 i R% U. Y% j& o在插件界面中点击“打开”按钮,定位到VST插件目录,打开它;9 i! q$ C/ t( j2 u T
可以点击“Show/hide GUI”按钮来显示或隐藏VST插件的界面。
, V7 v X( {* B( A- w+ R能否加载成功,仍然因系统环境和Wine的版本而异。如果无法加载,则使用htop,把RemoteVSTHost.exe这个进程结束,以免占用过多处理器资源。3 A1 n {! G& v" t$ D: f# H# O+ x
: S+ ~# W. A$ U
方案二:使用LinVST- y/ H( D+ B; [* @% i i: i, e
. I# r! x! s8 b* q6 I. o* Y3 Z9 r
LinVST是由OSXMidi开发的桥接器。类似于Windows下的jBridge,用户通过它提供的转换工具,创建一个原生VST插件,作为Windows版VST插件的wrapper,接下来只需在宿主中加载即可。% T W; s- ?3 j3 P5 O) M% ?+ C
" \& v4 g3 N3 v9 l# O$ W, R它同时支持VST2和VST3,分别对应两个独立的项目:LinVST2、LinVST3。它们各自还拥有一个增强版本——LinVST-X和LinVST3-X,允许一个VST插件实例被共享,起到节省资源的目的(例如把一个Kontakt实例用在多个音轨上)。
$ H3 H! |0 `. t& \4 _! C; p. _4 S: S4 V2 Q, H4 l1 C
Arch Linux的官方源没有收录LinVST,须通过AUR安装。笔者用的是yay。
' K) J& Q% U7 t
$ a$ I4 n0 f l" C0. 安装yay
$ C9 Z0 {, P, O0 R
5 K7 ^0 b& v. r3 b% ~6 R Q初次听说AUR和yay的读者,可以先添加Arch Linux CN源。同样是编辑/etc/pacman.d,在结尾添加:
5 c2 `) l9 _, j5 R6 ~ B
! j4 K& v# Z4 u; A8 ][archlinuxcn]7 W* D( V5 n. m. c+ ]
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch' J; t+ b" g! U
% M7 s) _& E& A" s4 w! P: b( l7 |3 Y7 A) f然后安装密钥包,以及yay本体:" h: P" H: d% e4 f
; t2 O/ |0 G0 \: R* c
sudo pacman -S archlinuxcn-keyring yay( b; l0 f" j$ `
8 E4 r9 V' Y# j- N; I3 ?; _4 [
1. 安装LinVST本体
' K+ P; B) U" V6 T: V/ l! g1 ?% |2 T4 K% y5 S- K! B; C
首先安装LinVST。AUR的包分为源码包和二进制包,后者开箱即用,前者则需编译。建议选择二进制包。
% g8 I7 q3 y! y7 m# Q. i# 源码包' D. g1 e- q% q& h/ R! Y
yay -S linvst linvst3/ Y* c$ @" X! D5 r- |4 K; L
# 二进制包 r4 Q, }; T3 V j7 y& G- C$ M0 j
yay -S linvst-bin linvst3-bin
- Q% ?% E2 m2 @9 K, i4 ?# ~5 }9 ?* n8 @6 A9 f) C: i& _2 F! z
如果需要增强版本,则安装:3 [3 t* Z* u' t: X& i
u3 q1 }8 m1 E! Byay -S linvst-x-bin linvst3-x-bin1 A3 q6 |. L$ S
+ [2 `+ p% Y1 D
注意:采用源码版编译会有两个问题:7 G* `, A1 Y( O
# W% j+ F5 n5 A2 C0 @7 h: H2 `只有linvst能编译,linvst3会在编译附加组件ArchStudioUtils时出错。6 y$ ^5 o) B0 f- J
生成wrapper必不可少的linvstconvert没有编译。用户必须手动进入源码的convert/目录来编译才行。
/ ~. h6 h" C4 _7 j, e6 J! b2. 如果出现错误:“一个或多个文件没有通过有效性检查!”# S: v3 Q& q& D: P" |
; v) @' ^5 L9 b: n, k( k7 b
但是,由于LinVST的二进制包更新与AUR PKGBUILD的MD5值不同步,会出现能下载成功,却通不过有效性检查的情况。这时要手工修改PKGBUILD文件,去掉有效性检查的部分。
. U0 q7 U5 b# Q+ U6 T7 y& v
: l& d: Y) @' U2 M+ c首先进入linvst-bin包的yay缓存目录:
+ G; V2 E3 w# J) z0 u! _6 o. j) w2 g: I- \# R; K
cd ~/.cache/yay/linvst-bin/( u* K% v6 y" _, ^
/ M8 ]/ B) ]8 r4 p
然后修改PKGBUILD文件,更改md5sums=(xxxxx)一行,把括号里的字符串值改为SKIP,表示“跳过有效性检查”。注意大小写:) Y, I: J8 F8 a- `# z0 r. T2 s
; |/ n; w% |+ t" ^% o7 K9 v
# 修改前,字符串值为MD5校验和8 w6 h, c, ^. C U9 k% _
md5sums=(68b329da9893e34099c7d8ad5cb9c940)
8 G: S; ~6 Q% I& h+ O/ V9 I
0 j# I9 q2 }- }2 C# 修改后,字符串值为SKIP8 i9 V+ n8 e* z2 G5 [9 A0 u
md5sums=(SKIP)
9 f% O+ S; e0 s- W: D5 o) H- |: F2 o& j& N5 h* O! w- x
保存后,运行makepkg,生成安装包:# o- e( D9 O: G; [
/ a3 `# F5 @, P. t0 I/ N
makepkg
# n/ q7 j# q+ [8 G
f1 g" N& k, A8 H生成好的安装包位于当前目录,文件名为linvst-bin-x.y-z-x86_64.pkg.tar.zst(x,y,z为版本号)。可以直接安装:' B+ v) Y$ z7 \1 F4 R y
% h8 t$ F. @0 y4 b9 Gsudo pacman -U linvst-bin-x.y-z-x86_64.pkg.tar.zst0 B) v' A- u1 [" u% ]- P
6 J4 F/ e [& C% G; u
用同样的方法,制作并安装其他几个二进制包。- a r; u/ c/ }( {
4 |& Z" @7 G [) f* y
3. 生成wrapper
) ?* [" w( h$ x" {! N. J$ R; e! R8 g: u% b9 }6 ~9 T$ v: c
LinVST用于生成wrapper的工具有以下几种,它们界面大体相同,须从终端运行:0 f) R0 n/ j/ C- {9 I, r f0 k
+ q7 v* \0 [# _2 J# n' slinvstconvert、linvstxconvert、linvst3convert、linvst3xconvert:指定一个文件夹,然后由其中的VST插件生成对应的wrapper。
" ^! @6 U% H( f) J; Z2 }以上工具加上tree作为后缀:递归寻找子目录下的所有VST插件,为其生成wrapper。
! {! `, |' }. O" f# T) J& b如果所有的VST插件都在一个文件夹里,则选前一类;而如果位于若干个子目录里(比如部分VST插件带有附属的文件,要与插件本体放在单独目录中),则选后一类。
" K9 I& V \. ~% K' t' c( u7 J( J9 Q, N6 @% g: @$ k# z) M# R
运行后,出现这个界面:
0 i5 C6 H4 Z) r, z2 U
- O- |/ q* Z: W% N
z9 M: [2 u J8 U* p% K6 r
) I S4 [/ t% X c) M y. Q首先把你的Windows VST插件统一放到一个目录中,建议~/.vst(VST2)和~/.vst3(VST3)。
* `1 |2 A9 ^( }6 s. x4 \在生成工具界面中,选择LinVST库。点击【Choose linvst.so】,在文件对话框中定位到/usr/share/LinVst,选择linvst.so。其他几个VST3和增强版的库文件也在该文件夹中,如果是linvst3convert,则选择linvst3.so,以此类推。( m' }3 w/ e' y' w9 h1 A& n: }5 i; y
然后通过下方的【Choose dll folder】,选择Windows VST DLL所在的文件夹。(如果是linvst3convert,则界面是【Choose VST3 folder】,选择*.vst3所在文件夹)。
9 L# c* ^7 e1 v9 a" Y点击【Start】生成,随后VST插件目录下就会出现与插件同名的*.so文件,即原生VST wrapper。$ F' t; y! U8 | k
最后把插件目录添加到DAW中即可。实测,REAPER for Linux完美支持。; u3 ]- c/ y" t# A3 Y* H; [. Q
注意: H2 e0 ]$ Y" F; n U7 a) w
6 V1 M6 m- v( ~, a. L- Z- ^0 V
VST插件和生成的*.so文件必须在同一目录下,否则LinVST会提示找不到插件。, s2 K" u4 p8 c( ?
Wine的兼容性/ |# l5 W5 y: \) N
. Y: A! v9 o& ?Wine是一个持续开发的项目,这是由Windows的复杂度决定的,开发团队不可能在短期内适配真实Windows下的所有特性,并保持其稳定性。因此并不是所有的程序都能完美运行,包括VST插件,测试中程序挂掉、出现Bug,在所难免。0 x8 y& M* A! `# w8 j3 |
" ~1 d7 k4 g2 J% v+ ?0 j
幸运的是,有些开发者会考虑到Linux的生态,会优化自己的应用程序,使其能完美地运行于Wine。REAPER就是一个很好的例子,它的Windows版本可以直接在Wine中安装。之前REAPER并未推出原生的Linux版本,官方特别在下载页中提到,“Windows版本可在Wine下运行良好(For Linux users, the Windows version works well with WINE.)”,便利了Linux用户,也实现了开疆拓土。
- M" K* e9 T1 J- N: D1 |7 I# l* p2 A; J6 D2 _- a" T g
即便如此,REAPER仍属于少数。大部分的应用仍需自行去测试,检验其在Wine下的兼容性,以及事后会不会出Bug。
1 F) z$ m4 o/ t8 d
) f6 I) a: `% a" `" S我所做的测试
- a4 _ Y% l7 ^. C' s/ L9 F |! y* @* G1 c- b* [ J3 I2 j
Kontakt Player:我用Wine下的REAPER for Windows测试,它可以在REAPER中正常加载并播放NKI采样,表现与Windows下一致。不过,如果在REAPER中就地重新加载(选择“更改当前VST效果”后重新选择Kontakt),则会导致长时间卡住,可见并不完美。1 M- ?0 U/ Q' B( p# M
Synth1:一款免费、强悍的合成器插件。
# \/ N0 _9 X5 N/ ~在LMMS下尝试用VeSTige打开,但没能启动成功。相反LMMS自带的VST宿主程序(RemoteVSTHost.exe)还卡在后台占用CPU,只能手动结束。
4 K& ^- e1 g* ^$ s; s; }移师REAPER for Linux,借助LinVST,顺利运行,体验与Windows别无二致。
; \& n! d8 ~( i! R1 B5 n6 O+ v+ R2 `, Y/ [) I, O+ n, V/ a
后记2 n s2 X% \6 E4 V# s* p
以上是作者在Arch Linux下试玩音乐制作软件的体会,发掘了Linux的别样用法。由于厂商适配策略的不同,并不能保证Linux一定能拥有不输于Windows和MacOS的体验,但当下的Linux至少不存在这方面的空白。% J. n2 I: W9 d! e0 P7 B$ j
8 _3 \/ }8 U+ p4 M不过,在Linux下制作音乐尚有明显的局限性,体现在诸多商业软件缺少对Linux的支持。作者曾经在自己的惠普笔记本上安装Arch Linux,配置好REAPER和Native Instruments的Komplete Start套装,无奈兼容性差强人意,到最后还是只能回到Windows。要想让Linux能在音乐制作领域与Windows、MacOS一分高下,还有很长的路要走。 |
|