【问题标题】:When listening for messages from a device, what is the unit of AbosoluteTime?收听来自设备的消息时,AbosoluteTime 的单位是什么?
【发布时间】:2011-09-19 04:34:04
【问题描述】:

当从 MidiDevice 监听 NAudio 中的 MidiEvents 时,我们会在每个事件上获得长的“AbsoluteTime”属性。但是这次的时间是什么单位,是从什么起点开始测量的呢?

【问题讨论】:

  • 根据这里的讨论 (naudio.codeplex.com/discussions/237575),我怀疑它正在偏离标准 MIDI 时钟,这意味着每个四分音符将有 96 个。不过我不确定,我不使用 NAudio 库。

标签: midi naudio


【解决方案1】:

在 MIDI 文件中,每个事件都有一个自上次事件以来的“滴答声”增量。为了使 MIDI 文件更易于使用,NAudio 会保留一个运行总计,将值存储在 AbsoluteTime 中。其含义取决于每个四分音符的增量记号(这是 MidiFile 类的一个属性)和速度(MIDI 文件应该至少包含一个 TempoEvent)。

从设备侦听 MIDI 事件时,创建的 MIDI 事件的 AbsoluteTime 将为 0。但是,您可以使用 MidiInMessageEventArgs 的 TimeStamp 属性,我相信它是自调用 MidiInStart 以来的毫秒数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-05
    • 1970-01-01
    • 2016-05-25
    • 1970-01-01
    相关资源
    最近更新 更多