【发布时间】:2014-02-12 09:56:07
【问题描述】:
我已经用纯 Lua 制作了一个 Midi 文件阅读器,我决定在 love2d 中制作一个可视化器,所以我首先通过循环播放音符并决定打开哪些音符,让它显示当前播放的音符。
效果很好,我一直在 300 fps 左右,但后来我决定我想要一个有点像合成程序的预览,但我很难想出一种存储它们的好方法,这样我就不必循环了通过每个像素的每个音符来决定在未来(或过去)的时间哪些是打开的(这种方法使其以大约 15-30fps 的速度运行)。
我已经尝试制作一个以秒为单位的索引表和带有当前注释的值表,但我似乎无法使其工作。如果有人对我如何快速存储和访问变量中的这些注释有任何建议,我们将不胜感激。 (我也知道我可以使用 C 或 C++ 或库,但我想用纯 Lua 制作一个)
笔记目前存储在一个笔记表中,这些笔记仅按轨道按时间顺序排列,例如 track1note1、track1note2、track1note3、track2note2 等...
表格的结构是这样的
table = {
--{start time(in seconds),end time(in seconds),note,track,velocity}, note1
{0.00043,1.387289,44,1,127},--note2
--etc...
}
【问题讨论】:
-
如果你愿意,我可以提供代码或部分代码。