PsycleWTL:XMSampler

公開:2004-04-11 05:31
更新:2020-02-15 04:36
カテゴリ:psycle wtl,windows,audio,tracker

しかし、Amiga Periodというのはどういう理屈なんでしょうね。
というわけで、調べてみることにしました。
まず、音源フォーマット MODについて のソースの、Key(Note)からPeriodを計算する部分を抜き出して、0-120のKeyを与えるとどのようなPeriodが算出されるか調べました。
調べるために作成したプログラムソースはです(WSHです。C++では面倒でしたので)。
それをOpenOfficeの表計算でグラフ化すると、指数関数のグラフとなります。

なので、高い音階になるほど1PeriodあたりのPitchが大きくなるのですね。
次に、これに近い値をなぞる指数関数を考えます。
おそらくKey関連なので例の2^(note/12)あたりが怪しそうです。
数式をこねくり回すと、すごく近い値を出す関数ができました。
period=2^((116.898-X)/12)32

この値(period)に、さらに下記の演算を施すとC4を基準音とした場合の各音階の再生Speedになります。

再生Speed = (7159090.5 / (period/2) ) / (8363
32)

8363はC4のperiod値です。7159090.5はAmigaのCPUClockだそうです。
全然わかりませんね。
なんでAmigaのCPUクロックを割るんでしょうか?