音频应用

 找回密码
 快速注册

QQ登录

只需一步,快速开始

阅读: 35373|回复: 1

[midi] 彻底解决Cubase MIDI时钟不稳的问题

  [复制链接]

3130

积分

3

听众

342

音贝

音频应用新手发布

Rank: 3

积分
3130
发表于 2010-5-13 | |阅读模式
音频应用公众号资讯免费发布推广
   有很多人安装Cubase后录MIDI回放MIDI都完全没有问题,但是也有很多人,特别是Windows的用户,都有幸体验到了Cubase让人发疯的MIDI问题:MIDI音符比实际输入位置提前,或者延后,甚至是两个音符重叠在一起,更有甚者根本录不进MIDI音符,极端情况还会欣赏到所有录入MIDI音符都集中在Cubase最开头位置的奇观。仔细看下文,也许能帮到你。

MIDI时钟的背景:
   Cubase MIDI不准的问题是在Steinberg在N年前推出Midex MIDI接口时候被发现的,因为当时所有的MIDI接口都使用Windows标准MIDI驱动,而Midex却换成了精度更高时钟更准的DirectMusic驱动。当时的Cubase可以很好的支持Midex的DirectMusic驱动,却对其它MIDI接口厂商的Windows标准MIDI驱动支持不佳,而当时其它厂商也不能提供仿真的DirectMusic驱动。
    于是Cubase后来利用原始的Windows标准MIDI驱动,结合DirectMusic驱动,开发出了仿真DirectMusic驱动,你可以让自己的MIDI接口使用以上三种驱动中的任意一种。如果你不支持DirectMusic的MIDI接口在Cubase里不使用仿真DirectMusic驱动,那么MIDI音符就会发生错位。
    Steinberg后来又想出了一个办法,可以让你将不正确的MIDI驱动给隐藏掉,只让你用最合适的驱动。但是Steinberg开发的第一代MIDI驱动过滤程序有一些问题,总是会把最合适的驱动给隐藏掉。不过还好我们可以手动给改回来,方法可能大家都知道了,就是到Cubase的MIDI Port Enabler目录里找到一个叫ignoreportfilter的文件,把它移动到Cubase根目录里,然后在MIDI设置里你会发现有两个MIDI驱动,选择那个原始的Windows MIDI驱动即可。
    到了Cubase SX/SL和Nuendo 3.01的时代,Steinberg终于开发出了更准确的MIDI过滤器。如果检测到你的MIDI接口支持DirectMusic,就OK。如果不支持,那就用Windows标准MIDI。注意:默认情况下Cubase/Nuendo永远不会让你用仿真的DirectMusic。Cubase/Nuendo 3.01的MIDI过滤器判断正确的时候居多,而且只要判断对,就肯定是没问题的。

Windows时钟:
    Windows下MIDI不准的原因不只是上面说的Cubase判断的问题,还有Windows时钟自己的问题。老的Windows版本和老的MIDI接口,以及支持VST和ASIO标准的大多数音序器软件们都使用Windows TGT (timeGetTime)时钟,它可以精确到毫秒。而一些新的MIDI接口和一些使用DirectMusic的MIDI接口,以及其它一些音序器软件却使用QPC (QueryPerformanceCounter)时
钟,精度比TGT高10倍。
    问题来了,如果你走QPC时钟的MIDI接口遇到了走TGT时钟的Cubase,MIDI音符不乱才怪。Steinberg在Nuendo 2和Cubase SX 2.2给出了解决方案:DirectMusic设置里的Use  system timestamp选项,如果你选上它,那么Nuendo和Cubase就改走QPC时钟。
    实际上这是Windows的问题,责任不在Cubase。SONAR有另外一套解决方案:在它的TTSEQ.INI初始化文件里有一个IgnoreMidiInTimeStamps选项,默认为1,如果你发现SONAR里的MIDI也错
位了,你可以手动改成0。
再回过来说Steinberg,到了Cubase SE/SL/SX 3.01和Nuendo 3.01版本Use system timestamp
被挪到了Windows MIDI设置页面里,这样如果你的电脑连接了多台MIDI接口,你可以分别设置让它们
走TGT还是QPC时钟。

我是否需要Use system timestamp?

    有一个小软件可以告诉你,在这里下载MIDITime Utility(http://www.jay.fm/miditime/miditime.exe),用一根MIDI线把你MIDI接口的输入/输出串起来,运行这个软件,它会告诉你Cubase是否需要选中Use system timestamp。
    如果你是懒人,MIDITime Utility作者做了一些常用MIDI接口的测试,你可以对号入座。
    需要选中Use System Timestamp的MIDI接口:
• Echo Mia
• EMU 1212M
• Frontier Design Dakota
• M-Audio 410 Firewire
• M-Audio Audiophile 2496
• MOTU 828 MKII
• MOTU Express XT
• MOTU MTP-AV
• Steinberg MIDEX-8
• Terratec EWS88MT
• Yamaha SW1000XG
• Wami Rack-24
不能选中Use System Timestamp的MIDI接口:
• Aardvark LX6
• Aardvark Q10
• Edirol UMT-880
• Digi 001
• Emagic Unitor8 MK1
• Emagic Unitor8 MK2
• Emagic AMT-8
• M-Audio MIDISport
• RME Digiface
• RME 9632
• Roland SC-8820
• Roland Super MPU-64
• Roland UM-4
如果你用以下的主板,用任何MIDI接口,选不选中Use System Timestamp都无所谓:
• Asus A7V333
• Asus A7N8X-X
• Asus P4D-800D
• Asus P4T-533C
• Asus TUSL2-C

    如果你有好几个MIDI接口,连接好几个MIDI键盘,那你一定要有很好的记忆力,哪个MIDI接口要Use System  Timestamp,哪个不要Use System  Timestamp,哪个MIDI键盘要Use System Timestamp,哪个不要Use System Timestamp……
    还有一点,可能有些人刚运行Cubase时MIDI对的很准,但随着工作时间的增长,MIDI时间越来越不准了,你也许发现了一个诀窍:关闭Cubase再打开就又好了。这并不是长久之计,我建议还是看看Use System Timestamp那里是否选错了。

终极测试:

    如果你还是不确定你的MIDI接口在哪种状况下MIDI时钟最准,那么就来做个测试好了。我们要测试4种状态:用Windows标准MIDI驱动和用DirectMusic驱动(或仿真DirectMusic驱动),选中Use System Timestamp和不选中Use System Timestamp。
    即便你的MIDI接口只支持Windows标准MIDI驱动,但也许仿真DirectMusic驱动+QPC时钟能使MIDI精度提高,所以我们还是要经过测试才知道。
    打开一个新的Cubase工程,速度选120BPM,关闭自动量化,建一条MIDI轨画出一段持续好几个小节的MIDI区块,然后在里面用画笔工具把每个小节都画上一个1/16音符,将该MIDI轨的输出选择为你的MIDI接口输出。再建一条新的MIDI轨,输出留空,而把输入选择为MIDI接口的输入。最后用一根MIDI线把你MIDI接口的输入/输出串起来,然后在回放的同时让第2条音轨录音,这样我们就在第2条音轨上录到了第1条音轨的MIDI音符。如图1。
    现在你就可以放大两条音轨,看看第2条音轨的MIDI音符是否有错位。如图2。需要注意的是即便你选对了驱动和MIDI时钟也不会100%的准确,这是由你MIDI接口硬件本身的时钟不稳造成的,也就是我们常说的jitter现象(时基偏移)。

图2的测试图,我放大到最大精度,标尺的单位是秒,一格代表10毫秒。最上面的黄色音符是手画的标准1/16音符。6个紫色音符都使用了Maple虚拟MIDI软件(等于让MIDI信号在电脑内部串接,而没有经过MIDI接口硬件),第一轨紫色音符用了system
timestamp,第二轨没有。6个绿色音符与紫色音符用了一样顺序的设置,但是是过了我的EMU 1820m声卡的MIDI接口(用Windows标准MIDI驱动)。后6个蓝色音符也是EMU 1820m声卡,但用了仿真DirectMusic驱动。在这个测试中,用了system timestamp的结果都比没用要准确,而最准确的音符则是浅绿色被选中的那一组,这样我就知道在我的电脑上,EMU 1820m声卡
的MIDI接口用自己本身的Windows标准MIDI驱动,选中Cubase中的use system timestamp是最准确的。

微操:
    也许你还经常使用虚拟MIDI接口软件(比如MIDI Joke、Hubi's MIDI LoopBack device),使MIDI信号在电脑内部各个软件之间串接,这样的情况下你就不必担心MIDI硬件驱动对Cubase的干扰,但时钟选不对的话同样会造成MIDI不准的现象。那我们可以用一个叫MIDItest的软件来测试MIDI在电脑内部串接的延迟和jitter。下载MIDItest:http://earthvegaconnection.com/e ... /fle/miditest46.zip
    然后我们用一个叫Maple的虚拟MIDI接口软件来做测试(当然你用MIDI Joke、Hubi's MIDI LoopBack device等等也可以),下载Maple:http://www.hurchalla.com/MapleVMCv356.zip
    测试结果(如图3)超棒,Maple的延迟只有0.01ms,jitter几乎测试不出来。毕竟是虚拟MIDI接口嘛。
    当然你也可以直接把输入/输出端口选成MIDI接口,用MIDI线把输入/输出串起来做这个测试,在上面说的各种情况下做测试,也可以很快的找出自己系统在如何的设置下MIDI延迟最低。
欢迎厂家入驻,推文!免费!微信:yinpinyingyong

3万

积分

4

听众

1582

音贝

音频应用初级会员

Rank: 6Rank: 6

积分
37271
发表于 2010-5-14 |
真是不错!欣赏,支持!!
欢迎厂家入驻,推文!免费!微信:yinpinyingyong
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

音频应用搜索

小黑屋|手机版|音频应用官网微博|音频招标|音频应用 (鄂ICP备16002437号)

Powered by Audio app

快速回复 返回顶部 返回列表