[FM]FULLMSX for BLOG

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

MSX2のSCREEN3 512色パレット 音楽ツールとして MML制作中のエラー

2020-05-11 17:45:03 | 1chipMSX

 グラフィックが拡大されたSCREEN3で何かできないか考えています。

 SCREEN3はSCREEN2のグラフィックがモザイク表示になるだけの用途で
ポケコンのような超低解像度モードを再現できることでドットゲームが
作れるくらいのものでしたが

 MSX2の機能が拡張されて15色から512色をパレットで選べました。
これでマーカーなどを自由な色に設定できるので便利ですね。
ドットの大きさがわかるように文字を配置して、
とりあえず赤緑青黄色の3階調の12色を表示してみました。
音楽のツールは同時再生は3チャンネルですが
最大で12パッドまで選べる設計です。
 FM音源の遅延の問題がクリアできそうにないのでPSG音源で
SOUND命令のレジスタ単位の設定でリズムを仮に作って
FM音源で再生できるようにしたいです。

PSGでリズム音をPLAYできるようにしてみました。
前回設定した色とパッドにする音の設定とリズムパターンを入れました。
MSXパソコンはPSGは3チャンネルで最大3和音までになります。
メロディパートが1とペースとリズムパートが2パートですが
SEが入る場合はミュートされてメロディパートのみの演奏になりますね。

GUIの基本的な表示はできたのでいろいろと試してみたいです。

さらにどんな感じにプログラムを作っていこうかと

いろいろと調べた結果、ベースにリズム加えたパターンが多いですね。

ここではリズムパターンを使って
例えばゲームミュージックのジャンルで代表的なタッタカ、タッタカというリズム
ドレミファソラシはCDEFGABで、ここではDのレの音になります。
PLAY"SM3000O3L8dd16d16"の4回の繰り返しで
A$="dd16d16":fori=1to3:p$=p$+a$:next:play "SM3000O3L8"+p$
のようにできるようにしたいですね。
L8は全音8分音符指定で部分的に16分音符に変えたい場合は
音のあとに数字をd16というふうに指定します。



こんなふうMSXBASICで書きますが何度も実行すると
Out of string spaceというエラーが出ます。
これはバッファが足りなくなるエラーでバッファをclearで初期化しますが、
FOR文で例えばfori=1to20とした場合にエラーが出るので;
バッファの量を数値指定してclear 1000と増やします。
テンポはPLAY"T180"というふうに書くとかなりノリが出ます^^;



プログラムにしたのでRUNしてみてください。



さらにFOR文で50にするとエラーが出ます。
このエラーは文字列が250を超えた場合に表示されます。
PRINT(?)でlenしてみると252になっています。
この場合はP$をP$(1)=P$:P$(2)=P$というふうに分割する必要がでてきます。
だいたい4小節ごとにプログラムを分ければいいと思います。
では


 

 

 

 

 

 

 

 

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