|

楼主 |
发表于 2021-2-21 18:23:44
|
显示全部楼层
6 L+ g5 U4 F' Z* y6 ^5 A4 [# ~: p) t, n
使用VST插件的方案
8 t1 d6 r0 U# E& t3 f* N& S( C: v
) H3 }+ S1 q! o/ y6 ?8 q8 BLinux下的原生DAW,主要有两种支持Windows版VST插件的方案:( F( Y7 S- T7 n. Q. O4 d
! E; V7 d0 f; I# A9 r/ ]使用基于Wine的桥接器,将Windows版VST插件转换成原生的Linux VST插件,如LinVST
$ c2 ^- V; X. e5 \0 B. L7 `2 K6 j原理是构建一个原生VST格式的wrapper,宿主在加载wrapper后会自动调用桥接器的host服务端,从而利用Wine加载VST本体。
! D4 y7 L7 `; g/ T2 ?% W通用的方案,只要DAW支持原生VST,就可以用。
. c0 A) ?1 R% f$ n3 L8 \内建桥接器,即采用自己编写的桥接器,如LMMS中的VeSTige
9 h' x7 s- X3 F9 S1 Q6 h只有少数的DAW有这个功能。
' V* G: L$ u! c' I; A9 i另外,还可以直接使用Wine来运行Windows版的DAW,它会像在Windows里那样加载VST。它基本不需任何其他配置,但不具备普适性,不能保证所有的DAW都能正常运行。目前兼容性好的只有REAPER。% F0 m3 E6 i$ L) D. i' G
! k1 ^* S" u P0 j/ G! Z
方案一:内建桥接器
* s: ?/ O( R: \# h
- o* ]: @( l: l+ M1 f7 |以LMMS为例,它附带了专门的桥接器VeSTige,可以直接像在Windows那样,加载*.dll为扩展名的VST插件。 W: F) F* y3 s
A& h7 E7 D+ u3 r6 A
0 X) ~6 E. }3 }% i7 L2 f
2 B6 E9 r# U& D" _
操作步骤如下:
1 _1 t9 ^0 k5 q7 j6 v' K4 i* z8 f9 y3 s8 o* z g
点击左侧的Instrument Plugins(音频插件);
/ b" U. v3 Y5 z% A4 K& H0 }插件列表出现,在下方找到VeSTige,拖到音轨视图里;! s4 V1 K$ U+ Y# y5 c% [
点击音轨视图里的VeSTige图标,打开插件界面;$ ~9 m4 x! y1 t4 s
在插件界面中点击“打开”按钮,定位到VST插件目录,打开它;
7 l: F) p) g3 L+ R6 n可以点击“Show/hide GUI”按钮来显示或隐藏VST插件的界面。
. [/ t- m( ~* x; ^* |能否加载成功,仍然因系统环境和Wine的版本而异。如果无法加载,则使用htop,把RemoteVSTHost.exe这个进程结束,以免占用过多处理器资源。
8 b8 T; o- G+ E4 s- I3 D6 O( }
; H/ C! q- g' l8 R: O) _方案二:使用LinVST+ F3 p7 s5 h$ G2 Y
_+ Z( A9 T- ?- V: \
LinVST是由OSXMidi开发的桥接器。类似于Windows下的jBridge,用户通过它提供的转换工具,创建一个原生VST插件,作为Windows版VST插件的wrapper,接下来只需在宿主中加载即可。
: M: O: ^: U* D) z
/ R& S$ r" t6 e1 M) M它同时支持VST2和VST3,分别对应两个独立的项目:LinVST2、LinVST3。它们各自还拥有一个增强版本——LinVST-X和LinVST3-X,允许一个VST插件实例被共享,起到节省资源的目的(例如把一个Kontakt实例用在多个音轨上)。
2 u9 o4 c! y7 U- R! B. q2 {: e+ c- V& M3 s+ i/ e5 R7 }
Arch Linux的官方源没有收录LinVST,须通过AUR安装。笔者用的是yay。$ b( M9 b$ Z+ f
4 @: X7 A. O4 z3 J, U
0. 安装yay: U: W. G, ?$ ~8 _) G
2 i% L( G6 _( K2 v
初次听说AUR和yay的读者,可以先添加Arch Linux CN源。同样是编辑/etc/pacman.d,在结尾添加:3 V. |4 ?! _! [0 h' O/ E) p4 L0 T
+ f. s; g1 f0 J[archlinuxcn]8 @- R. g H, Y* U
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
! J7 m \1 w( ?; R' R8 C* X' \
9 ^1 R/ ]: C2 }9 O5 X然后安装密钥包,以及yay本体:
4 t- R% J @5 O
+ L4 ^; d) @7 osudo pacman -S archlinuxcn-keyring yay
( D9 }7 c [; l$ y, F$ f; C. r0 I# y4 y& c! G
1. 安装LinVST本体
& A8 _. T# }2 ]7 p5 A7 K2 p; L
% ?3 O; [2 n, Z首先安装LinVST。AUR的包分为源码包和二进制包,后者开箱即用,前者则需编译。建议选择二进制包。
6 B* @& K# g$ y( x& U- E# 源码包
4 ]5 a" ?0 a9 s4 V3 Hyay -S linvst linvst3
8 I" \( {) M! p8 M: g g0 i# 二进制包
/ o4 t/ z% A) z# vyay -S linvst-bin linvst3-bin% w- m9 }- |$ h3 V2 a1 e
- e, B6 ^+ t3 B6 ]. ?, ?
如果需要增强版本,则安装:
0 ?, f; ?! U/ M- @3 m8 u6 C' _: G( D; ]
yay -S linvst-x-bin linvst3-x-bin+ F1 {& V7 Z4 K# t; @
9 f% {+ f( z+ R% ^3 X7 g
注意:采用源码版编译会有两个问题:
" \ x8 O% y! X$ d7 i) G6 I! `" ~3 n% \; I
只有linvst能编译,linvst3会在编译附加组件ArchStudioUtils时出错。6 g* u" B3 [7 u+ S& `* V4 G
生成wrapper必不可少的linvstconvert没有编译。用户必须手动进入源码的convert/目录来编译才行。
- o+ v3 w8 i9 q: C* ~2. 如果出现错误:“一个或多个文件没有通过有效性检查!”
& `: C& m! f! t5 R9 Z2 W9 p8 |) ~" E4 G9 j1 ?
但是,由于LinVST的二进制包更新与AUR PKGBUILD的MD5值不同步,会出现能下载成功,却通不过有效性检查的情况。这时要手工修改PKGBUILD文件,去掉有效性检查的部分。& j, }, L S, S+ ?3 `8 C& t
- s! O% O: K* P' k
首先进入linvst-bin包的yay缓存目录:
, s V* u: l, p+ a( y& A& T0 [0 t3 |9 C1 f) [8 a5 b8 A
cd ~/.cache/yay/linvst-bin/0 Y: }; \4 a7 { ?0 g; ]% ]& f3 c
2 i! q+ C. F |. w$ [# O/ M然后修改PKGBUILD文件,更改md5sums=(xxxxx)一行,把括号里的字符串值改为SKIP,表示“跳过有效性检查”。注意大小写:
* M8 w h1 }2 p q1 `9 q% x" a3 ~% K7 l" w3 E( w
# 修改前,字符串值为MD5校验和- \7 H' H0 O; S2 [+ c2 o4 R
md5sums=(68b329da9893e34099c7d8ad5cb9c940); O& W; C) R4 E8 x3 y8 K
6 r2 D. _ P2 `7 ~# 修改后,字符串值为SKIP, ]: W- u! I- M: g0 B8 i
md5sums=(SKIP)# y4 Q& c# N9 w% R9 f- E! v# h, c, }
/ I( ~+ i1 N7 d! X
保存后,运行makepkg,生成安装包:- n7 f( ^% Z0 M- \# w
2 J$ I, {+ l4 v6 [makepkg
. k' D' k0 X. Q W- ?9 \- j0 D K) F% P" m1 s: l
生成好的安装包位于当前目录,文件名为linvst-bin-x.y-z-x86_64.pkg.tar.zst(x,y,z为版本号)。可以直接安装:% U( B$ `+ J E, _
) Q1 v; L% y! Q2 h# c1 Jsudo pacman -U linvst-bin-x.y-z-x86_64.pkg.tar.zst
1 M7 a6 }$ \" \& S$ `
; O5 o L- q9 _: m7 o用同样的方法,制作并安装其他几个二进制包。
5 |: d# K7 t* M$ _( m/ ]) O$ D: t9 y4 ]
3. 生成wrapper
2 a* H' ~9 L: h* w$ N' o8 ]
% G: g1 i5 A: d2 S& }( B% bLinVST用于生成wrapper的工具有以下几种,它们界面大体相同,须从终端运行: Y+ }6 Y, G( S& r7 e
! |4 n4 z6 i/ olinvstconvert、linvstxconvert、linvst3convert、linvst3xconvert:指定一个文件夹,然后由其中的VST插件生成对应的wrapper。9 X2 G6 b5 H( O( b
以上工具加上tree作为后缀:递归寻找子目录下的所有VST插件,为其生成wrapper。) M5 B" C# O9 d3 T( y# c) q% c6 o
如果所有的VST插件都在一个文件夹里,则选前一类;而如果位于若干个子目录里(比如部分VST插件带有附属的文件,要与插件本体放在单独目录中),则选后一类。, T# ^' T& h4 g5 k4 o+ @
2 m- Y; H- v3 j- z
运行后,出现这个界面:
0 u5 @+ F" X: K% \
4 B5 p: Z- }# k! I1 X' g
, n8 y2 u- X( T/ N, O
( y2 q8 a3 I0 R: [; t( b; E首先把你的Windows VST插件统一放到一个目录中,建议~/.vst(VST2)和~/.vst3(VST3)。
: q9 P( D% R7 Q; m, N/ x在生成工具界面中,选择LinVST库。点击【Choose linvst.so】,在文件对话框中定位到/usr/share/LinVst,选择linvst.so。其他几个VST3和增强版的库文件也在该文件夹中,如果是linvst3convert,则选择linvst3.so,以此类推。 R* M5 Y$ d3 W& u: s4 T; e
然后通过下方的【Choose dll folder】,选择Windows VST DLL所在的文件夹。(如果是linvst3convert,则界面是【Choose VST3 folder】,选择*.vst3所在文件夹)。; | N0 [# O0 r0 M, p
点击【Start】生成,随后VST插件目录下就会出现与插件同名的*.so文件,即原生VST wrapper。
! k6 c u1 E, p5 u8 n最后把插件目录添加到DAW中即可。实测,REAPER for Linux完美支持。
& H3 S- g' N( K% Y s/ D注意:
- @3 n: S. ^- O# x( ^9 g4 p2 j' T0 `( a( k
VST插件和生成的*.so文件必须在同一目录下,否则LinVST会提示找不到插件。
/ t _6 }: F( c4 z$ V: x" pWine的兼容性
: }( W; y: }* ~# X0 j
Z4 z' ], M6 Z! \Wine是一个持续开发的项目,这是由Windows的复杂度决定的,开发团队不可能在短期内适配真实Windows下的所有特性,并保持其稳定性。因此并不是所有的程序都能完美运行,包括VST插件,测试中程序挂掉、出现Bug,在所难免。; |$ n8 l# j2 N
" L, r a- w( ?2 U- |幸运的是,有些开发者会考虑到Linux的生态,会优化自己的应用程序,使其能完美地运行于Wine。REAPER就是一个很好的例子,它的Windows版本可以直接在Wine中安装。之前REAPER并未推出原生的Linux版本,官方特别在下载页中提到,“Windows版本可在Wine下运行良好(For Linux users, the Windows version works well with WINE.)”,便利了Linux用户,也实现了开疆拓土。
3 d T9 L/ J! y( M5 A! R% j& A7 Q& J6 {9 B8 A
即便如此,REAPER仍属于少数。大部分的应用仍需自行去测试,检验其在Wine下的兼容性,以及事后会不会出Bug。
/ F1 B2 L) L) C0 ]8 G( @- W" e( D6 N9 C8 D3 k
我所做的测试9 t4 z2 g6 V$ m$ I( G. a
5 V2 y: d: Q, G! S1 a/ `9 \ m. SKontakt Player:我用Wine下的REAPER for Windows测试,它可以在REAPER中正常加载并播放NKI采样,表现与Windows下一致。不过,如果在REAPER中就地重新加载(选择“更改当前VST效果”后重新选择Kontakt),则会导致长时间卡住,可见并不完美。9 G3 w, G% n; V+ q' T4 \
Synth1:一款免费、强悍的合成器插件。4 l: [. p) k% r0 R; I
在LMMS下尝试用VeSTige打开,但没能启动成功。相反LMMS自带的VST宿主程序(RemoteVSTHost.exe)还卡在后台占用CPU,只能手动结束。
2 S9 C/ X& b1 B/ k3 U移师REAPER for Linux,借助LinVST,顺利运行,体验与Windows别无二致。
' I/ e' O7 S2 z# n. h6 y. x% j
: X; ^9 @7 }3 H. W# K3 a( @后记9 g* {8 T% w+ ?" j
以上是作者在Arch Linux下试玩音乐制作软件的体会,发掘了Linux的别样用法。由于厂商适配策略的不同,并不能保证Linux一定能拥有不输于Windows和MacOS的体验,但当下的Linux至少不存在这方面的空白。" o, h( [0 L% k0 w6 l) Q) X9 G
0 u3 u' \$ V1 H- C: n( m* L3 G
不过,在Linux下制作音乐尚有明显的局限性,体现在诸多商业软件缺少对Linux的支持。作者曾经在自己的惠普笔记本上安装Arch Linux,配置好REAPER和Native Instruments的Komplete Start套装,无奈兼容性差强人意,到最后还是只能回到Windows。要想让Linux能在音乐制作领域与Windows、MacOS一分高下,还有很长的路要走。 |
|