Nuendo / Cubase 的 midi 时间问题详解
作者:Jay
编译:我
Nuendo 和 Cubase 的用户可能会遇到 MIDI 时间的问题。这个问题说来话长……
--------------------------------------------
1,由 Emulated Ports (虚拟端口)引发的时间问题
有些 MIDI 时间问题是由于 Emulated MIDI ports 带来的。
很久以前,只有一种 MIDI 驱动,叫做 Windows MIDI 。然后,微软又推出了新的 MIDI 驱动—— DirectMusic 。
为了使一部份只具有 Windows MIDI 驱动的声卡也能支持 DirectMusic ,Windows 提供了一种“虚拟的”(emulated)DirectMusic 端口提供给 Windows MIDI 驱动。也就是说 Windows 把声卡的 Windows MIDI 驱动转换成 DirectMusic 驱动。当 Nuendo / Cubase 要使用 DirectMusic 端口时,如果你的声卡不支持 DirectMusic ,那么 Windows 将帮你转换之。但实际上,这个 emulated DirectMusic 不是个好东西(对于专业音乐制作来说),有可能会有时间问题。
Nuendo / Cubase 有个独特的地方:当它发现你的电脑既有 Windows MIDI 驱动,又有 DirectMusic 驱动时,那么 Nuendo / Cubase 将会先猜测一下哪个更好,然后使用它认为更好的那个,屏蔽它认为不好的那个。然而它总是猜错,去使用 emulated DirectMusic 。而有些 emulated DirectMusic 是有时间问题的,于是 Nuendo / Cubase 的时间问题就出现了。
解决方法:
这个解决办法仅适用于时间问题是由 emulated 端口带来的情况。
Nuendo / Cubase 有一个特殊的零字节的文件,叫做 ignoreportfilter ,在安装目录下的 MIDI Port Enabler 。把这个文件移动到上一级目录去,然后再运行 Nuendo / Cubase ,此时 Nuendo / Cubase 将不再会去屏蔽它认为不好的那个驱动。你会发现你的 Nuendo / Cubase 里既有 emulated ports 又有 non-emulated ports 了。此时当你选择使用 non-emulated ports 时,你会发现你的时间问题或许就没有了。
------------------------------------------
2,由两个时钟所带来的问题
所有的 MIDI 接口所发送给 Windows 的 MIDI 信号,都会被 Windows 标上时间,然后再提供给应用软件,以避免应用软件不能立即识别输入音符等等问题。软件从 Windows 的记录里提取事件,做一个迅速的运算,然后得出一个“延迟补偿”时间,把所有的 MIDI 数据都提前。
但是,Windows 提供了两种不同的时间记录方式,一个叫做 TimeGetTime(简称TGT),另一个叫 QueryPerformanceCounter(简称QPC)。后者更精确。但是后者只在新的 Windows 里才有。
而 VST 技术和 ASIO 技术却是基于 TGT 的。
很多老的 Windows MIDI 驱动,更喜欢使用 TGT ,而这正是 Nuendo / Cubase 使用的。而新的驱动,尤其是在 DirectMusic 下写的驱动,更喜欢用 QPC 。而 QPC 与 TGT 是不同步的,因此如果你的 MIDI 驱动是使用 QPC 的,那么你的 Nuendo / Cubase 很可能就有时间问题了。
为什么 Sonar 没有这个问题呢?这是因为 Sonar 有一个隐藏选项:忽略所有的 Windows 加上去的时间记录,也就是说 Sonar 是自己标记时间,而不管 Windows 。
解决办法:
Nuendo 和 Cubase 2.2 提供了一个选项在 DirectMusic 设置里,“Use system timestamp”。这个选项仅对你的 MIDI 驱动是 DirectMusic 驱动时才有作用。当你不选时,Nuendo / Cubase 就不理会 Windows 所标记的时间,而是自己标记时间(象 Sonar 那样),选上时,就从 Windows 里读取时间记录。但请注意,这个设置仅对 DirectMusic 驱动才有效。而 Sonar 的这个选项是对 DirectMusic 和 Windows MIDI 都有效。
==========================================
常见 MIDI 接口的问题和解决办法
如果你的 MIDI 接口是下列这些之一,那么在 Nuendo / Cubase 中,你最好使用 DirectMusic emulated ports ,以及选上“Use System Timestamp”。
Frontier Design Dakota
MOTU MTP-AV
MOTU Express XT
Steinberg MIDEX-8
如果你的 MIDI 接口是下列这些之一,那么在 Nuendo / Cubase 中,你最好使用 native DirectMusic ports (non-emulated),以及选上“Use System Timestamp”。
Wami Rack-24
如果你的 MIDI 接口是下列这些之一,那么你最好不要选上“Use System Timestamp”。
Aardvark Q10
Edirol UMT-880
Emagic Unitor8 MK1
Emagic Unitor8 MK2
Emagic AMT-8
M-Audio MIDISport
RME Digiface
RME 9632
如果你的主板是下列这些,那么不管你怎么设置,Nuendo / Cubase 都没有时间问题:
Asus A7N8X-X
Asus P4D-800D
Asus TUSL2-C