私は純粋なLuaでMidiファイルリーダーを作成し、love2dでビジュアライザーを作成することにしました。そのため、最初に、現在再生中のノートをループして表示し、どのノートがオンになっているかを判断しました。
それはうまくいき、私は常に約300fpsを達成しましたが、合成プログラムのようなプレビューが必要だと決めましたが、各ノートをループする必要がないようにそれらを保存する良い方法を考えるのに苦労しています.ピクセルごとに、将来 (または過去) の時点でオンになっているものを決定します (この方法では、約 15 ~ 30 fps になります)。
秒単位の時間としてインデックスを持つテーブルと、現在オンになっているメモを含む値テーブルを作成しようとしましたが、うまくいかないようです。変数からこれらのメモをすばやく保存してアクセスする方法について誰か提案があれば、本当に助かります。(また、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...
}