|
楼主 |
发表于 2021-2-21
|
6 Q$ }5 t* o$ f. X, M' }! q使用VST插件的方案
; d+ U; `* ~: M+ `! I; |
: o, S3 \' f I( SLinux下的原生DAW,主要有两种支持Windows版VST插件的方案:8 R0 M p/ u# J9 h3 F" k
( O% P, r, b' d# _
使用基于Wine的桥接器,将Windows版VST插件转换成原生的Linux VST插件,如LinVST
& o2 l% b$ N* J- z/ h$ ?2 c1 S/ i原理是构建一个原生VST格式的wrapper,宿主在加载wrapper后会自动调用桥接器的host服务端,从而利用Wine加载VST本体。
' B* c: W* |0 ]# y8 ~2 w9 P通用的方案,只要DAW支持原生VST,就可以用。5 z% m! C0 g' i: {- W x
内建桥接器,即采用自己编写的桥接器,如LMMS中的VeSTige
: N# B5 I' v1 n) E只有少数的DAW有这个功能。
" Y! ^! [ r3 J- y, u( o另外,还可以直接使用Wine来运行Windows版的DAW,它会像在Windows里那样加载VST。它基本不需任何其他配置,但不具备普适性,不能保证所有的DAW都能正常运行。目前兼容性好的只有REAPER。 j# \; a# t: ~8 N
6 X6 j J) {3 v; C5 H$ }5 H
方案一:内建桥接器# B% M/ K. R' y% I% y* o
2 J. U D6 x2 b& D& T, m% T& ]; y; D以LMMS为例,它附带了专门的桥接器VeSTige,可以直接像在Windows那样,加载*.dll为扩展名的VST插件。) g3 s( _1 S x
, u) E+ z0 q) C
8 M: o% t0 k! [- F: b0 F4 U
@+ }; J9 v6 n操作步骤如下: C: \2 D }" a4 s" R+ }
& }9 |* n( X2 v( u% R" h8 E点击左侧的Instrument Plugins(音频插件);
( `0 o: ?/ |1 p$ G7 I8 j插件列表出现,在下方找到VeSTige,拖到音轨视图里;
/ `& d" p, u/ A* D点击音轨视图里的VeSTige图标,打开插件界面;5 h) t9 K* u5 `5 G8 _
在插件界面中点击“打开”按钮,定位到VST插件目录,打开它;
% }6 P# \- ^" ?, ~" ~2 P4 @- R! z可以点击“Show/hide GUI”按钮来显示或隐藏VST插件的界面。: x6 V4 b5 R g- L
能否加载成功,仍然因系统环境和Wine的版本而异。如果无法加载,则使用htop,把RemoteVSTHost.exe这个进程结束,以免占用过多处理器资源。
; @4 u9 ], V' }3 g8 d: j' L* L1 ~# L# o+ a* {2 B) M
方案二:使用LinVST
; M4 u, ~$ Y% `* J r/ y) L% B- I" L' B! O) c: q/ Y
LinVST是由OSXMidi开发的桥接器。类似于Windows下的jBridge,用户通过它提供的转换工具,创建一个原生VST插件,作为Windows版VST插件的wrapper,接下来只需在宿主中加载即可。
' p# ~ @+ U7 V% W0 t( ^" Q9 y, `( F' u
它同时支持VST2和VST3,分别对应两个独立的项目:LinVST2、LinVST3。它们各自还拥有一个增强版本——LinVST-X和LinVST3-X,允许一个VST插件实例被共享,起到节省资源的目的(例如把一个Kontakt实例用在多个音轨上)。) G5 A' E& w' H8 ]% Q0 T3 C
$ E4 z/ V. @& CArch Linux的官方源没有收录LinVST,须通过AUR安装。笔者用的是yay。/ j* y' H/ K7 W0 p1 ~$ m A
4 Z4 J- M4 ?5 S$ j8 I1 d6 ^: b0. 安装yay p5 R& T* S. \; d& d
% `* A! R; f" l: W初次听说AUR和yay的读者,可以先添加Arch Linux CN源。同样是编辑/etc/pacman.d,在结尾添加:* X. T" p3 y0 H m( e; ]+ F5 C
9 ~; y$ ]3 y& a( p7 t[archlinuxcn]6 e/ [( X& k- q, @
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch: e# W+ N6 y% P8 K: Y
" \& y& t9 }- t; x
然后安装密钥包,以及yay本体:
7 o. I4 V% B1 |
, w, h" ?! ?" k# zsudo pacman -S archlinuxcn-keyring yay0 ]# h# i% Q" N% m3 {$ v: z
: E7 a5 q# }$ J/ S1. 安装LinVST本体
2 c% T3 f# h8 n3 K( R( l; U# k( @# w" o% o+ |1 o7 L/ y$ q. P# S& ~
首先安装LinVST。AUR的包分为源码包和二进制包,后者开箱即用,前者则需编译。建议选择二进制包。
, V0 Q4 |% R/ r# ]7 F* U4 \# 源码包
- v& e: h) b2 t) S8 O; ryay -S linvst linvst3
3 s, j# @0 Y! z. k# 二进制包
; `4 v1 z% S/ X ]yay -S linvst-bin linvst3-bin
/ M# m) e& j$ P |: ?4 ?4 P8 Z& Z: `! r; J7 U
如果需要增强版本,则安装:5 |% D& ~& u4 l* ?( v- f
* K4 O3 S1 {' m3 t3 o4 F- G. t8 i
yay -S linvst-x-bin linvst3-x-bin+ }$ t& Z+ s5 u: O% [* ~
3 u/ F. l4 @: E- |- @
注意:采用源码版编译会有两个问题:# g$ k" l: t3 u# r7 Z1 ]- W7 D
: b7 h8 V$ m& R# G7 \- B }
只有linvst能编译,linvst3会在编译附加组件ArchStudioUtils时出错。0 E1 d" R+ [; D
生成wrapper必不可少的linvstconvert没有编译。用户必须手动进入源码的convert/目录来编译才行。
# T- O. @5 A/ L$ q& A0 g2 T7 i2. 如果出现错误:“一个或多个文件没有通过有效性检查!”
( H! ^3 B) r; B9 H1 Q4 K* C* i* M
但是,由于LinVST的二进制包更新与AUR PKGBUILD的MD5值不同步,会出现能下载成功,却通不过有效性检查的情况。这时要手工修改PKGBUILD文件,去掉有效性检查的部分。
3 t. }# H/ T. n( k) Z0 A" r+ r( |& Y% j5 i
首先进入linvst-bin包的yay缓存目录:
|! B# p0 M6 x$ N) `
) t) `* e6 P: C- t2 f5 ]cd ~/.cache/yay/linvst-bin/
# }- [0 u* G5 @1 t: h( [" r+ Z5 ~2 X6 Q* y
然后修改PKGBUILD文件,更改md5sums=(xxxxx)一行,把括号里的字符串值改为SKIP,表示“跳过有效性检查”。注意大小写:* K2 r6 a+ T5 p8 R$ X( s4 t# F
+ L7 y3 ]- ~3 c* Z# 修改前,字符串值为MD5校验和
" k) m# x; V) d& z C7 imd5sums=(68b329da9893e34099c7d8ad5cb9c940)2 Y1 t! g' S1 p5 b( @6 D
9 ?0 [6 u% f& I9 k; D% i# 修改后,字符串值为SKIP4 y) {% U; Q) N3 u, {" l9 ^
md5sums=(SKIP)
. C0 _7 S' Y2 X. f) a( {$ L. c) g* E- s/ _; C% _+ A' t
保存后,运行makepkg,生成安装包:' w4 Z" K8 K# r, H- a! x3 n
9 M% x) e% _' A3 L; S( \3 W! H
makepkg
: W$ w; ]0 I: H" K* V5 c& l* x
9 c" e% h$ Q/ T" `3 g5 ~& d8 F" ?生成好的安装包位于当前目录,文件名为linvst-bin-x.y-z-x86_64.pkg.tar.zst(x,y,z为版本号)。可以直接安装:
/ [3 s% x- T/ R4 J; s
& s* w8 {8 D: u. Q( vsudo pacman -U linvst-bin-x.y-z-x86_64.pkg.tar.zst% x- ~: H, V0 \( Q. P
. }- g' B+ K" |; n7 L/ Y* K
用同样的方法,制作并安装其他几个二进制包。
2 X8 r: r- H$ H E% e* |, a
5 c7 v, r( i" e7 c. g3 ^3. 生成wrapper
* c# i% f8 U) I, Y( a0 Q$ Z. g' {+ M5 Y& [6 f5 I+ @. R
LinVST用于生成wrapper的工具有以下几种,它们界面大体相同,须从终端运行:2 ?4 M( k9 Q0 |3 N$ S" E% x
) g `. B. X3 |. R
linvstconvert、linvstxconvert、linvst3convert、linvst3xconvert:指定一个文件夹,然后由其中的VST插件生成对应的wrapper。
% n4 \, c, o0 j X+ |) C以上工具加上tree作为后缀:递归寻找子目录下的所有VST插件,为其生成wrapper。( k4 {$ o1 _$ _6 w0 t
如果所有的VST插件都在一个文件夹里,则选前一类;而如果位于若干个子目录里(比如部分VST插件带有附属的文件,要与插件本体放在单独目录中),则选后一类。
$ R O( g) S' Q4 T
& i% \$ y2 R: Y0 G% s' k运行后,出现这个界面:
0 S6 [& G: o1 {) L& T- u
+ _" c6 }- N/ i# u6 |, C+ I# @9 Q( `
/ C7 U0 K0 F, P1 i3 b7 [
, g: X. F( K* H" G' X! n! X, e首先把你的Windows VST插件统一放到一个目录中,建议~/.vst(VST2)和~/.vst3(VST3)。' r" w3 G8 V$ t' o4 V `" K+ t
在生成工具界面中,选择LinVST库。点击【Choose linvst.so】,在文件对话框中定位到/usr/share/LinVst,选择linvst.so。其他几个VST3和增强版的库文件也在该文件夹中,如果是linvst3convert,则选择linvst3.so,以此类推。# |& A s& B4 y# }8 C
然后通过下方的【Choose dll folder】,选择Windows VST DLL所在的文件夹。(如果是linvst3convert,则界面是【Choose VST3 folder】,选择*.vst3所在文件夹)。; E H" d1 `. B* A) f
点击【Start】生成,随后VST插件目录下就会出现与插件同名的*.so文件,即原生VST wrapper。' i; a2 T$ L$ ~) [0 I5 u t1 {0 y% Q
最后把插件目录添加到DAW中即可。实测,REAPER for Linux完美支持。
' H, \7 J9 F- E$ u) t& s5 b注意:
3 W- i+ H# {3 r, n% ^6 e" Z; x( F
: H# ^+ P5 t& F' DVST插件和生成的*.so文件必须在同一目录下,否则LinVST会提示找不到插件。
# Z$ t$ f( o9 M2 v- L# D+ p& eWine的兼容性* p: X, b$ T9 j$ D J
; h! C9 s, w8 X4 o9 N! KWine是一个持续开发的项目,这是由Windows的复杂度决定的,开发团队不可能在短期内适配真实Windows下的所有特性,并保持其稳定性。因此并不是所有的程序都能完美运行,包括VST插件,测试中程序挂掉、出现Bug,在所难免。
! Z3 O5 R7 E! f! s) R+ R, I& C
]7 s; H; j4 L$ S# w幸运的是,有些开发者会考虑到Linux的生态,会优化自己的应用程序,使其能完美地运行于Wine。REAPER就是一个很好的例子,它的Windows版本可以直接在Wine中安装。之前REAPER并未推出原生的Linux版本,官方特别在下载页中提到,“Windows版本可在Wine下运行良好(For Linux users, the Windows version works well with WINE.)”,便利了Linux用户,也实现了开疆拓土。/ \+ [/ k. T* V% ]7 S
2 p; ^8 n+ V9 h- Z即便如此,REAPER仍属于少数。大部分的应用仍需自行去测试,检验其在Wine下的兼容性,以及事后会不会出Bug。
; d2 o/ o: {2 u ~. X
' f z5 q, u- r我所做的测试
, z3 o. G1 ~ ?( \5 ~
6 t4 }1 X6 N# R3 X- X& iKontakt Player:我用Wine下的REAPER for Windows测试,它可以在REAPER中正常加载并播放NKI采样,表现与Windows下一致。不过,如果在REAPER中就地重新加载(选择“更改当前VST效果”后重新选择Kontakt),则会导致长时间卡住,可见并不完美。
( H) R! Z5 P+ w7 @6 ]3 V* U) h+ s- dSynth1:一款免费、强悍的合成器插件。: [0 z9 I5 Z- ?4 ~ `
在LMMS下尝试用VeSTige打开,但没能启动成功。相反LMMS自带的VST宿主程序(RemoteVSTHost.exe)还卡在后台占用CPU,只能手动结束。( s [- h \+ O9 ?2 U, Y% w+ W
移师REAPER for Linux,借助LinVST,顺利运行,体验与Windows别无二致。
# ?3 z1 x+ K5 E2 C7 Q" l2 J1 G) C# z4 F
后记5 e5 Q& S; [7 r1 Q. }1 L6 I1 i
以上是作者在Arch Linux下试玩音乐制作软件的体会,发掘了Linux的别样用法。由于厂商适配策略的不同,并不能保证Linux一定能拥有不输于Windows和MacOS的体验,但当下的Linux至少不存在这方面的空白。* t, ]6 O) L4 q+ r1 @
5 y3 @* A2 p0 d$ r0 W# R+ {' |, Q5 f7 C不过,在Linux下制作音乐尚有明显的局限性,体现在诸多商业软件缺少对Linux的支持。作者曾经在自己的惠普笔记本上安装Arch Linux,配置好REAPER和Native Instruments的Komplete Start套装,无奈兼容性差强人意,到最后还是只能回到Windows。要想让Linux能在音乐制作领域与Windows、MacOS一分高下,还有很长的路要走。 |
|