|

楼主 |
发表于 2021-2-21 18:23:44
|
显示全部楼层
& s) n* m) e( P; x" T
使用VST插件的方案' I" U, n- u9 d. p) x9 x# O' W7 M
" s# d' G9 X/ J$ }' W; O+ Y8 T& N: QLinux下的原生DAW,主要有两种支持Windows版VST插件的方案:5 u- y: j& N D, f5 K
% O. ^% k& [2 l: d3 I使用基于Wine的桥接器,将Windows版VST插件转换成原生的Linux VST插件,如LinVST9 M. f; s C! p: b, B& E% c6 l
原理是构建一个原生VST格式的wrapper,宿主在加载wrapper后会自动调用桥接器的host服务端,从而利用Wine加载VST本体。
8 H8 |* S" [! D! V通用的方案,只要DAW支持原生VST,就可以用。
( m4 v, M- X" o& H; n# d: L内建桥接器,即采用自己编写的桥接器,如LMMS中的VeSTige
* F) l3 t }+ P9 t7 j0 E( V- V只有少数的DAW有这个功能。
0 v+ v% c) U" C; ?3 T/ P另外,还可以直接使用Wine来运行Windows版的DAW,它会像在Windows里那样加载VST。它基本不需任何其他配置,但不具备普适性,不能保证所有的DAW都能正常运行。目前兼容性好的只有REAPER。4 N3 }$ M+ n7 e" }5 J
" w2 W1 f+ q( T$ y
方案一:内建桥接器
|* \/ c! `$ ^" R
" h* Y$ r) _) c" q7 Z以LMMS为例,它附带了专门的桥接器VeSTige,可以直接像在Windows那样,加载*.dll为扩展名的VST插件。
9 n+ B ]6 E0 ~9 L9 V$ O
2 F& a; J3 }' i# z) x0 N8 o5 p
6 t1 |7 B) y4 s+ M. F8 m: J
6 c0 B( V/ ?% O操作步骤如下:* q! q8 A# u: \# i0 N
) E+ f T- h, }' u8 ~! z
点击左侧的Instrument Plugins(音频插件);
4 }& ?) R1 K: c3 L' k8 V插件列表出现,在下方找到VeSTige,拖到音轨视图里;$ d' K( p- q9 w3 u' p- y
点击音轨视图里的VeSTige图标,打开插件界面;% a' B8 j2 B2 ^- h7 w8 c
在插件界面中点击“打开”按钮,定位到VST插件目录,打开它;0 m' m! ^% w+ Y9 ?" r, q/ k
可以点击“Show/hide GUI”按钮来显示或隐藏VST插件的界面。4 A5 R0 ^7 w, A) k
能否加载成功,仍然因系统环境和Wine的版本而异。如果无法加载,则使用htop,把RemoteVSTHost.exe这个进程结束,以免占用过多处理器资源。
) r! p4 X6 | |+ O; L; k% x$ j
0 M2 A; ]9 B ^( p# S$ c9 u* l方案二:使用LinVST
% H7 K# ?9 L0 g- }. c2 ?5 E8 S- E- J' L8 V- M& K
LinVST是由OSXMidi开发的桥接器。类似于Windows下的jBridge,用户通过它提供的转换工具,创建一个原生VST插件,作为Windows版VST插件的wrapper,接下来只需在宿主中加载即可。6 p, ^! a# B1 H* M5 J( {2 O
7 T/ J' y$ w5 b3 t4 p它同时支持VST2和VST3,分别对应两个独立的项目:LinVST2、LinVST3。它们各自还拥有一个增强版本——LinVST-X和LinVST3-X,允许一个VST插件实例被共享,起到节省资源的目的(例如把一个Kontakt实例用在多个音轨上)。( a2 p$ d3 W' b
u; y; N. {+ b3 q: _/ ]Arch Linux的官方源没有收录LinVST,须通过AUR安装。笔者用的是yay。8 @, c9 B- E5 A: {1 M2 b! ?
( [) u+ h. {$ t1 X. [1 K$ o6 E
0. 安装yay
( f; E- [8 m# M+ B' W' i3 t
2 y% }$ O8 ~ F, G6 E# z$ T" O初次听说AUR和yay的读者,可以先添加Arch Linux CN源。同样是编辑/etc/pacman.d,在结尾添加:
5 O! W1 O# Q! q) M& w
6 \+ g3 C: A, L5 t; Z( M[archlinuxcn]
8 ?2 }7 H( o. Z- n* MServer = https://mirrors.ustc.edu.cn/archlinuxcn/$arch; R: M2 S9 v) ] H
5 H2 s6 q, J6 l k
然后安装密钥包,以及yay本体:
) O9 S P0 N* U8 f" V' g5 G. j% X s; Q3 ?" q, s4 H) d
sudo pacman -S archlinuxcn-keyring yay% O$ y8 a' Y0 L9 o& S/ D6 r
+ v9 O% {9 r1 L0 l/ ^* ^" I/ E1. 安装LinVST本体
. K7 Y5 |; x( D; f% F
+ A9 J0 p; X; n$ D6 H首先安装LinVST。AUR的包分为源码包和二进制包,后者开箱即用,前者则需编译。建议选择二进制包。2 X. S$ \ [; i' o
# 源码包) g$ I, V: J1 L+ ?
yay -S linvst linvst33 ^, V8 D, r$ ~ n
# 二进制包
, p7 l& Y C- h" a" Q; ]' H. f& pyay -S linvst-bin linvst3-bin5 G& z) p; {' O8 L1 y8 T
5 Y( Z% p) l- Z4 y% I# F+ D& H如果需要增强版本,则安装:
6 X7 V/ s/ S: j6 T$ H. j# @/ Q: u- u0 U- a+ h% z) t) h, M0 P
yay -S linvst-x-bin linvst3-x-bin* l8 ^# C! `5 M+ A
u8 a) l3 Q& ^ V
注意:采用源码版编译会有两个问题:5 R8 i& F ]& [* T) W& p) p
4 C$ a: u( D% |; Z) S2 g
只有linvst能编译,linvst3会在编译附加组件ArchStudioUtils时出错。
, C0 D4 t" M1 {5 q5 E生成wrapper必不可少的linvstconvert没有编译。用户必须手动进入源码的convert/目录来编译才行。
5 U- S6 ^+ `" P* i2 _2 S% h/ U# m2. 如果出现错误:“一个或多个文件没有通过有效性检查!”
1 Y4 c, _% C `9 h2 s
5 M3 q" f' ?# ~! J但是,由于LinVST的二进制包更新与AUR PKGBUILD的MD5值不同步,会出现能下载成功,却通不过有效性检查的情况。这时要手工修改PKGBUILD文件,去掉有效性检查的部分。
7 F, P# P( m* [+ W$ \8 D3 `% [0 m7 R" I; n' N
首先进入linvst-bin包的yay缓存目录:& C" r# m; t; a6 v+ ]
4 x ^2 y B9 o9 I5 G+ y+ \
cd ~/.cache/yay/linvst-bin/
. { k$ [5 s1 E W* k A
- Y/ G- X) E1 T0 H7 t然后修改PKGBUILD文件,更改md5sums=(xxxxx)一行,把括号里的字符串值改为SKIP,表示“跳过有效性检查”。注意大小写:3 t; H6 M; }7 [6 D9 ~* |7 n
1 G2 i' R- f% ~, |' B
# 修改前,字符串值为MD5校验和
) a0 k* _/ z& h' rmd5sums=(68b329da9893e34099c7d8ad5cb9c940)
, Y. X" L1 g$ B" r8 f! a. [$ x% _* k; ?* ?- X( T
# 修改后,字符串值为SKIP
. C2 g s* U6 i# B3 d4 _ Vmd5sums=(SKIP)1 w2 Z6 D# H! h7 V) k
: D0 ^ ]0 z, `1 i7 W6 A' _& e: R" H
保存后,运行makepkg,生成安装包:
. r) n' I4 \5 v6 f6 V
" i3 W. u# i: J% `/ ~$ Gmakepkg! _* [. Q0 Q- k( ?$ Q) t4 F2 \+ v0 ^
% [2 G; Q3 ^# Q7 ]: ^生成好的安装包位于当前目录,文件名为linvst-bin-x.y-z-x86_64.pkg.tar.zst(x,y,z为版本号)。可以直接安装:
4 E& q" W9 x/ i- E
: E) g! [9 p4 S4 e" K7 Ksudo pacman -U linvst-bin-x.y-z-x86_64.pkg.tar.zst
$ _# A- U C) v$ R2 n8 t
# D; k" X% D8 {& ^用同样的方法,制作并安装其他几个二进制包。
: h1 Z! K( e4 J5 D, C
* B8 i, A! i* D+ w, a3. 生成wrapper
- b+ \2 L: S+ y O; b
`" p5 z% w0 W7 t+ b2 w0 _1 TLinVST用于生成wrapper的工具有以下几种,它们界面大体相同,须从终端运行:( Y: I: h, H E4 w, J$ ]6 s& c6 c
4 U/ i# _' m( s" o' |2 F, Clinvstconvert、linvstxconvert、linvst3convert、linvst3xconvert:指定一个文件夹,然后由其中的VST插件生成对应的wrapper。; }# E" Z: `5 i. B" Q
以上工具加上tree作为后缀:递归寻找子目录下的所有VST插件,为其生成wrapper。
6 z, ?' B$ N! D+ g如果所有的VST插件都在一个文件夹里,则选前一类;而如果位于若干个子目录里(比如部分VST插件带有附属的文件,要与插件本体放在单独目录中),则选后一类。8 [( _5 B5 s* v+ j. A, |' j! j/ N
+ ], e5 A" e2 q% g8 L
运行后,出现这个界面:+ e" |- O5 V) h3 u) w9 F& `
3 w) T% Z% H: V& N/ i/ d
9 o2 P8 p* j5 M8 D, m H9 q9 ]; @& B
首先把你的Windows VST插件统一放到一个目录中,建议~/.vst(VST2)和~/.vst3(VST3)。9 T, b6 o; j9 ^3 I: M' m/ P
在生成工具界面中,选择LinVST库。点击【Choose linvst.so】,在文件对话框中定位到/usr/share/LinVst,选择linvst.so。其他几个VST3和增强版的库文件也在该文件夹中,如果是linvst3convert,则选择linvst3.so,以此类推。
$ M2 G, w p) i, @然后通过下方的【Choose dll folder】,选择Windows VST DLL所在的文件夹。(如果是linvst3convert,则界面是【Choose VST3 folder】,选择*.vst3所在文件夹)。& n4 `8 d6 O% Q, C/ o9 U
点击【Start】生成,随后VST插件目录下就会出现与插件同名的*.so文件,即原生VST wrapper。4 _1 B# P7 ]) y8 l
最后把插件目录添加到DAW中即可。实测,REAPER for Linux完美支持。! J; i/ n7 h e
注意:
, K' C/ x9 K6 Q' b) p. S) i1 S7 e
% {& `- o9 q; D zVST插件和生成的*.so文件必须在同一目录下,否则LinVST会提示找不到插件。
2 R1 q( r+ c4 [- T+ w- a/ eWine的兼容性 O3 o9 ] @' ?+ Z$ L8 I
( g3 m* B* P3 hWine是一个持续开发的项目,这是由Windows的复杂度决定的,开发团队不可能在短期内适配真实Windows下的所有特性,并保持其稳定性。因此并不是所有的程序都能完美运行,包括VST插件,测试中程序挂掉、出现Bug,在所难免。) F8 i% h- }! B" Q
' C0 O7 `9 ^( B
幸运的是,有些开发者会考虑到Linux的生态,会优化自己的应用程序,使其能完美地运行于Wine。REAPER就是一个很好的例子,它的Windows版本可以直接在Wine中安装。之前REAPER并未推出原生的Linux版本,官方特别在下载页中提到,“Windows版本可在Wine下运行良好(For Linux users, the Windows version works well with WINE.)”,便利了Linux用户,也实现了开疆拓土。
' a) ?* k1 I' C, _. ^2 K$ m7 d. I7 m6 }+ S/ |( B5 |7 `
即便如此,REAPER仍属于少数。大部分的应用仍需自行去测试,检验其在Wine下的兼容性,以及事后会不会出Bug。
7 |% q/ [% [% G% f' r" c# u4 e" r! W0 `8 Z' f
我所做的测试
/ S1 f5 I z3 Z/ @) f7 Q e2 o. }: f$ F n* M5 J" J' T
Kontakt Player:我用Wine下的REAPER for Windows测试,它可以在REAPER中正常加载并播放NKI采样,表现与Windows下一致。不过,如果在REAPER中就地重新加载(选择“更改当前VST效果”后重新选择Kontakt),则会导致长时间卡住,可见并不完美。, J0 `" ?: F' V1 Q8 m
Synth1:一款免费、强悍的合成器插件。
- w/ D" f3 x' L3 ?在LMMS下尝试用VeSTige打开,但没能启动成功。相反LMMS自带的VST宿主程序(RemoteVSTHost.exe)还卡在后台占用CPU,只能手动结束。' t4 [; |. n( w7 a M; n8 Y' p
移师REAPER for Linux,借助LinVST,顺利运行,体验与Windows别无二致。8 ^9 p, q( W( r" b6 h
! |: A4 d# ^& j, m) i后记
' S5 Z/ O5 q+ [' t以上是作者在Arch Linux下试玩音乐制作软件的体会,发掘了Linux的别样用法。由于厂商适配策略的不同,并不能保证Linux一定能拥有不输于Windows和MacOS的体验,但当下的Linux至少不存在这方面的空白。
7 a" F# x4 ]" P) d- y! |4 ^3 a
. R, [- b; [* `9 V, Z, |6 ?不过,在Linux下制作音乐尚有明显的局限性,体现在诸多商业软件缺少对Linux的支持。作者曾经在自己的惠普笔记本上安装Arch Linux,配置好REAPER和Native Instruments的Komplete Start套装,无奈兼容性差强人意,到最后还是只能回到Windows。要想让Linux能在音乐制作领域与Windows、MacOS一分高下,还有很长的路要走。 |
|