|
3#

楼主 |
发表于 2021-2-21 18:23:44
|
只看该作者
; N' `( w1 p1 x* `( [使用VST插件的方案 c! U9 e' i6 E5 f$ N) M: s
' O* Y3 M7 i* u9 e# HLinux下的原生DAW,主要有两种支持Windows版VST插件的方案:
: _/ h8 u( | \7 H! _
* g, [& _) }! l; [使用基于Wine的桥接器,将Windows版VST插件转换成原生的Linux VST插件,如LinVST- R s0 N/ k4 h( [' [* v
原理是构建一个原生VST格式的wrapper,宿主在加载wrapper后会自动调用桥接器的host服务端,从而利用Wine加载VST本体。
" g' Z) f# C! ~通用的方案,只要DAW支持原生VST,就可以用。* B/ l% f% p9 [" m: j9 F0 M( @
内建桥接器,即采用自己编写的桥接器,如LMMS中的VeSTige( b& w. E x9 `
只有少数的DAW有这个功能。
" {& ?: Z( d3 F( w: P- C* Z另外,还可以直接使用Wine来运行Windows版的DAW,它会像在Windows里那样加载VST。它基本不需任何其他配置,但不具备普适性,不能保证所有的DAW都能正常运行。目前兼容性好的只有REAPER。1 |" e3 c, J- y4 X, g1 Z- J) i, c
% ?" E$ \7 v9 g! x& C: u( S- i1 ~: v方案一:内建桥接器2 R [' _0 f& R: d+ S
+ ^, x$ J% c& k以LMMS为例,它附带了专门的桥接器VeSTige,可以直接像在Windows那样,加载*.dll为扩展名的VST插件。! n, Z0 [) D7 H, Z# h, J
* d7 y/ c( ] Y5 H2 K) O# O- c
& l8 [4 h/ V1 J$ S' ^5 A7 l: F$ g$ i
! B9 ]' k7 Q3 @0 } V1 j操作步骤如下:
; U% N( g- a" H6 c( W% a# U8 w" G7 k' T' ^
点击左侧的Instrument Plugins(音频插件);5 B* p6 k9 P+ \
插件列表出现,在下方找到VeSTige,拖到音轨视图里;
0 l, I7 O$ N7 o! Y, X& E- o点击音轨视图里的VeSTige图标,打开插件界面;4 ~$ M: z5 e8 g$ t! t
在插件界面中点击“打开”按钮,定位到VST插件目录,打开它;. D3 T7 m9 r3 v7 M6 q* ]' A7 b
可以点击“Show/hide GUI”按钮来显示或隐藏VST插件的界面。
N7 S( z4 k* W3 \5 t# ~能否加载成功,仍然因系统环境和Wine的版本而异。如果无法加载,则使用htop,把RemoteVSTHost.exe这个进程结束,以免占用过多处理器资源。1 O2 p [' ?" f0 B$ ?1 }
, k1 c2 k* e S9 V8 R. m$ H y5 F
方案二:使用LinVST9 q, X5 n" r- C' b5 Z7 V
2 _1 g" s/ M* [
LinVST是由OSXMidi开发的桥接器。类似于Windows下的jBridge,用户通过它提供的转换工具,创建一个原生VST插件,作为Windows版VST插件的wrapper,接下来只需在宿主中加载即可。
' k2 u! L4 Y. U" Q7 M& r6 G
2 a$ r N& T$ X9 n8 t& R它同时支持VST2和VST3,分别对应两个独立的项目:LinVST2、LinVST3。它们各自还拥有一个增强版本——LinVST-X和LinVST3-X,允许一个VST插件实例被共享,起到节省资源的目的(例如把一个Kontakt实例用在多个音轨上)。. @+ f$ ^9 z& `6 ]
f3 y1 L" \% V# y: ?9 [, SArch Linux的官方源没有收录LinVST,须通过AUR安装。笔者用的是yay。
& s' V& l1 o! g1 g2 l/ E" Z/ W: V% Z7 E
0. 安装yay
' ~( E0 z. i$ L3 ]9 V2 R$ l; e. t, f0 t% h7 c
初次听说AUR和yay的读者,可以先添加Arch Linux CN源。同样是编辑/etc/pacman.d,在结尾添加:
. J. n# j' t, }2 Y) _ z
8 t2 t* H: m* |[archlinuxcn]" s4 A1 ]8 y; m- b
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
; h, g: W* W* |& H
8 E5 H) Q6 B, n然后安装密钥包,以及yay本体:
& T1 H" y% ]( u8 ]! z3 d. x7 L# o7 B5 l3 Q- S
sudo pacman -S archlinuxcn-keyring yay0 ?5 l( Y, g( g, C: f
% q$ |$ F: q+ j; {, e) X1. 安装LinVST本体, D( e: G. z0 A
, t. H1 S+ b" J9 H) x% E
首先安装LinVST。AUR的包分为源码包和二进制包,后者开箱即用,前者则需编译。建议选择二进制包。: [! q) z4 l" E; j% X
# 源码包( R1 A) p u8 k2 B, l- a
yay -S linvst linvst3
8 u7 ^, G3 o& g* d) \6 }& {# 二进制包: ?( I5 K. s+ m& I. O" L' L1 |
yay -S linvst-bin linvst3-bin% ~. C7 n: T& ?6 d/ J
4 M1 j( d0 O7 ^5 j# m如果需要增强版本,则安装:
+ J0 g: _8 E; i$ \2 @8 F4 q# s& X2 S, i0 p! F
yay -S linvst-x-bin linvst3-x-bin4 Y: Q m5 r. A6 ?
/ G. }: O8 g$ ]注意:采用源码版编译会有两个问题:- N8 ]* U H) L4 E+ d
& M5 K) q7 s: \& r6 B9 Y H$ g) W. n
只有linvst能编译,linvst3会在编译附加组件ArchStudioUtils时出错。6 N7 k( a7 D. _ s
生成wrapper必不可少的linvstconvert没有编译。用户必须手动进入源码的convert/目录来编译才行。
- u) @! {. K2 Q- N. U7 R# M9 `, N2. 如果出现错误:“一个或多个文件没有通过有效性检查!”
% {! {4 z3 l! ]: u. m0 v5 Z: d! }$ G1 c3 P1 N; z2 l
但是,由于LinVST的二进制包更新与AUR PKGBUILD的MD5值不同步,会出现能下载成功,却通不过有效性检查的情况。这时要手工修改PKGBUILD文件,去掉有效性检查的部分。
' h- @; {8 i) |7 y2 i
2 b3 d6 u! b2 D+ r" q- a首先进入linvst-bin包的yay缓存目录:0 @: |3 D: O- F6 ]' N- p
% I {, c, V' e1 xcd ~/.cache/yay/linvst-bin/0 ]$ C8 e7 \6 o$ J" D
& ~& T; m+ E L# z
然后修改PKGBUILD文件,更改md5sums=(xxxxx)一行,把括号里的字符串值改为SKIP,表示“跳过有效性检查”。注意大小写:
& Z; ~8 D" E Z" v8 }! z0 q: c/ d) V6 _- E
# 修改前,字符串值为MD5校验和& m1 C7 c3 F5 j1 p5 X
md5sums=(68b329da9893e34099c7d8ad5cb9c940)
; }2 p/ {' s8 ]3 o7 l) j" q
6 t6 f8 n0 J6 u5 p( P0 |# 修改后,字符串值为SKIP
& m$ n6 q4 H! u3 w* Wmd5sums=(SKIP), A3 F$ G8 O3 T- T" d' ^$ ~7 i
6 f# C! T; K& H
保存后,运行makepkg,生成安装包:
/ I$ J8 s% C. P( ]2 y; e- O! G
makepkg, I. n V% Q2 F+ H2 Q8 M9 ]
9 E) w4 H/ Y8 h% h) o) [生成好的安装包位于当前目录,文件名为linvst-bin-x.y-z-x86_64.pkg.tar.zst(x,y,z为版本号)。可以直接安装:1 {* u* B+ ~- D: D$ k
. X4 D) g6 g9 k" s" Z! Ksudo pacman -U linvst-bin-x.y-z-x86_64.pkg.tar.zst8 y6 E# D( a' R4 h4 r }
$ u. A l. S# u' ^" G( B1 W- \+ t
用同样的方法,制作并安装其他几个二进制包。
0 F% Q" [5 Q( Z. p" J8 @- {
; d2 N( L$ o0 }3. 生成wrapper, R$ |4 @0 x# d6 _# y( C( o- D
% J6 R" Z$ a( U3 w# P
LinVST用于生成wrapper的工具有以下几种,它们界面大体相同,须从终端运行:
0 Q9 T' E6 [) c% C% u% |: j; y- o; M& Z2 l. N
linvstconvert、linvstxconvert、linvst3convert、linvst3xconvert:指定一个文件夹,然后由其中的VST插件生成对应的wrapper。
- U, j; o0 L- a4 |以上工具加上tree作为后缀:递归寻找子目录下的所有VST插件,为其生成wrapper。
$ C; P* W7 X/ V) z' a; J如果所有的VST插件都在一个文件夹里,则选前一类;而如果位于若干个子目录里(比如部分VST插件带有附属的文件,要与插件本体放在单独目录中),则选后一类。/ t6 V- a5 J2 b8 |3 K
7 d! O( N- B( u运行后,出现这个界面:7 H, y+ C f, V7 U) O/ k
; u& q8 x* H, b5 ]3 A
$ t! M' e2 ?) b* t
' n0 `/ r2 y* y& t首先把你的Windows VST插件统一放到一个目录中,建议~/.vst(VST2)和~/.vst3(VST3)。
# f- U4 l1 e+ u$ e: m8 C在生成工具界面中,选择LinVST库。点击【Choose linvst.so】,在文件对话框中定位到/usr/share/LinVst,选择linvst.so。其他几个VST3和增强版的库文件也在该文件夹中,如果是linvst3convert,则选择linvst3.so,以此类推。6 N( B) q( g4 u z4 U
然后通过下方的【Choose dll folder】,选择Windows VST DLL所在的文件夹。(如果是linvst3convert,则界面是【Choose VST3 folder】,选择*.vst3所在文件夹)。# Y3 k4 M) G$ D: J+ E2 }
点击【Start】生成,随后VST插件目录下就会出现与插件同名的*.so文件,即原生VST wrapper。
; {/ [. ?' u; N( N* o* J$ g" r最后把插件目录添加到DAW中即可。实测,REAPER for Linux完美支持。
! f, v. i+ k+ B; ]注意:4 i" w! ]6 b9 L+ B
5 E5 E3 y0 \% Z7 Z% v( SVST插件和生成的*.so文件必须在同一目录下,否则LinVST会提示找不到插件。, Q% e" O6 t# |9 a
Wine的兼容性
, u: j8 ~- n8 U7 e8 K6 {+ `
% H; I: ?+ Y. w% {6 b4 w; l# k: gWine是一个持续开发的项目,这是由Windows的复杂度决定的,开发团队不可能在短期内适配真实Windows下的所有特性,并保持其稳定性。因此并不是所有的程序都能完美运行,包括VST插件,测试中程序挂掉、出现Bug,在所难免。% a; O! T2 w: a- c
5 m- ^+ T- I8 Z- b n幸运的是,有些开发者会考虑到Linux的生态,会优化自己的应用程序,使其能完美地运行于Wine。REAPER就是一个很好的例子,它的Windows版本可以直接在Wine中安装。之前REAPER并未推出原生的Linux版本,官方特别在下载页中提到,“Windows版本可在Wine下运行良好(For Linux users, the Windows version works well with WINE.)”,便利了Linux用户,也实现了开疆拓土。 W: J8 k6 V0 l' z* v4 Z
* t* ? H T4 b" h9 v( R, Q
即便如此,REAPER仍属于少数。大部分的应用仍需自行去测试,检验其在Wine下的兼容性,以及事后会不会出Bug。
& l, |0 {, z3 b9 C
- _1 A6 |/ a. K( y/ @我所做的测试' \) q9 ~3 ]8 p4 k
4 s( l) t2 Y3 ?
Kontakt Player:我用Wine下的REAPER for Windows测试,它可以在REAPER中正常加载并播放NKI采样,表现与Windows下一致。不过,如果在REAPER中就地重新加载(选择“更改当前VST效果”后重新选择Kontakt),则会导致长时间卡住,可见并不完美。
0 u9 [, ?( o) E8 J( oSynth1:一款免费、强悍的合成器插件。+ I+ Z! u: x" b, }3 C
在LMMS下尝试用VeSTige打开,但没能启动成功。相反LMMS自带的VST宿主程序(RemoteVSTHost.exe)还卡在后台占用CPU,只能手动结束。9 E6 b1 m/ ^) C7 B2 B4 g% I8 Y
移师REAPER for Linux,借助LinVST,顺利运行,体验与Windows别无二致。9 B, j0 B/ n" R$ F1 [$ F ~9 c. o
' U: r% D! B! ~; b后记7 l8 L5 p3 ^7 k3 X8 G: o: f
以上是作者在Arch Linux下试玩音乐制作软件的体会,发掘了Linux的别样用法。由于厂商适配策略的不同,并不能保证Linux一定能拥有不输于Windows和MacOS的体验,但当下的Linux至少不存在这方面的空白。
8 @! b! d R, r9 d. P+ ]7 w) K f/ P
不过,在Linux下制作音乐尚有明显的局限性,体现在诸多商业软件缺少对Linux的支持。作者曾经在自己的惠普笔记本上安装Arch Linux,配置好REAPER和Native Instruments的Komplete Start套装,无奈兼容性差强人意,到最后还是只能回到Windows。要想让Linux能在音乐制作领域与Windows、MacOS一分高下,还有很长的路要走。 |
|