Dorico小贴士:论如何自动将VST2插件塞入白名单
发布时间:2018/11/20 来源:文章来源于Midifan ,作者孙志贵

Steinberg 有充足的理由奋力向市场推进 VST3 标准、用以取代早已流行快二十年左右的 VST2 标准。这在 Dorico 这款新生的制谱工具而言,显得有些激进:除非你将指定的 VST2 插件的档案名称(不包括扩展名/副档名)写入白名单,否则别想在 Dorico 里面正常使用。

Dorico 的团队对此也是一脸无奈,因为他们研发资源有限、没多少精力去伺候那些写得很烂却又没什么人在维护的 VST2 插件。但咱们作为最终用户,那还是得想办法解决咱们的硬需求的。本文会给出用以满足该需求的思路,且给出这个思路在 macOS 系统下的实现方法。

笔者的范例就是利用 macOS 本身系统的 Bash 命令行系统来写一个脚本、来将系统内所有 VST2 扩展都塞入白名单。这个脚本的具体操作步骤是这样的:

 

罗列「/Library/Audio/Plug-ins/VST/」目录下的所有档案与资料夹的名称(不包括子资料夹内的名称)、并写入一个空白的 txt 文本档案当中。

对该 txt 文本档案当中所有不以「.vst」结尾的行都删掉(包括空行)。

在上一步正确执行无误的前提下,将剩下的每行的尾部的「.vst」字样删掉。

将该空白档案更名为「vst2whitelist.txt」并塞入指定目录下。Dorico 2 的白名单目录位于「/Users/用户名/Library/Preferences/VSTAudioEngine2」,可以直接用「~/Library/Preferences/VSTAudioEngine2」跳转至该目录。


这样一来就可以直接写出三条 Bash 指令:

ls /Library/Audio/Plug-Ins/VST > ~/Library/Preferences/VSTAudioEngine2/vst2whitelist.txt

sed -i  -e /.vst/!d ~/Library/Preferences/VSTAudioEngine2/vst2whitelist.txt

sed -i  -e s/.vst// ~/Library/Preferences/VSTAudioEngine2/vst2whitelist.txt


可是,只按照这三句脚本顺序执行的话,所有以大写「.VST」结尾的插件会被忽略。这是因为 macOS 内建的 sed 命令「是被阉割过的版本」的缘故、无法对大小写脱敏。而对那些不熟悉 Bash 的用户而言,让他们去用 Homebrew 下载更全面的 gsed 的话,也未免太难、达不到「一个脚本解决所有问题」的效果。

目前我能想到的功能实现也只有上文这些。其他人可以做到的有:

用其它命令在这个脚本之前(得以管理员权限)强制将系统内所有 VST2 的扩展名/副档名改成小写。

使用 macOS 内建的其它指令来满足对文本内的关键字判定、且在判定过程当中对大小写脱敏。

另外,要将这个脚本移植到 Windows 系统的话,需要注意:

得用 PowerShell 命令来重写该脚本(Windows 7-10 通用),而这样一来就用不了 sed 命令了。

Windows 系统下的 VST 扩展不是在统一的目录内规整存放的,且需要就地判定一个 DLL 档案同时满足「是 VST2」「是 64 位元」这两个条件(Dorico 不支持 32 位元的 VST 插件)。这个判定过程比较麻烦,搞不好连 PowerShell 都派不上用场、而非得写一个应用不可。