私はiOS音楽アプリ(C ++で記述)に取り組んでおり、モデルは多かれ少なかれ次のようになっています。
--Song
----Track
----Track
------Pattern
------Pattern
--------Note
--------Note
--------Note
つまり、基本的に、aSong
には複数Tracks
、aにTrack
は複数、 Patterns
aにはPattern
複数がありますNotes.
。これらはそれぞれクラスによって表され、Songオブジェクトを除いて、すべてベクトル内に格納されます。
それぞれNote
に"frame"
パラメーターがあり、ノートをいつ演奏するかを計算できます。たとえば、44100サンプル/秒があり、特定のノートのフレームが132300である場合、3秒目の開始時にそのノートが必要であることがわかります。
私の質問は、最高のパフォーマンスを得るためにこれらのメモをどのように表現する必要があるかということです。今、私は各パターンのベクトルデータメンバーにノートを保存し、すべてをTracks
ループすることを考えていSong
ます。Patterns
そしてループするNotes
よりも、132300より大きく176400より小さいフレームデータメンバーを持っているものを確認します( 4秒の開始)。
お分かりのように、それは多くのループであり、曲は10分にもなる可能性があります。したがって、これがすべてのフレームを計算して時間どおりにバッファに送信するのに十分な速度であるかどうか疑問に思っています。