BlackChipぶろぐ

ゲーム作ったりしてます。レトロゲームが好き、HR/HMが好き、趣味のことなどの記事を書いていきます

FamiTrackerでテンポがヨレないBPMを計算してみた

1秒間60フレームだからBPMによってはテンポがヨレちゃうとかなんとか。
そんなわけでヨレないBPMを計算してみました。

※数学得意じゃないので間違っていたらごめんなさい

  • 計算式

(Hz / (BPM / 60)) / 4 = 1行あたりの処理回数(Ticks)

こんな計算式になった。
HzはEngine SpeedのCustomで変更できます。

てなわけで、FamiTrackerで1行あたりの処理回数が整数になるBPMを計算してみた。
※Hzは60で計算

Tempo Speed BPM Ticks
40 8 30.00 30
150 29 31.03 29
75 14 32.14 28
50 9 33.33 27
36 6 36.00 25
50 8 37.50 24
150 23 39.13 23
75 11 40.91 22
50 7 42.86 21
45 6 45.00 20
150 19 47.37 19
50 6 50.00 18
150 17 52.94 17
75 8 56.25 16
60 6 60.00 15
75 7 64.29 14
150 13 69.23 13
75 6 75.00 12
150 11 81.82 11
90 6 90.00 10
100 6 100.00 9
150 8 112.50 8
150 7 128.57 7
150 6 150.00 6
180 6 180.00 5
225 6 225.00 4
150 3 300.00 3
225 3 450.00 2
150 1 900.00 1


BPM 30 未満でもフレームが整数になるものや他のTempo Speedの値で同一のBPMを実現できるがそれらは省略した。

Gコマンドで指定する値はこの1行あたりのフレーム数のことになってくるので、このフレーム数から計算するといいと思う。

何度も言うようだけど、間違ってたらごめんなさい。