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

Audio lv2插件开发-如何同时读取MIDI时间和音符,audio,midi,lv2,Audio,Midi,Lv2,我正在使用Moony为我正在构建的仅MIDI的lv2插件制作一些组件的原型。我一直在努力研究如何从noteOn事件中获取某种歌曲位置值,这意味着我需要知道在调用MIDI应答器时音符所属的节拍和小节。即使是总时间或总帧数也可以进行计算。Moony处理timeResponder和MidResponder回调的方式意味着我可以知道时间位置或音符。。。但并非两者同时存在。查看lv2 midi规范,似乎只有事件类型、音符编号和速度是noteOn事件原子的属性。。。那么,当我重写C++并将此代码集成到LV2

我正在使用Moony为我正在构建的仅MIDI的lv2插件制作一些组件的原型。我一直在努力研究如何从noteOn事件中获取某种歌曲位置值,这意味着我需要知道在调用MIDI应答器时音符所属的节拍和小节。即使是总时间或总帧数也可以进行计算。Moony处理timeResponder和MidResponder回调的方式意味着我可以知道时间位置或音符。。。但并非两者同时存在。查看lv2 midi规范,似乎只有事件类型、音符编号和速度是noteOn事件原子的属性。。。那么,当我重写C++并将此代码集成到LV2插件中时,我将面临同样的问题?是这样吗?有解决办法吗?

您在那里看到的规范描述了LV2 MIDI事件的有效负载,即字面上的MIDI。时间戳可用,但它位于包含MIDI的(通用)事件中。通过这种方式,所有事件都带有时间戳(以相对于缓冲区的帧为单位),而不管其有效负载类型如何

如果你要用C++写这个,你会得到一个事件缓冲区,包括时间变化、MIDI事件和插件支持的其他事件。因此,所有的信息都是可用的,但是管理这种状态,使其在您想要的地方可用,这取决于您