「テンポ」を考える
MIDIとGeneratioを同時に再生してみたら、
何かずれる。
確か(フレーム長は)ms単位で
それもdouble型で持っておいたはずなんだけどな…。
……あ、そうか。
実際の書き込みの時はサンプル単位になるのか。
で、1サンプルはどの位かというと、
Generatioはサンプリングレート44100Hzで鳴らしているので、
1 / 44100 = 0.000022675736..(秒)
= 0.022675736...(ms)
= 22.675736...(μs)
約23μsですか。
…あれ、
確かMIDIの方のテンポの仕様は
tempo = (60 * 1000000)(μs) / T(μs)
*「T」 : 3バイトの整数。
ユーザはコレを指定してテンポを調整する。
確かこんな感じだと思ったので、
おそらく、
1μs単位でテンポの指定が出来る
ということになるのかな。
…あぁ、そういうことか…(汗)
上記をまとめると、
となるわけで、
・Generatioの波形の最細(?)分解能
:(44100Hzでの)1sample ≒ 23μs・MIDIの波形の最細(?)分解能
:(多分)1μs
精度というか分解能というかが足りない
…と、そういうことですか。
--- 07/06 : 11:44 地味に数値が間違ってたの修正
以下、Generatioのフレーム長に関する余談。
という感じでフレーム長を出して
frame_len = 60000(ms) / (tempo * timebase)
曲全体のテンポを制御しています。
frame_len自体はdouble型なので、
1ms以下の精度で制御することが可能です。