2024年4月《Midifan月刊》电子杂志发行,8 篇技术文章在线阅读

低频灵魂,不同凡响:Earthworks DM6 打击乐专用话筒评测

叮咚音频正式代理 Lunacy Audio,令人惊叹的交互式效果器 BEAM 横空出世

精准混音/监听全担当——森海塞尔全能型监听耳机 HD 490 PRO 上手评测

《一场内心的万物复苏》全新整周课包,下半场课程只剩 12 场

跨越时代,依然光彩:在现代 DAW 中使用上古时期的 DX 插件

安小匠 添加于 2023-03-13 ·

分享到微信

共有 1 条评论


当下的插件格式中,VST、AU、AAX、RTAS等主流格式占据大半江山,后起之秀CLAP、LV2前途广阔,好一派繁荣景象。

而时间往回拨二十余年,音频插件领域同样繁荣。只是登台竞演的,是VST与DX这两大格式。其中,DX可谓当年的一方强手,备受重视,与VST有各占半壁江山的势头。

只是,时过境迁20余年,DX早已离开主流。但一些经得起岁月考验的插件正是由它而生,放在2023年的当下,也还能为音乐制作添彩。


什么是DX插件?

DX插件(DirectX Plugins),是微软公司推出的音频插件格式,适用于Windows系统,可视为DirectX标准的一部分,诞生于1990年代中后期。它直接对标Steinberg推出的VST插件格式,与VST并驾齐驱。

DX插件的推广有赖于Cakewalk,它与微软合作开发该格式,并以其为主打。加之,Windows的统治地位,也保证了DX插件的市场基础。当时的插件开发商常常同时推出VST、DX双版本的插件,以兼收两方市场。由于DX插件强大的影响力,一些个人或小团队开发者也以它作为“梦开始的地方”。例如,倍受赞誉的免费合成器Synth1,最早推出的就是DX格式,之后才转以VST2发布。

同时,DX插件也是DirectX Filter(DirectX滤镜)体系的一部分。这使得它们可以被任何支持DirectX滤镜的程序加载,例如媒体播放器(PotPlayer等)。

不过,随着时间推移,DX逐渐失去了当初的光彩。

VST格式相较于DX,更加受到市场认可,成为了音频插件领域的事实标准,没有一款主流DAW不支持它,因此诸多音频开发商更重视VST。且一些DAW在支持VST的同时,也主打自家格式(如AAX,RTAS,FL Studio的FL格式),统统不再把DX的支持列在开发计划中,这进一步挤压了DX格式的市场份额。

甚至,作为标准所有者的微软,也以Media Foundation Transform体系取代了原DX插件的标准。但该体系更偏向音视频处理,比如用于视频编辑、媒体播放器,与真正的音频插件领域是天与地的差别。截至目前,微软在音频插件的努力算是停滞了。

目前,只有少数DAW仍支持DX插件,包括REAPER、Cakewalk by Bandlab。


岁月的尘埃下照样有光彩

尽管DX插件已经不再是主流,也不能抹杀那些年各大音频厂商以该格式推出的精品。

笔者认为最具代表性的当属Roland EDIROL系列。代表作Orchestral在2002年诞生时惊为天人,仅用90多MB的采样库,就实现了一整个管弦乐团,几大类别应有尽有。兄弟产品Super Quartet,也是以轻巧的采样,实现了数十种“四大件”(钢琴、吉他、贝斯、鼓)乐器,原声到电声一并收入囊中。它们还提供了详尽的设置选项,编曲小白和专业编曲人都能玩出花样。而过硬的质量,即使是放在任何一款现代DAW中,依然能胜任如今的音乐制作。

其次是Sonitus插件集,涵盖了音频后期所需的各个类别,如混响、压缩、均衡、压限(limiter)等,体积小巧,专业水准不打折扣。它也是Cakewalk Sonar与继承者Cakewalk By Bandlab的自带插件。

值得一提的是,上述的EDIROL Orchestral、Super Quartet,只有在DX格式下,才能把用户设置保存到宿主中;而VST版本反而只能把配置导出到外部,待下次打开插件时再手动加载。也许,这间接证明了厂商对DX插件的重视。

不过,由于年代久远,推出上述插件的厂商早已停止维护。尤其是EDIROL系列,永远停留在了近20年前的32位DXi版本。


DX插件的分类

类似于VST、CLAP等主流格式,DX插件可以分为以下类型:

  • DX:效果器插件,以处理音频信号为主。
  • DXi:虚拟乐器插件,以生成音频为主。
  • MFX(MIDI effects):MIDI效果器插件。这是DX插件特有的类型,只用于处理MIDI数据。

DX插件的扩展名均为“.DLL”。


通行策略——转换为VST插件

幸运的是,任意版本的DX插件,仍能通过转换为VST插件的方式来运行,适用于各类支持VST但不支持DX的宿主。通常使用DX 外壳(DX Shell)来实现转换

DX Shell基于VST 2.4标准的插件外壳(plugin shell)特性——任何基于该特性的插件,均称为shell插件(shell plugins)。它扫描系统中已安装的DX/DXi插件,生成一个插件列表。然后,宿主可以直接像加载普通的VST插件一样,把它们添加到VST插件的列表中。之后,借助DX Shell内部的转换机制,将DX插件的API转换为等价的VST调用,最终拥有与原生的VST插件一致的使用体验。

通常主流的宿主都能支持插件外壳特性,但直接加载DX Shell可能会遇到无法扫描、无法运行部分插件的问题。对此,也可以借助包裹器(如VSTWrapperBuilder),与DX Shell配合,将DX插件转换成各自的“包裹器(wrapper)”插件。宿主在加载包裹器后,就会自动调用DX Shell来运行相应的DX插件。

具体如何选择,取决于宿主的兼容性及你的偏好。


方式一:直接使用DX Shell

首先,从这个链接下载DX Shellhttp://xlutop.com/buzz/zip/dxshell_v1.0.5b.zip

解压之后,你会看到不只一个DLL文件,因为DX Shell实际上是一套VST插件,每组插件对应一种DX插件类型。并提供32位和64位版本,扫描不同架构的DX插件。

主要分工如下:


文件名

转换的插件类型

dxishell.dll

DXi(DirectX Instrument)虚拟乐器插件

dxishell.x64.dll

dxshell.dll

DX效果器插件

dxshell.x64.dll

mfxshell.dll

DX MIDI效果器插件

mfxshell.x64.dll

根据需要,把上述插件放入DAW的VST插件扫描目录(例如C:Program FilesSteinbergVstPlugins),随后启动DAW

DAW在扫描的过程中,会启动上述插件,此时它们也会开始扫描电脑上安装的DX插件。不久之后,你就可以在DAW的VST/VSTi列表中看到DX插件了。例如下图所示,DXShell成功转换了电脑上安装的Sonitus系列DX插件,罗列在REAPER的VST列表中。为了区别于原生VST插件,它们的开发者名称会统一显示为“DX”。


图 1 选中的插件就是转换所得的DX插件

不过,这一做法存在弊病。例如,在REAPER种:

  • 只能加载DXShell.dll,不能加载DXiShell.dll;
  • 虽然REAPER自带桥接,可让64位宿主运行32位插件,但该特性对DX Shell不适用。64位的REAPER无法加载32位的DX Shell。

因此,如果需要使用32位的DX插件,或者是同时使用DXi虚拟乐器,还是离不开包裹器。


方式二:借助VSTWrapperBuilder

VSTWrapperBuilder是一款常用的包裹器生成器,它可以读取shell插件,将识别到的每一款插件分别转化为一个个VST格式的包裹器。可以当作DX Shell的绝配。

第一步,从笔者的微云网盘下载VSTWrapperBuilder:https://share.weiyun.com/2RFd77uJ
第二步,建议准备一个专门的文件夹,用于放置生成的包裹器,以便于管理。本文使用C:DX2VST。
第三步,启动。安装后,在开始菜单程序列表种找到“VSTWrapperBuilder”,它分为32位和64位版本。我们先点击“VSTWrapperBuilder 32 Bits”,打开32位版本的生成器:


图 2 VSTWrapperBuilder的主界面

第四步,加载DXiShell.dll插件。点击上方的“VST Plugin”按钮。此时会出现以下提示:“在选择插件之前,确保该插件没有放在VST目录(即宿主的VST扫描目录)种,以免与DAW的包裹器产生冲突”。


图 3 VSTWrapperBuilder的警告提示

点击“确定”,然后浏览到“方式一:直接使用DX Shell”当中提到的DXiShell.dll,确认。此时,电脑上安装的32位DXi虚拟乐器会出现在列表中:


图 4 加载DX Shell插件之后的界面

第五步,选择导出的文件夹。单击VSTWrapperBuilder的“Destination”按钮,浏览到要放置包裹器的目录(如C:DX2VST),确定。
第六步,开始生成。直接单击“Build”按钮即可。此时会弹出另外一个提示:“在rules.cfg中没有该shell插件所对应的设置项。将使用默认映射”,这是因为VSTWrapperBuilder可以根据不同的shell插件指定不同的设置,但这里我们不需要使用,直接确认即可。


图 5 VSTWrapperBuilder的另一个警告,提示将使用默认的映射

稍等片刻,生成成功:


图 6 包裹器生成成功

再打开资源管理器看一看。可见,VSTWrapperBuilder生成了dxishell/stereo子目录,存放了刚刚转换完成的插件。


图 7 图中的DLL就是成功生成的VST格式包裹器

第七步,用同样的方法,加载DXShell.dll,为DX效果器生成包裹器。生成的插件存放在dxshell/stereo或dxshell/mono子目录,根据插件输出的声道数而定。

第八步,如果你有64位的DX插件,则运行“VSTWrapperBuilder 64 Bit”,基本操作完全相同。只是加载的插件分别为dxishell.x64.dll、dxshell.x64.dll。


图 8 示意图:在64位VSTWrapperBuilder中,加载64位DX Shell

第九步,把导出插件的目录(如C:DX2VST)添加到宿主的VST扫描目录中,检查一下运行效果。

经实际测试,32位的古老音源——EDIROL Orchestral、EDIROL Super Quartet,都能正常使用!


图 9 在REAPER中加载转换后的EDIROL Orchestral


图 10 在REAPER中加载转换后的EDIROL Super Quartet


方式三:使用DX Shell自带的工具——Shell2VST

DX Shell自带了一款与VSTWrapperBuilder功能相同的包裹器生成工具:Shell2VST,区别在于它是命令行工具。

第一步,进入DX Shell的解压目录,解压shell2vst.zip。你会得到以下两款生成器:

  • shell2vst.exe:对应32位的shell插件。
  • shell2vst64.exe:对应64位的shell插件。

第二步,分别把dxshell.dll与dxishell.dll拖到shell2vst.exe,为32位的DX插件生成包裹器。稍后会显示以下命令行窗口,运行生成过程。


图 11 Shell2VST生成包裹器的过程(32位版本)

片刻之后,在当前目录下就会生成“DX”与“DXi”子目录,存放刚刚构建好的包裹器,如下图所示。


图 12 高亮的目录存放了刚刚生成的包裹器

第三步,再分别把dxshell.x64.dll与dxishell.x64.dll拖到shell2vst64.exe,为64位的DX插件生成包裹器。
第四步,为了不与DX Shell的本体产生冲突,把上述“DX”、“DXi”目录复制到单独的目录中(如宿主的VST扫描目录),并确保DX Shell的本体(dxshell.dll等)没有位于扫描目录之中。 

注:熟悉命令行的读者,也可以用命令行来操作。在资源管理器中,单击“文件”→“打开Windows Powershell”,分别运行以下命令来生成:

  • ./shell2vst.exe dxshell.dll
  • ./shell2vst.exe dxishell.dll
  • ./shell2vst64.exe dxshell.x64.dll
  • ./shell2vst64.exe dxishell.x64.dll

最后,经实际体验,Shell2VST所生成的包裹器,与VSTWrapperBuilder几乎完全一致,二者可以通用

DX插件要“注册”才能使用

如果你严格完成了上述教程,但仍有某一款插件没有被扫描到,那就是因为还未安装。

值得注意的是,DX插件并不是放在某个文件夹,由宿主扫描就可以用的。由于使用了微软的COM(Components Object Model,组件对象模型),DX插件必须先安装,把插件的信息添加到系统中,才能被各种软件识别。

安装的过程称为“注册(register)”。在资源管理器中,浏览到DX插件DLL文件所在的目录,然后点击“文件”→“打开PowerShell”,运行以下命令(文件名包含扩展名):

  • regsvr32 插件的DLL文件名

回车,即可完成注册。

最后再把前文“通行策略——转换为VST插件”的教程重做一遍,确保新插件能使用。


注意事项

(一)如果你使用原生支持DX插件的宿主

少数宿主,如REAPER、Cakewalk by Bandlab,原生支持DX插件,这意味着不需要上述的方式转换。

但是,DX插件要求宿主与插件属于同一架构,这就意味着64位的宿主无法运行32位的插件。现阶段也缺少类似于jBridge与REAPER那样的桥接机制,无法实现跨架构兼容。

就笔者本人经验,上文提到的EDIROL Orchestral和Super Quartet,在32位的REAPER中可以顺利运行。但现在已经是2023年,为了一款近20年前的插件而舍弃64位的REAPER和插件群,太不划算了。

所幸,转换成VST格式后,借助REAPER自带的VST桥接功能,32位版本的DX/DXi插件也可以顺利运行,丝滑无缝,不存在兼容性的障碍。这也是意料之中的收获。

(二)VSTWrapperBuilder的特殊选项

在VSTWrapperBuilder中,扫描到的每个插件都会分别有“Old”和“Surround”两个选项,见下图的红圈处:


图 13 VSTWrapperBuilder的特殊选项(红圈处)

根据官方介绍,它们分别有以下作用:

  • Old:旧插件兼容模式。一些旧插件要求宿主清空音频缓冲区,但新推出的宿主并不会这么做,因此你安装的一些知名旧插件将无法使用。解决方法很简单:在生成包裹器时,勾选插件对应的“Old”选项即可。之后,包裹器就能在需要时自动填充缓冲区,避免兼容性问题。
  • Surround:环绕声兼容模式。有些插件支持环绕声输入输出(6声道),但是一些宿主并不会向插件发送effSetSpeakerArrangement事件,这往往导致环绕声插件只能以单声道模式运行。解决办法同样非常简单:在生成包裹器时,勾选插件对应的“Surround”选项即可。如此一来,插件运行时,就会自动应用5.1声道的音频设置。(显然该特性应当用于支持5.1输入/输出的音轨。)

如果你的DX插件出现上述兼容性问题,可以试试上面的选项。


总结

DX插件的时代已经过去。而时代消逝,不代表那些年的经典之作也经不起时间的检验。得益于DX Shell与搭配使用的wrapper,那些经典的DX效果器和音源,依然能活跃在当下的音乐制作舞台上,继续发挥它们最大的价值。

读者朋友不一定会用到这个教程。但笔者认为,也许有一天,就是有一款大浪淘沙的老插件,能给你带来难得一遇的灵感。



本文出自《midifan月刊》2023年02月第203期

 

可下载 Midifan for iOS 应用在手机或平板上阅读(直接在App Store里搜索Midifan即可找到,或扫描下面的二维码直接下载),在 iPad 或 iPhone 上下载并阅读。

 


共有 1 条评论