「テンポ」を考える

 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以下の精度で制御することが可能です。