[FM]FULLMSX for BLOG

詳しいMSXパソコンなどの情報はホームページで!
https://fullmsx.web.fc2.com/

BPMからシステム変数TIMEを計算する BEATCALC.BAS

2020-03-09 22:12:50 | 1chipMSX

 お久しぶりです。MSXはまだやめていません。FM音源をいじって遊んでいますw。
今日は簡単なリズムマシンを作ってみたいと思います。

FM-MUSIC環境のMSXで実行できます。まだ不具合がいくつかありますが重いですが動作します;
実行すると1,2,3,4のボタンで4種類のリズムを選びます。
ENTERで音をミュートしてカーソル下でテンポをあがり上でテンポが下がります。
最初は@31のバスドラムの音色でしたが

4の32ビートだけはドラムセットのMML(b32b32b32~)です。ただオマケで実用的ではないです;
32ビートは伝説!?のビートでマシンガンでガチャガチャうるさいだけです。BPM100が限界ですね。
ゲームミュージックに、例えばR-TYPEとかであります。ちょっとオマケにしました。
例えば8ビートの場合はPLAYをいじるだけで好きなリズムに変えるようにしました。

最初のモジュールはTIME変数を使用して1秒経つと単に音を鳴らしてBPM60から始めました。
プログラムではTS=60とIF TIME>TS THEN ENDにします。
TS=60はタイマーストップ(TS)と自分で決めました。

PLAY" T=TS;"というコマンドを使えば同じようなことができるので変えましたが
280行の計算をすればBPMからTIMEの時間で音の間隔を作ることができます。
SOUND命令などに活用できます。


TIMEはMSXパソコンの場合は60分の1秒でカウントされます。TIME=0でリセットできます。
3600で1分になります。変数を指定せずに直接処理させるとこんな感じです。

BEEPはシステム音でビープと呼びます。音を確認するには[CTRL]+[G]です。
環境によって音が小さい場合はMSX2以降ならSET BEEP 1,3で音量を最大にします。
それでは。

コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする