|

楼主 |
发表于 2021-2-21 18:23:44
|
显示全部楼层
- O% Z) k. W6 B$ A
使用VST插件的方案+ h- ]1 p9 h4 p% q1 c
# y/ U H" V/ U. h T
Linux下的原生DAW,主要有两种支持Windows版VST插件的方案:8 }) {: G# T B+ [2 C
7 \; R' d1 }! R使用基于Wine的桥接器,将Windows版VST插件转换成原生的Linux VST插件,如LinVST
9 O$ g( U/ T9 R原理是构建一个原生VST格式的wrapper,宿主在加载wrapper后会自动调用桥接器的host服务端,从而利用Wine加载VST本体。% |9 ?3 b' C5 q+ T* M
通用的方案,只要DAW支持原生VST,就可以用。
) t) U$ L/ C* @$ a内建桥接器,即采用自己编写的桥接器,如LMMS中的VeSTige& |8 ^7 R% t' U: Y* s( g( W
只有少数的DAW有这个功能。
; _, p1 K+ z( }/ O2 e/ e9 D0 P1 y另外,还可以直接使用Wine来运行Windows版的DAW,它会像在Windows里那样加载VST。它基本不需任何其他配置,但不具备普适性,不能保证所有的DAW都能正常运行。目前兼容性好的只有REAPER。8 b% s- B! P3 [. Q7 ?& k) _7 j
. r9 s# S8 R+ }* S/ F/ B( `方案一:内建桥接器
9 {3 g* r6 t+ @
3 r" c% o$ ?4 d8 l以LMMS为例,它附带了专门的桥接器VeSTige,可以直接像在Windows那样,加载*.dll为扩展名的VST插件。# l" P; p' H* n% Y' \! Z1 p
* R0 a# E/ ]% D8 E* a$ T- i
; o" {: Z& T+ Y( s6 @* r
2 |+ G' B* Z$ |+ H1 q# i
操作步骤如下:
\5 g( M; }/ H# W
( D* v" H. M$ f1 ?2 h+ x点击左侧的Instrument Plugins(音频插件);! u4 h K/ ~* l% a1 o6 O
插件列表出现,在下方找到VeSTige,拖到音轨视图里;
8 D- K9 ]* A' |6 h' `- E* i/ @% |点击音轨视图里的VeSTige图标,打开插件界面;: X: p! P l+ @0 d
在插件界面中点击“打开”按钮,定位到VST插件目录,打开它;
8 K P) j7 r ?! X. n可以点击“Show/hide GUI”按钮来显示或隐藏VST插件的界面。
5 n7 y. K: M5 E/ r- ]$ m能否加载成功,仍然因系统环境和Wine的版本而异。如果无法加载,则使用htop,把RemoteVSTHost.exe这个进程结束,以免占用过多处理器资源。
& V* x& h9 [" x" ]0 P
: J3 L! J2 [7 m9 l9 G, K方案二:使用LinVST, H+ }& i+ r1 W' N
+ i4 I* M1 L4 ?- A: R A
LinVST是由OSXMidi开发的桥接器。类似于Windows下的jBridge,用户通过它提供的转换工具,创建一个原生VST插件,作为Windows版VST插件的wrapper,接下来只需在宿主中加载即可。
! m; r: N7 m0 U0 @* C( H; X( D% L) ~8 y' A) ~
它同时支持VST2和VST3,分别对应两个独立的项目:LinVST2、LinVST3。它们各自还拥有一个增强版本——LinVST-X和LinVST3-X,允许一个VST插件实例被共享,起到节省资源的目的(例如把一个Kontakt实例用在多个音轨上)。/ ]# d& c, A1 F5 R7 c H. m# p% l
4 e b; R/ {8 z$ k$ p' ~Arch Linux的官方源没有收录LinVST,须通过AUR安装。笔者用的是yay。. n+ R0 F; ?% R+ j
, d' g0 p. ~. j) L) J0. 安装yay1 O2 h, e6 |% q/ e4 R
* W3 i9 v B; D E初次听说AUR和yay的读者,可以先添加Arch Linux CN源。同样是编辑/etc/pacman.d,在结尾添加:
$ h; p# \; E8 @5 v) F0 |+ R* z" R
[archlinuxcn]8 r( Y( I) h# S4 v- d4 V( x
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
: l' o8 \, e/ b8 _
& b2 v5 `1 n& R. O' z# v2 Z7 E然后安装密钥包,以及yay本体:" B1 @) r; q: f( O. t
5 k4 v. W6 l) v0 v& B
sudo pacman -S archlinuxcn-keyring yay( u% e2 G# _8 @9 J" i& A
* w" u Z4 `8 c* t/ Z+ v" o1. 安装LinVST本体
" Q! h+ c9 e7 j6 N( ~8 o6 Z7 L% }/ B/ T/ P0 y
首先安装LinVST。AUR的包分为源码包和二进制包,后者开箱即用,前者则需编译。建议选择二进制包。
6 Q4 b O/ q* Z2 w# 源码包5 z5 N( x G) A* V. a7 D
yay -S linvst linvst38 t/ z' |) p% Y$ E$ W' c$ I
# 二进制包
' m7 M8 Z/ n$ g F+ Q0 Fyay -S linvst-bin linvst3-bin
) r. [) L; {3 }) H5 c+ F
- H9 y7 {* H0 t8 B/ t* k. X+ {! [如果需要增强版本,则安装:
6 U' i( n6 S& B
' o/ G& I/ b' D( Z! O- o7 tyay -S linvst-x-bin linvst3-x-bin
+ I- Z4 U, H8 T4 }6 s4 ?9 B! ?" u" t, b1 z! k8 @* z
注意:采用源码版编译会有两个问题:! O& S1 F0 h |+ B1 A' h
8 q/ x- d" M) f只有linvst能编译,linvst3会在编译附加组件ArchStudioUtils时出错。$ A' B1 W5 T3 @6 @% m5 Q
生成wrapper必不可少的linvstconvert没有编译。用户必须手动进入源码的convert/目录来编译才行。
, |, K) o+ x2 F- Q& L+ P2. 如果出现错误:“一个或多个文件没有通过有效性检查!”, V8 ]. D) h# O/ [/ L2 @9 q
- t) B+ J9 v0 g3 B) k
但是,由于LinVST的二进制包更新与AUR PKGBUILD的MD5值不同步,会出现能下载成功,却通不过有效性检查的情况。这时要手工修改PKGBUILD文件,去掉有效性检查的部分。
$ e: K7 a: Z( ~+ V, m: R, }
8 E9 E' z7 g4 |7 C3 ]: @首先进入linvst-bin包的yay缓存目录:: b8 v* y! ?% z# Z9 }1 D0 Y& ^- {
: y" S+ j1 r1 z" x
cd ~/.cache/yay/linvst-bin/5 E, B/ ]. F7 V) |& Y
. p& e4 N) o( u8 C然后修改PKGBUILD文件,更改md5sums=(xxxxx)一行,把括号里的字符串值改为SKIP,表示“跳过有效性检查”。注意大小写:
j6 C5 z9 K2 q8 H8 E8 f4 `* |( W, F, B" D# c
# 修改前,字符串值为MD5校验和1 z1 D, ]5 S$ V* [& {, r
md5sums=(68b329da9893e34099c7d8ad5cb9c940)
- g, t, q, T5 _- x# b4 e* F0 h$ ?+ o! E. O1 a
# 修改后,字符串值为SKIP! ~" i3 G7 s9 X/ `1 X# a6 T
md5sums=(SKIP)
" H" O& N0 W' C+ A# ~: I& H5 q
5 S- g6 e! R3 i/ z保存后,运行makepkg,生成安装包:
0 ^! r ~) p8 o( K D2 d
\4 R5 u7 ?( |8 a: q7 v9 q% K, B$ xmakepkg
4 Y. y: c2 @ Z- s8 R! R |$ y t8 Y
生成好的安装包位于当前目录,文件名为linvst-bin-x.y-z-x86_64.pkg.tar.zst(x,y,z为版本号)。可以直接安装:
/ A9 c# T) s4 M. n7 L/ t( Q. e2 M
sudo pacman -U linvst-bin-x.y-z-x86_64.pkg.tar.zst
1 k: U/ U5 H+ v- e, g9 I) g- }- _' P
用同样的方法,制作并安装其他几个二进制包。# j- ?0 P6 j! T9 Y3 ?
" E- {# v8 W( o. K5 D- W
3. 生成wrapper
4 b8 E1 z6 C$ x- Z5 \
$ _3 L S" U, D- E+ _$ W3 \- bLinVST用于生成wrapper的工具有以下几种,它们界面大体相同,须从终端运行:
. s4 }) }4 ?9 s# F! d8 }- D J0 t K/ P$ w4 j
linvstconvert、linvstxconvert、linvst3convert、linvst3xconvert:指定一个文件夹,然后由其中的VST插件生成对应的wrapper。
$ [1 Q7 H0 F7 V- t以上工具加上tree作为后缀:递归寻找子目录下的所有VST插件,为其生成wrapper。" b3 ^7 ~. f" g m' ?/ d9 I' `/ Z; Q
如果所有的VST插件都在一个文件夹里,则选前一类;而如果位于若干个子目录里(比如部分VST插件带有附属的文件,要与插件本体放在单独目录中),则选后一类。! m5 ]/ B& w: W/ u. n
. |6 H2 @$ \0 Z, B" j o& e8 B
运行后,出现这个界面:; J3 p: f# S6 y7 s
7 z3 j. w& b; q
7 }' @5 x# `# i. ]
; l* W3 `( L4 P7 g6 }
首先把你的Windows VST插件统一放到一个目录中,建议~/.vst(VST2)和~/.vst3(VST3)。
/ O7 k/ l1 V- r: N) ~* Y( R在生成工具界面中,选择LinVST库。点击【Choose linvst.so】,在文件对话框中定位到/usr/share/LinVst,选择linvst.so。其他几个VST3和增强版的库文件也在该文件夹中,如果是linvst3convert,则选择linvst3.so,以此类推。
1 o3 Z5 @9 N6 k7 Q2 Y& H然后通过下方的【Choose dll folder】,选择Windows VST DLL所在的文件夹。(如果是linvst3convert,则界面是【Choose VST3 folder】,选择*.vst3所在文件夹)。( o5 i$ _- j" q$ K4 u# N
点击【Start】生成,随后VST插件目录下就会出现与插件同名的*.so文件,即原生VST wrapper。
! o8 I; W& h, f3 Q3 V最后把插件目录添加到DAW中即可。实测,REAPER for Linux完美支持。" r# h5 k! t o% ^3 d3 ~+ L3 d
注意:
) a" b& T4 j; V
4 L6 Z0 L, s; RVST插件和生成的*.so文件必须在同一目录下,否则LinVST会提示找不到插件。9 o- g+ f- U2 K P
Wine的兼容性& x* C0 V4 m, P" ]0 N: [
* j L& E6 Q4 F% h7 qWine是一个持续开发的项目,这是由Windows的复杂度决定的,开发团队不可能在短期内适配真实Windows下的所有特性,并保持其稳定性。因此并不是所有的程序都能完美运行,包括VST插件,测试中程序挂掉、出现Bug,在所难免。
* a* s K$ q M4 h
7 [- I3 d- X Q% Y3 g) ^3 i& m& W幸运的是,有些开发者会考虑到Linux的生态,会优化自己的应用程序,使其能完美地运行于Wine。REAPER就是一个很好的例子,它的Windows版本可以直接在Wine中安装。之前REAPER并未推出原生的Linux版本,官方特别在下载页中提到,“Windows版本可在Wine下运行良好(For Linux users, the Windows version works well with WINE.)”,便利了Linux用户,也实现了开疆拓土。8 }" L' L7 \& k4 ?" c
9 h5 e6 B7 j( d3 B# j) g
即便如此,REAPER仍属于少数。大部分的应用仍需自行去测试,检验其在Wine下的兼容性,以及事后会不会出Bug。
% ^: h+ N' Z( h( p2 P* M
% k" O, w1 J* [我所做的测试' w2 G" H. w" `% |( U! Y5 r3 H! K, V
6 C! |: a/ ?+ Q% Q3 j# \6 z& U. K
Kontakt Player:我用Wine下的REAPER for Windows测试,它可以在REAPER中正常加载并播放NKI采样,表现与Windows下一致。不过,如果在REAPER中就地重新加载(选择“更改当前VST效果”后重新选择Kontakt),则会导致长时间卡住,可见并不完美。
- p+ w V: _ w, _% nSynth1:一款免费、强悍的合成器插件。
V' P- ]4 z9 @/ L( l% k3 e4 c在LMMS下尝试用VeSTige打开,但没能启动成功。相反LMMS自带的VST宿主程序(RemoteVSTHost.exe)还卡在后台占用CPU,只能手动结束。! D3 J- w( ]1 |& h! \$ \: H5 k
移师REAPER for Linux,借助LinVST,顺利运行,体验与Windows别无二致。) x) m, |4 y' {# b8 @. o
; Z: l7 A- y# R p+ Q. o
后记
8 R! y5 E+ }* Q# Z: [% n( f9 Z以上是作者在Arch Linux下试玩音乐制作软件的体会,发掘了Linux的别样用法。由于厂商适配策略的不同,并不能保证Linux一定能拥有不输于Windows和MacOS的体验,但当下的Linux至少不存在这方面的空白。: h8 g m% h, |2 o* t: R
5 B8 R1 K% z% C! _( t+ O- M' h不过,在Linux下制作音乐尚有明显的局限性,体现在诸多商业软件缺少对Linux的支持。作者曾经在自己的惠普笔记本上安装Arch Linux,配置好REAPER和Native Instruments的Komplete Start套装,无奈兼容性差强人意,到最后还是只能回到Windows。要想让Linux能在音乐制作领域与Windows、MacOS一分高下,还有很长的路要走。 |
|