|

楼主 |
发表于 2021-2-21 18:23:44
|
显示全部楼层
0 Q$ E( B- y- d$ i' V o
使用VST插件的方案 t6 o8 g, N6 E \
/ Z1 W# J2 \$ p0 ~4 [3 }
Linux下的原生DAW,主要有两种支持Windows版VST插件的方案:. g# B" [+ l" l7 X2 i( U5 l
$ h. _5 f' @+ y; H( Y- M% h
使用基于Wine的桥接器,将Windows版VST插件转换成原生的Linux VST插件,如LinVST
; `' q$ T3 u% w" z j原理是构建一个原生VST格式的wrapper,宿主在加载wrapper后会自动调用桥接器的host服务端,从而利用Wine加载VST本体。
; L+ `: N3 {. X; O6 M1 u* }5 D通用的方案,只要DAW支持原生VST,就可以用。+ L+ E, u; e1 q. x; _0 y8 o
内建桥接器,即采用自己编写的桥接器,如LMMS中的VeSTige
6 ]# ~2 ?6 i$ V* |* D只有少数的DAW有这个功能。
" b: U5 B( B/ U& O; U6 t6 ^ a另外,还可以直接使用Wine来运行Windows版的DAW,它会像在Windows里那样加载VST。它基本不需任何其他配置,但不具备普适性,不能保证所有的DAW都能正常运行。目前兼容性好的只有REAPER。7 ^0 I% A' |/ i% M9 K
$ v1 @8 z) i: E+ u- r9 j1 n/ T- @
方案一:内建桥接器
2 O$ C/ U: B+ F$ @; k a& J$ Z% n
/ A4 ]% H* k9 \. b1 h( _以LMMS为例,它附带了专门的桥接器VeSTige,可以直接像在Windows那样,加载*.dll为扩展名的VST插件。
$ E x% F1 p& Q! T2 a S5 w8 e3 p/ |) Y" U; o. e9 R
1 [' a, O/ H7 x' O+ [5 G
. `4 A2 F9 q& w# N( G6 t1 T操作步骤如下:
( s0 w6 a# \- o2 X% t U" N0 M( p4 z% D: R$ S k3 b( f0 b
点击左侧的Instrument Plugins(音频插件);) r! A2 R( p3 u, X
插件列表出现,在下方找到VeSTige,拖到音轨视图里;
i9 u. a1 r' z点击音轨视图里的VeSTige图标,打开插件界面;
) k8 @$ g& r9 D在插件界面中点击“打开”按钮,定位到VST插件目录,打开它;
+ g8 _8 z3 M W; ^ M4 X+ }8 W可以点击“Show/hide GUI”按钮来显示或隐藏VST插件的界面。/ R+ R& ^# \2 F3 j
能否加载成功,仍然因系统环境和Wine的版本而异。如果无法加载,则使用htop,把RemoteVSTHost.exe这个进程结束,以免占用过多处理器资源。
+ J: o' b$ l4 _( C/ h2 K0 _- L7 O, G. `( g- R" |% n
方案二:使用LinVST
U( f9 m- N9 c. m3 ~) C# D& z" S) T% z) z0 _; ]
LinVST是由OSXMidi开发的桥接器。类似于Windows下的jBridge,用户通过它提供的转换工具,创建一个原生VST插件,作为Windows版VST插件的wrapper,接下来只需在宿主中加载即可。
' `+ H. k g" J! q
4 z" ]7 M6 B2 x0 z它同时支持VST2和VST3,分别对应两个独立的项目:LinVST2、LinVST3。它们各自还拥有一个增强版本——LinVST-X和LinVST3-X,允许一个VST插件实例被共享,起到节省资源的目的(例如把一个Kontakt实例用在多个音轨上)。6 L& w4 s) ^1 j7 _6 N. B5 e/ ~4 E
( W( u, U6 j4 V0 j. Z' U9 }Arch Linux的官方源没有收录LinVST,须通过AUR安装。笔者用的是yay。- q. N: }( ]: n1 @, [
2 P4 B1 g* C0 H: b2 E% s' v; Y0. 安装yay" |: u) x$ d6 R9 a5 @& S
7 `: }* W6 l7 F. A1 L
初次听说AUR和yay的读者,可以先添加Arch Linux CN源。同样是编辑/etc/pacman.d,在结尾添加:
; S# S- O( c0 |/ U2 _0 q2 E0 h/ j0 z
' i {: Z- S0 H$ X! {% d; G% e( y[archlinuxcn]$ g; `) M6 J( j6 h4 ~$ {& e
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch7 s) u& n) M+ D
$ Z {# c$ P* A S然后安装密钥包,以及yay本体:
6 N j a. r% J- F" g* ?$ e B; z/ M4 }+ x1 a5 S6 {
sudo pacman -S archlinuxcn-keyring yay
5 `& \& ^. P3 k$ k! r e; R; N* \! T! z3 c) Z3 \) o o2 e5 V
1. 安装LinVST本体
' ]7 k" |3 |' w- `! C3 q/ ^, W4 Q) ~) O
首先安装LinVST。AUR的包分为源码包和二进制包,后者开箱即用,前者则需编译。建议选择二进制包。
! h- `# A# \6 g# e# 源码包% y: g9 _1 X* w( q9 `
yay -S linvst linvst37 Z- E5 f/ `9 J/ _5 d B+ B
# 二进制包
+ W1 J: a% e, { W: s8 \; Kyay -S linvst-bin linvst3-bin
8 L: `5 A1 x4 v' G9 H
. A; ?) Y0 o, l如果需要增强版本,则安装:
! j. h: n! x6 V1 o) k1 e( ], K4 b8 c8 g
yay -S linvst-x-bin linvst3-x-bin
2 |6 l* J& e1 S$ Z) l/ v7 c' f4 U3 C' Z9 Q- O, y8 c
注意:采用源码版编译会有两个问题:
( D& w7 B, T' _! c, B; _5 S- w+ g, C* Q
只有linvst能编译,linvst3会在编译附加组件ArchStudioUtils时出错。' M0 k5 i+ a8 l7 W3 `$ |- b$ i
生成wrapper必不可少的linvstconvert没有编译。用户必须手动进入源码的convert/目录来编译才行。; c/ r5 g: A. s2 `; Z& j
2. 如果出现错误:“一个或多个文件没有通过有效性检查!”$ `/ B' z/ X; Q+ Q0 c
( F( \; O% e) ]* q3 A. {& O
但是,由于LinVST的二进制包更新与AUR PKGBUILD的MD5值不同步,会出现能下载成功,却通不过有效性检查的情况。这时要手工修改PKGBUILD文件,去掉有效性检查的部分。. n, q! E' r! o6 D; Y% E
) B# d4 L/ Q2 A首先进入linvst-bin包的yay缓存目录:
: q }, D8 L: p5 D. @6 n
7 f* u `5 v- Bcd ~/.cache/yay/linvst-bin/! ~2 X7 z a5 o/ p. g& N
5 y/ ]+ z+ w+ K; t然后修改PKGBUILD文件,更改md5sums=(xxxxx)一行,把括号里的字符串值改为SKIP,表示“跳过有效性检查”。注意大小写:/ y3 t3 h9 N8 |# d
( b/ T3 r0 K2 l9 e# 修改前,字符串值为MD5校验和) {7 r! E: G& |% R% a) D
md5sums=(68b329da9893e34099c7d8ad5cb9c940)8 y1 Y( @0 `' [: R; ]
1 ]6 i4 c3 T# v# 修改后,字符串值为SKIP0 i1 _! ?% q* ?8 o0 o8 C8 `- L5 D
md5sums=(SKIP)
8 s. M5 u- }" {. q& ?9 f; g6 ^, B$ {! f
保存后,运行makepkg,生成安装包:8 b3 A0 B. r' b" T& | \3 @; C
% j/ L5 Z2 E3 W6 q; l
makepkg
3 D8 |4 H0 ]) |0 G* g% w
6 k1 C: v! q7 ]9 @9 e4 p生成好的安装包位于当前目录,文件名为linvst-bin-x.y-z-x86_64.pkg.tar.zst(x,y,z为版本号)。可以直接安装:" e$ w" f X6 k' A2 F2 ]& f
! q( C* d' w( \2 {) s
sudo pacman -U linvst-bin-x.y-z-x86_64.pkg.tar.zst
1 S8 ~! I! [* o, c2 ]$ I- V( k6 `7 N$ v& a5 R. _, U
用同样的方法,制作并安装其他几个二进制包。
8 A2 g5 R7 X; }! F
4 D% A0 B! p* r- A3. 生成wrapper
: k. T8 i! u: N; j( w0 V( w# H |' u- P5 E% Q3 O4 s! D
LinVST用于生成wrapper的工具有以下几种,它们界面大体相同,须从终端运行:* f8 M( q) D, y- _* \! b0 X, [2 v
% w1 ]$ k+ m- W, alinvstconvert、linvstxconvert、linvst3convert、linvst3xconvert:指定一个文件夹,然后由其中的VST插件生成对应的wrapper。
9 h/ [) `3 \! @以上工具加上tree作为后缀:递归寻找子目录下的所有VST插件,为其生成wrapper。3 J, M& ~' e6 J
如果所有的VST插件都在一个文件夹里,则选前一类;而如果位于若干个子目录里(比如部分VST插件带有附属的文件,要与插件本体放在单独目录中),则选后一类。
6 B; a+ i( F6 C0 Y' ^$ _& ]5 c) v5 X/ U( z
运行后,出现这个界面:
1 K2 Y' L1 B2 y$ q8 O: U5 S1 k+ Z/ P; H
3 E6 F4 H6 e8 c7 ~/ ~. H f2 X# w( y$ b& h( e5 ]0 M5 J* Y& E
首先把你的Windows VST插件统一放到一个目录中,建议~/.vst(VST2)和~/.vst3(VST3)。
0 w$ Y$ N! l0 g+ B在生成工具界面中,选择LinVST库。点击【Choose linvst.so】,在文件对话框中定位到/usr/share/LinVst,选择linvst.so。其他几个VST3和增强版的库文件也在该文件夹中,如果是linvst3convert,则选择linvst3.so,以此类推。
3 }, ?$ K6 e' r4 z然后通过下方的【Choose dll folder】,选择Windows VST DLL所在的文件夹。(如果是linvst3convert,则界面是【Choose VST3 folder】,选择*.vst3所在文件夹)。
2 Y2 ]4 {0 |6 i: a \( N& g( ^点击【Start】生成,随后VST插件目录下就会出现与插件同名的*.so文件,即原生VST wrapper。3 f2 O0 p% _3 e/ c" m% R: A d& t$ z
最后把插件目录添加到DAW中即可。实测,REAPER for Linux完美支持。% j0 i: S6 z' u* w0 _! t
注意:' U$ i# l+ B {) k2 z
/ V5 a+ }1 y' t. e- K1 S0 S8 AVST插件和生成的*.so文件必须在同一目录下,否则LinVST会提示找不到插件。6 g; z0 G. Q5 c9 }$ }1 Z
Wine的兼容性# v8 a& B" f% Z7 z, F. W
) R P0 g T# ]6 _: a4 g0 x
Wine是一个持续开发的项目,这是由Windows的复杂度决定的,开发团队不可能在短期内适配真实Windows下的所有特性,并保持其稳定性。因此并不是所有的程序都能完美运行,包括VST插件,测试中程序挂掉、出现Bug,在所难免。
% V& t Y. D, U: G/ {0 q
: e1 d+ i( b- h幸运的是,有些开发者会考虑到Linux的生态,会优化自己的应用程序,使其能完美地运行于Wine。REAPER就是一个很好的例子,它的Windows版本可以直接在Wine中安装。之前REAPER并未推出原生的Linux版本,官方特别在下载页中提到,“Windows版本可在Wine下运行良好(For Linux users, the Windows version works well with WINE.)”,便利了Linux用户,也实现了开疆拓土。$ W- R l3 E/ a6 b, t
V# P6 I( c' D1 n
即便如此,REAPER仍属于少数。大部分的应用仍需自行去测试,检验其在Wine下的兼容性,以及事后会不会出Bug。' Z* v/ p/ ]# Y ~
% S9 A0 F: N {8 K4 b
我所做的测试1 a9 ^0 y: ?6 q
, i4 Q, i P# f6 W6 r) d7 `Kontakt Player:我用Wine下的REAPER for Windows测试,它可以在REAPER中正常加载并播放NKI采样,表现与Windows下一致。不过,如果在REAPER中就地重新加载(选择“更改当前VST效果”后重新选择Kontakt),则会导致长时间卡住,可见并不完美。7 U& ?) |; ~0 z4 Z# u- e; E
Synth1:一款免费、强悍的合成器插件。
+ b- O0 w$ B) ?& U5 m在LMMS下尝试用VeSTige打开,但没能启动成功。相反LMMS自带的VST宿主程序(RemoteVSTHost.exe)还卡在后台占用CPU,只能手动结束。
# Y9 M [& X# A% n5 x移师REAPER for Linux,借助LinVST,顺利运行,体验与Windows别无二致。
, q, G* i6 h1 i, ^4 L3 S8 E" e
1 D2 p3 k3 W* ^# U" W$ ^3 l( W后记
. [8 l4 o8 M+ K+ e+ p( ^7 O以上是作者在Arch Linux下试玩音乐制作软件的体会,发掘了Linux的别样用法。由于厂商适配策略的不同,并不能保证Linux一定能拥有不输于Windows和MacOS的体验,但当下的Linux至少不存在这方面的空白。/ m& [8 N/ A' t/ d3 U
) W- j' p- N- x6 \. ^2 S" G不过,在Linux下制作音乐尚有明显的局限性,体现在诸多商业软件缺少对Linux的支持。作者曾经在自己的惠普笔记本上安装Arch Linux,配置好REAPER和Native Instruments的Komplete Start套装,无奈兼容性差强人意,到最后还是只能回到Windows。要想让Linux能在音乐制作领域与Windows、MacOS一分高下,还有很长的路要走。 |
|