我爱你各种语言发音:软件乐器的延迟问题解释 - 缩混&录音&拾音

来源:百度文库 编辑:偶看新闻 时间:2024/04/24 12:33:43

[缩混] 软件乐器的延迟问题解释

.threadtags_tag {margin:0px !important;background:none !important;padding:12px 0 !important;color: #222 !important;}.threadtags_tag span {border:1px solid #666666; padding:10px 14px 10px 32px; background: url(http://images.5d6d.net/dz7/templates/ddark/images/tag.gif) no-repeat 10px 50%;}.threadtags_tag a{color:#DDD !important;}相关搜索: 乐器, 软件, 延迟, 解释 本文介绍的是软合成器的延迟及怎样避免延迟   
  

从理论上的数字以及制造商的量测结果来看,通常认为软件合成器的延迟是可被忽略的-- 但如果当你弹奏它们时,这延迟是随处可得的时候,我想这样的认定是没用的。

我们的实际量测将会有助于你建立正确的观念回到SOS November 2000的时候,我们那时讨论过许多文章,谈到有关合成器如何由硬件转为软件的变化,包含了音质、取样以及软件合成的替代、延迟以及延迟时基错误(latency jitter)..等问题,相关文章可自以下连结取得 http://www.sospubs.co.uk/sos/sep02/articles/。

VST与DX软件合成器之美,在于其播放自Midi+Audio编曲软件时的Timing总是被保证如取样精确度(Sample Accurancy)般的准确,因为其波形的产生时间较早,而输出的声音刚好跟其它的音轨同时出现。
                                         
然而,在其后SOS的讨论区中,有些人发现Midi延迟所产生的时基错误却是让他摇头的问题,实际上,这意味着不是只有某些应用软件存在着按下音符与听到软件合成器声音之间的时间延迟,而是这样的延迟非常不稳定,举例来说,如果我们把Cuabse 5.1的Buffer设成12ms,则当你实际演奏时的MIDI-to-audio的延迟可能会在12ms 到24ms之间变化。

自从我写下了这个特征之后,我发现许多的SOS 读者仍然陆续发表了一些Midi Timing的牢骚问题,不论是来自标准MIDI录音以及弹奏软件合成器都有。所以,我想该是时候把理论先放一边,我们该来做些更实际的真实测试方法。我想做的其实是以各种不同的软件与硬件,测试从外部键盘按下琴键之后,到声音从喇叭输出时所量测到的实体延迟。
                              
测试的设定

在设定我的测试设备时,我的焦点在于比较整个信号流程末端的声音输出时,以及Midi信号开始产生时,最前端的时间点,所以我决定尝试直接从我的Midi键盘后端的Midi输出端口撷取信号,焊上一个修改过的MIDI 信号转接器,在优秀的“Hinton Instruments Professional MIDI导引”中有关于它的描述。
                        
(http://www.hinton.demon.co.uk/midi/promidi.html),这使得我能够有效的从Midi端口的第二以及第五个接脚直接撷取信号来监看,这部分唯一不能减少的延迟是键盘扫描的延迟,这通常花1ms的时间,虽然某些早期的合成器如 Prophet 5只扫描键盘大约200次/秒,亦即每次产生5ms的延迟,时间长短其实取决于在每个扫描循环中你何时按下键盘。
               
我决定用我的录音卡来录制MIDI波形,所以为了安全起见我在第五个接脚接上一个5.1kOhm 的电阻,来避免因Midi信号错误对录音卡造成的伤害,然后将它焊到Line-in的输入导线上,我把这样的组合从Midi键盘的输出端,插入至录音卡的信号输入端,我想要探查这样输入的Midi信号转为Audio所需的时间,.我弹下了几个音符,然后录制起来,最后结束时我停留在MidiNote On的信息,所以一个Midi频道 录Midi信号,另一个轨道则是录制相关联的声音信号,这两者的差异提供了关于Midi to Audio延迟的精确数值,包含整个信号流程的各种变量,包含MIDI接口、驱动程序、Windows操作系统乃至于软件合成器的处理以及暂存的延迟,最后才是数字转换为模拟信号时产生的延迟,因为这些流程中产生的延迟可能都是某些使用者会遇到的问题,所以看起来把它们总合起来似乎是很重要的。

如果你想要在家自己做测试,只把这条特殊线接上你的录音卡,在测试过程中,因为在接上某些键盘时可能会产生接地循环(Ground Loop)的情形。 虽然MIDI的规格通常是很谨慎的设计过来避免这种问题,藉由迫使每组Midi输入都绝缘,使得两组相连的Midi设备他们的金属底座绝不会直接接触,即使是声霸卡的Gameport MIDI转接线(即MidiKit)在Midi输入端也会做绝缘,让第二个接脚如同没有接信号一样,所以如果你接上了MidiKit之后机器产生了Hum声,记得要要求更换。

录音与量测
                       
在接下来的量测当中,我企图屏除因实验所发生的错误,因此我每按一个音都取大约6次的结果来平均,过程中如果有某些不寻常的数值出现,我则会多加考虑(多加测试), 大部分的时候结果都是相似的,偶尔会有些数值偏高,大多都还在一个重复的范围之中变化,而这些变化就预设为是因为jitter延迟所造成。我使用我的Echo Mia来录音,大部分在44.1kHz的取样频率,即使使用22kHz的频宽,仍然可以非常清楚的看到31.25kbaud的MIDI data所呈现出来的证明。
                              
大部分的Midi设备都发出一种称为Active Sensing的侦测信息来探测连结的MIDI线或是设备是否故障,所以在你用录音卡录Midi信息时可能会看到负象限的波形,好在它们是很容易跟其它信息如Note On来做区别,Note On的信息如同一丛宽大的脉波,延迟大约1ms,因为你已经知道延迟的大约数值,所以你会很快聚焦在Note On信息与每个软件合成器的声音音符之间的关联数值,只要你证明出第一组数值,之后出现的你都会很容易看得出来。


我所有的测量都起始于弹下键盘让MIDI Note On message出现时,严格说来, 没有一台合成器可以完全将MIDI data的信息反应至完全实时,这会使得真实的MIDI Note On的信息比实际量测时要少1ms, 所以如果你要求严格的反应时间,那最好要将结果减1ms,然而,键盘又于内部扫描延迟的问题,大多会比Midi信息提前1ms送出信息,两者刚好可以相抵销, 所以我们所报导的数字可以准确的表现出从键盘被按下到合成器开始发声的时间。
                             
产生一个易于测量合成器发声起始点的方法,就是以一个方波或是脉波来发音,把它的截止频率(CutOff Frequency)开到最大,把响应(Resonance)开到最小,把它们的波形产生器的上升(Ataack)时间调到最快,测量它的波形上升起始时间, 我重复测量了几乎上百次,很有自信的认定它们的准确度可达误差小于 0.1ms


硬件的MIDI 延迟
                     
藉由开始量测几台合成器的Midi Note On数据与声音输出之间的延迟,来提供一些有用的信息,并与它们相对应的软件合成器来做比较,看起来是个蛮明智的方法。 所以我开始测量我的老琴Korg M1,结果如同大部分的硬件合成器,我所测量的延迟结果非常一致,而且极低到仅有3.2ms,以一个16-note发声数的琴来说是个很不错的结果。
                     
另一台工业标准则是Roland's JV1080,,它的延迟也非常稳定,不过比较长一些,有4.4ms之久,当然无疑的因为它是64-note发声数的合成器,对于希望硬件合成器能具备实时响应的人来说,这些结果似乎蛮令人满意, 不过大多的合成器都是透过他们本身的微处理器来驱动,虽然其操作系统都明显经过仔细的调教以致于能够实时演奏,然而要处理每个动作与功能的时候,仍会占用固定的时间。