lv2插件开发-如何同时读取MIDI时间和音符

时间:2018-07-17 14:34:04

标签: audio midi lv2

我正在使用Moony为我正在构建的仅MIDI lv2插件的某些组件制作原型。我一直在尝试找出如何从noteOn事件中获取某种歌曲位置值的方法,这意味着我需要知道该音符在调用midiResponder时所属的节拍和小节。即使是总时间或总帧数也可以计算。 Moony与timeResponder和midiResponder回调一起工作的方式意味着我可以知道时间位置或音符...但不能同时知道。看一下lv2 midi规范,它看起来像只有事件类型,音符编号和速度都是noteOn事件原子的属性...所以当我用C ++重写并将此代码集成到我的lv2插件中时,我将面临同样的问题?这是正确的吗?有解决方法吗?

1 个答案:

答案 0 :(得分:0)

您在此处看到的规格描述了LV2 MIDI事件的有效负载,即MIDI。时间戳是可用的,但是它在包含MIDI的(通用)事件中。这样,所有事件都带有时间戳记(相对于缓冲区,以帧为单位),无论其有效负载类型如何。

如果要用C ++编写此代码,则将获得单个事件缓冲区,其中包括时间更改,MIDI事件以及插件可能支持的任何其他事件。因此,所有信息都是可用的,但是可以管理此状态,以便根据您的需要使用它。