Reaper 小贴士:改善 32 位古老插件的兼容性——放心吧,再古老的插件都能愉快使用
相信一些经验丰富、资历深厚的制作人也在用REAPER,同时插件库里会拥有不少上了年头的插件。
众多的“古董插件”,往往诞生于十几甚至近二十几年前,只有32位版本,并不一定能适应现代的操作系统和DAW环境,因此不可避免出现各种兼容性问题。而部分插件的厂商也早已停止维护,指望它们发布更新是不可能的。
但是,也许你在制作作品时,正是有一款古老插件,能给你的得意之作带来梦寐以求的效果。或者,你多年前的旧作,只有利用当年那些古老插件,才能原汁原味再现。
甚至一些插件,因开发者自身的考量,至今不提供64位的版本。例如,Memorymoon团队推出的同名合成器,将Memorymoog数字化,功能全面,也是MixCraft DAW自带的插件,可惜只有32位Windows版本。
幸而,REAPER提供了一系列兼容性选项,让那些古老的插件顺利融入现代的编曲制作环境中,继续发挥余热。
一、将插件界面嵌入FX Chain界面中
一般地,在REAPER中运行的VST插件,它的界面(VST editor UI)默认会嵌到FX Chain窗口当中,与REAPER浑然一体。如果插件与REAPER的处理器规格相同,例如REAPER和插件都是64位,则可以顺利把界面集成到REAPER当中,获得无缝的使用体验。
图 1 简单的例子:64位的REAPER,运行64位的Kontakt Player
然而,如果REAPER是64位,而插件是32位,就会变成这样——以一款古老的免费模块合成器Arppe2600va为例:
图 2 另一个例子:64位的REAPER,运行32位的古老模块合成器Arppe2600va
可见,插件界面被放到一个独立的窗口来显示了。
操作系统API存在限制,64位的宿主不能直接运行32位的插件,因此需要通过“桥接(bridging)”机制来使用。REAPER提供了一个专门的32位宿主——桥接器,借助它运行32位插件,REAPER主程序再与它通信,从而使32位的插件可以顺利在64位的REAPER中使用。工作理念与著名的VST桥接工具JBridge基本相同。
不过,桥接模式下,插件的界面会浮动显示(显示在独立窗口中),不会集成在FX Chain界面。这样会使得用户在管理效果器链时,要来回在两个独立窗口之间操作,未免麻烦。而且,独立窗口也会导致一个bug:当独立窗口获得焦点时,REAPER容易误认为用户切换到了其他程序,因此关闭音频输出,导致整个REAPER无声(注意图 2右上角的“audio device closed”字样)!
REAPER的开发团队考虑到用户的不便,因此提供了一个选项,允许用户把桥接模式下的浮动窗口集成到REAPER中。
- 首先,点击主菜单【View】→【FX Browser】,打开效果器列表。
- 然后,在效果器列表中,右键点击你要处理的VST插件,然后依次选择【Run as(以……方式运行)】→【Embed bridged UI (may not work with all plugins. less crash-resilient)(将桥接插件的界面嵌入到REAPER中,可能无法适用于所有插件,在崩溃时不容易恢复)】。
图 3 启用REAPER的“Embed bridged UI”选项
注意,设置修改后。仅对新加入FX Chain的插件有效。对于已经添加的插件,你可能需要备份当前的预设,然后删除该插件再重新添加(或者是在FX Chain窗口列表中右击该插件,选择【Replace FX】,将当前插件替换成修改设置后的插件)。
上述的Arppe2600va在经过设置后,已经与REAPER浑然一体,具有舒适顺滑的体验。效果如下:
图 4 启用“Embed bridged UI”的Arppe2600va,与REAPER顺利一体化显示
因此,如果你的插件库中有32位插件,建议统统按照本节的方法设置,如此能改善你的使用体验。
注意:大部分32位插件都可以顺利运行在Embed briged UI模式下,但少部分插件可能会崩溃。建议先测试,再在你的项目中使用。
二、预防崩溃,在单独的进程中打开插件
宿主在加载VST插件后,插件与宿主位于同一个计算机进程当中。这要求插件的设计团队必须保证插件的稳定性,因为:
- 插件一旦崩溃,就会造成整个宿主的崩溃
- 插件失去响应,也容易连带导致宿主失去响应
少部分的插件,由于设计不周、缺乏维护,常常会出现各种各样的bug,实际使用时崩溃、失去响应在所难免。年久失修的插件,以及尚处于开发阶段的开源插件,是常发生崩溃的重灾区。
面对插件问题,REAPER并不像Cubase等老牌DAW那样健壮。Cubase能检测出插件运行故障,单独终止有问题的插件,防止宿主崩溃;但REAPER运行的插件,一旦发生问题,无任何提示直接崩溃退出,有时还来不及保存工程。
对此,REAPER允许用户在单独的进程中运行插件,也就是在桥接模式下运行。由于桥接工具本身独立运行,其进程与REAPER彼此分离,最终无论插件如何异常、如何崩溃,都不容易拖累整个REAPER。
根据上一节“一、将插件界面嵌入FX Chain界面中 ”的讲解,打开效果器列表,然后右键点击你要处理的VST插件,选择【Run as(以……方式运行)】,子菜单如下图所示。
子菜单中的高亮部分,决定REAPER如何在单独进程(桥接)中运行插件。我们要留意的,是以下这两种模式:
- Separate process:使用桥接,所有的插件运行在同一个桥接器之中。
- Dedicated process:使用桥接,每个插件都启动一个单独的桥接器来运行。
选择其中一种模式,然后加载插件,此时插件界面会显示在一个独立窗口中。不妨测试一下插件的功能,看看插件能否正常使用。往往REAPER的稳定性可以得到改善。
上述两种模式,字面上看功能相近,但本身有内在的区别:
在【Separate process】中,所有插件共享一个进程,处理器占用率会少一些,但一个插件崩溃就会造成整个桥接器崩溃,其他使用桥接的插件会一同遭殃。
而【Dedicated process】相反,每个插件使用一个独立进程,能避免这种“连锁反应”式的崩溃,保证其他插件不受影响,但代价是处理器占用可能略高。你应当根据插件的实际情况来取舍。
如果你不习惯浮动的插件界面,也可以配合【Embed bridged UI】来使用,将桥接的界面嵌入REAPER中。注意,部分设计不良的插件可能更容易崩溃。
最后,再补充说一下另外两种模式:
- Native only (prevent bridging):原生模式,即直接把插件加载到REAPER主进程当中,不使用桥接。仅在REAPER与插件属同一架构时(例如,都是64位版本)才生效,否则插件将无法加载。
- Automatic:根据插件自动选择工作模式。一般地,在该模式下,64位REAPER运行32位插件,就会自动启用桥接;反之,则使用Native only。
三、也可以试试32位的REAPER
如果你的工程需要使用大量的32位插件,或者是以32位插件为主,不妨考虑使用32位的REAPER来打开。这样就不必对每个插件单独设置“Embed bridged UI”,以及反复备份参数、重新加载插件。
REAPER官方网站提供了32位版本的下载(http://reaper.fm/download.php)。相信现在大家都以64位版本做主力,所以建议将32位版本“便携式安装(portable install)”(安装时勾选【Portable install】选项),以免干扰64位REAPER的运行。
那么,如果工程当中也有64位插件,怎么办?
不用担心,32位版本的REAPER也可通过桥接的方式来运行64位插件,以保证同一工程可在不同版本的REAPER下打开,不需要任何修改。尽管放心搭配吧。
由于32位的REAPER只包含了32位插件的目录,因此我们需要手动加入64位插件目录。
- 首先,按【Ctrl+P】打开REAPER设置,点击左边的【VST】选项。
- 然后,点击【VST plugin paths(VST插件目录)】下方的【Edit path list...(编辑目录列表)】按钮,选择【Add path...(添加目录)】,将下列64位插件默认目录加入列表中(假设你的系统盘是C盘):
- C:Program FilesSteinbergVSTPlugins
- C:Program FilesCommon FilesVST3
- C:Program FilesVSTPlugins
- 设置完毕后,点击右下角【Apply(应用)】,然后单击【Re-scan...(重新扫描)】,更新插件列表即可。
由于使用桥接,64位的插件在列表中会明确标注“(x64)”字样,它们的界面也会以浮动窗口显示,例如下图:
如果你需要长期使用该插件,你也可以根据“一、将插件界面嵌入FX Chain界面中 ”的方法,把插件的界面嵌入到REAPER中,获得无缝的使用体验。但要注意,不是所有的插件都能在嵌入时正常显示,像Ozone 9就会出现界面错位。
此外,你的电脑中也许安装了32位的DX/DXi插件,例如:EDIROL系列音源(如Orchestral、Super Quartet)、Cakewalk Sonar(或更古老的Cakewalk Pro Audio)附带的效果器。上述插件,用64位的REAPER是检测不出的,但32位却可以顺利识别、完美运行,不需借助第三方工具。如果你仍在使用那些古老的DX插件,REAPER的32位版本也值得一试。
四、Buggy plug-in compatibility mode
对于一些古老插件,REAPER还提供了针对性的Buggy plug-in compatibility mode(问题插件兼容模式),官方文档并没有提及该模式到底做了哪些工作。搜索REAPER的官方论坛,一些使用者提供了自己的看法(引用链接在本文末尾):
- 在将音频缓冲区提供给插件使用之前,先清空缓冲区。有些插件不会清空缓冲区,而是把缓冲区的采样原样输出,于是可能会偶尔输出噪音。
- 当插件界面打开,而此时正在处理音频时,使用阻塞模式,而非分别用两个线程来显示界面、处理音频。如果插件不是线程安全(thread-safe)的,这个选项会很有用——非线程安全,意味着插件在同时播放音频和显示界面时,容易发生崩溃等Bug。另一种说法是,可能会强制由同一个线程来显示插件界面与处理音频,这样可能会在显示界面时造成声音断续(glitch),但能避免崩溃与死锁。
- 多余的采样在循环片段(loop)的结尾处合成(extra samples are rendered at loop edges)。
- 其他改善兼容性、降低CPU占用率的措施。
如果插件运行出现问题,也可以试试这一模式,它同样可以针对特定插件单独设置。
打开效果器列表,然后右键点击你要处理的插件,依次选择【Compatibility settings(兼容性设置)】->【Buggy plug-in compatibility mode】。之后将该插件添加到效果器链中,即可应用兼容性模式。
图 9 “Buggy plug-in compatibility mode”选项
总结
插件年代久远,失去维护,常常只能成为厂商的弃儿,与现代的操作系统也仿佛格格不入。再者,有一些插件的厂商,虽然持有优质的代表作,却怠于跟进适配64位版本,甚至不愿意持续维护,最终给热爱那些插件的制作人增添不少麻烦。
但,以上种种,并不意味着它们无法在当下发挥出价值,给现在的制作人带来奇迹般的可能。得益于REAPER的一些兼容措施,结合上述的四个技巧,相信你手上的一些古老插件能顺利融入你的音乐制作中,助你再成佳作。
参考资料
- REAPER官方论坛中,关于“Buggy plug-in compatibility mode”的介绍: