2020/05/12 「音色エディタの「ディストーション」がキャリア/モジュレーター逆になっている」を追加
2022/09/20 「MuSICAの仕様書」「MuSICAのライセンスについて」を追加
(´∀`(⊃*⊂)<ぶり大根!
九州民族の挨拶
嘘です。適当な事を言いました。ごめんなさい。
今回はMSXでDTMをする人向けの情報になります。
MuSICAの良さと問題と対処法について
他で書いて無さそうな事をまとめてみようと思いました。
メジャーなようでマイナーなMuSICA先生。
音源作成ツール&ドライバー MuSICA
ラムラーナでもサウンドモードアプリとして登場するMuSICAのご紹介です。
MuSICAはMSX用の音源ドライバMML音色データ統合環境です。
PSG、FM音源(OPLL)に加えSCCも使えるのが当時は衝撃でした。
初出は1990年10月号のMSXマガジンで、同月に合わせてTAKERU発売されたMSXディスク通信創刊号に収録されています。
公式にはスナッチャー付属のSCCサウンドカートリッジにのみ対応とのことでしたが、
SCC搭載ゲームならなんでも使える方法がありました。(後でご紹介)
再生しながらMMLや音色を編集し、F5キーでワンタッチ再生もできる。
自作サンプル:
「MSX BASICのPLAY文がほんの少し便利になってSCCに対応した物」ではありますが、
エディタで編集しながらリアルタイムで演奏できるのが特徴です。
そのあたりもMSX BASICのPLAY文の拡張に近い感覚ですね。
・SCC対応要SCCサウンドカートリッジ
・最低限必要十分な機能
・統合環境でMMLも音色も編集しながら再生できる
・BASICからBGMとして再生することもできる
夢が広がりまくりますね。手軽な割に機能が十分というのが素晴らしい。
早速色んなデータを打ち込みまくったものでした。
ただし、最終バージョン1.02でも割とバグってるので途中で投げ出した人も多そうです。
一部致命的なバグもあります。現象や対処法などは後述します。
ちなみに、他の音楽ドライバは、MuSICAよりもMML機能が優れていても、
”テキスト編集・保存→コンパイル→演奏”という形でした。
つまり何度もディスクアクセスを挟みます。
現在編集中のMMLをワンボタンで演奏したり、
演奏しながら音色データを弄ったりなどは出来ませんでした。
MGSDRVが過去にはBASIC環境に対応していましたが、機能拡張に伴いDOSプロンプトからの実行になりました。
※ 追記
現在、MGSDRVには「MSXPLAY」というWebブラウザでデータのMML編集~再生~データ出力までできる環境があります。とても便利です。
入手方法
初出はMSXマガジン標準ミュージックドライバーとして『MSXディスク通信創刊号'90年10月号』に収録されたものになります。
MSXマガジン'90年10月号にはMuSICA特集記事が組まれ、コナミMSXサウンドチームによるSCCの解説なども掲載されていました。
『Dante』の続編である『Dante2』にはMuSICA ver1.02が収録されており、MuSICAで作成した自作BGMを使用することが出来ました。
ただしDante2内で再生するときはSCCは鳴りません。
Dante2の「OPTION」から
「MuSICAシステムディスクのさくせい」で
MuSICA 1.02のシステムディスクが作成できます。
MSXマガジン永久保存版1はMuSICA特集ページがあり、9音リズムモードなども紹介されています。SCC開発インタビューも載っています。
『MSXディスク通信創刊号』には、サンプル曲としてRPGツクールの元となった『RPGコンストラクションツール Dante』のBGMデータ3曲と『吉田コンチェルン』のBGMアレンジデータ3曲が収録されていました。
※ 小ネタ『Dante』サンプルゲーム『BADOMA 血塗られた伝説』のタイトル画面にある遺跡は、ラムラーナの『割門』の元ネタだと思われます。 プレイ動画→ sm28508852
ラムラーナで見た。
個人的にDante1の曲がシブかっこよくて好きです。
SCCカートリッジの利用について
豆知識:MuSICAでSCC搭載ゲームカートリッジを無理やり使用する。
MuSICAはSCCサウンドカートリッジがないとSCCを認識しませんが、
SCC搭載のゲームを無理やり慣らす方法もありました。
F-1スピリット、グラディウス、パロディウス、激突ペナントレース、エルギーザの封印など
SCCを搭載したゲームカートリッジを後刺しBASICが起動した状態でカートリッジを差し込みして、SCCカートリッジのスロット番号を直接指定します。
念のためMuSICA 1.02推奨です。
改造版"MUSICA.BAS"
10 SCREEN0,,1:WIDTH40:COLOR15,0,0:CLEAR500,&HA500
20 PRINT"SCC DIRECT MODE(1-2=SCC SLOT / 0=NO)?";
30 A$=INPUT$(1):IFA$<"/"ANDA$>"2"THEN30
40 PRINTA$:S=VAL(A$)
50 DEFUSR=&H156:A=USR(0):SCREEN7:SETPAGE,1:BLOAD"MUSICED.BIN",S
60 A=&HC800:FORI=0TO&H45:READA$:POKEA+I,VAL("&H"+A$):NEXT
70 IFS=1ORS=2THENPOKE&HC841,S ELSE FORI=0TO10:POKE&HC830+I,0:NEXT
80 DEFUSR=&HC800:I=USR(0)
90 ' Machine Language
100 DATA 31,00,C8,21,00,40,3A,42,F3,CD,24,00,21,00,00,11
110 DATA 00,40,01,00,2A,CD,59,00,21,00,2a,11,00,90,01,B8
120 DATA 10,CD,59,00,21,b8,3a,11,00,CE,01,00,10,CD,59,00
130 DATA 11,ef,cf,01,06,00,21,40,c8,ed,b0,C3,00,40,00,00
140 DATA 3e,sl,32,34,ce,00
※注意点:後刺しは電源を付けた状態で無理やり差し込むので、暴走や本体へのダメージの危険があります。
ポーズを掛けた状態だと暴走しにくいのですが、それでも危険です。
カートリッジの基盤を弄って差し込み終わるまで認識しないスイッチをつけたりする人もいたと思います。
MuSICAのバグ一覧
自分が困ったバグのリスト
■【重要メモリ破壊】長時間作業していると内部テキストデータが部分的にメモリ破壊されることがある。
条件:何周もループ再生していると発生しやすい。詳細な条件は不明。
回避方法も不明。時間よりもループ回数の影響の方が大きい印象。
※ 他の方は経験がないそうです。自分のMUSICED.BINはワークエリアと思われる00Hで埋まった部分を削り、バイナリサイズを縮め改造した独自ローダーで実行しているため、それが原因の可能性もあります。(0初期化を期待しているワークがあって、0初期してなくて問題がでるとか?)
現象:画面上の見た目ではわからないが内部で保持しているMMLテキストデータ領域が一部おかしくなっている。
この状態でF5で再生するとエラーが起きてわかることもある。分からないこともある
この状態でセーブするとデータが壊れる。
MMLデータ、VOICEデータで発生。
回避方法:熱中して長時間作業していると発生しやすいのでこまめなバックアップをする。
MMLデータが壊れた時は異常なアスキーコードを飛ばしながら読み込んでテキストデータとして異常がないようにしてから消えた部分を手作業で修復します。
ちなみにMSDファイルはテキスト形式ですが最後にコントロールコードの27(EOF)が必要です。
ESC→A→Cで一度コピーした内容はCTRL+Pでファイル間を越えてペーストできるので、バックアップがあるのなら、そこからコピーペーストすると楽かもしれません。
■【制限音色設定】PSG音色のエンベロープ値に奇数を指定するとおかしい。
条件:仕様。
現象:アタック・ディケイ・サスティン・リリースに奇数を指定すると音量が滑らかに変化しない。
偶数に比べて2倍ぐらい長い。
変化間隔が2フレーム置きになっている
回避方法:奇数を使わない。
音量をゆっくり変化させたい場合は意図的に使用するのもアリ。
■【音量無視リズム初期化】冒頭で指定したハイハットの音量設定が無視される。
条件:必ず。
現象:MML冒頭のハイハットの音量指定が無視される。初回の休符か発音の前に指定したハイハットの音量が無視される。Vコマンド、VHコマンド、Yコマンドともに。
回避方法:何らかの発声か休符を一度実行した後にハイハットの音量を指定すると正常になります。
全てのチャンネルの冒頭にt225r64などを入れてからボリューム指定などをする。のが簡単かもしれません。
気になる人は気になるけど1/60秒の休符なのでループ時にすこしごまかせる
強制リズムモード固有の問題(MuSICA以外でも有り)
■【異音発生強制リズムモード】強制リズムモードの初回発音で異音が発生する
条件:仕様。強制リズムモード使用時に発生。
OPLL仕様外の使い方なのでBASICでもなんでも発生。
現象:メロディモード9音和音モードで強制リズムモードを使用してリズム音源を鳴らす場合に、全てのリズム音は最初の発音時に音色がおかしくなります。
回避方法:これも冒頭に休符を挟むことで回避できますので、”y14,32 t255r64 …以下本来のMML”とすることで回避可能です。
※Y12,32OPLLレジスタ14に32を書き込むコマンド→OPLLをリズムモードに変更する。これを利用して、MML上メロディモードでOPLLリズム音を発声させる。通称強制リズムモード
ただし、ハイハットに関してはこれでもダメで最初の発声時に必ず音がおかしくなります。
強制リズムモードでのハイハットについては、
・諦める
・使わない
・最初の発音時に音量0で鳴らすMML冒頭はFM8以外が"y14,32t255r32"、FM8が"t225r64v0@12r64"もしくは"t225r64y55,255c64"など
でしょうか。
音色エディタのバグ
■音色エディタの「ディストーション」がキャリア/モジュレーター逆になっている
勤労4号 ver2.50(MuSICA互換ドライバー)の説明より
http://sakuramail.net/fswold/music.html
KINROU4.TXT (24行目)
------------
☆重要事項!
------------誰にも言われなかったので、今まで気付かなかったのですが、MuSICA
純正エディターで設定したFM音源音色のディストーションは、キャリアーに
設定されたものはモジュレイターに、モジュレイターに設定されたものはキャ
リアーに設定されるというバグがあります。
BTO・MuSICA研究所の対処としましては、キャリアーに設定された
ディストーションはちゃんとキャリアーに、モジュレイターに設定されたもの
はモジュレイターに設定することにいたしました。
そこの点が純正品とは異なりますので、ご了承ください。
その他の仕様やバグと対応方法
■廣江さんのMuSICA講座
http://www002.upp.so-net.ne.jp/ahiroe/msx/mlecture.html
横80文字モードちなみにESC→DELでも行けます
ファイル間のカットペースト
PSGドラムのノイズ切り替え
テンポずれ対策
MSDファイルの注意点と修復方法
などなど
MuSICAは良いものではあるのですが、
不思議現象のせいでおすすめしかねるのがネックですね。
手軽に音を鳴らすのには良い環境だと思いますので、
手に入るようでしたらお試しください。
良い代替品があるのであれば移行したい所ですが、今の所、エディタの使い勝手を含めた代替品は見つけられていません。
候補としてはMGSDRVのブラウザ実行環境「MSXPLAY」
https://msxplay.com/
もあります。
こちらは音色などもMMLで設定しますので視覚的には難しいところもありますが、ブラウザ上で素早く編集、再生、出力が出来るのでお勧めかもしれません。
ゲーム用途ではなく、データの試作や音楽再生専用であれば非常に強力です。
MSXにこだわらず、MMLで遊びたいだけであれば
MUCOM88 Windows( https://onitama.tv/mucom88/ )
などがエディット環境もそろっていて超強力かと思います。
MuSICAドライバーのライセンスについて
MSXマガジン1990年10月号の時点では、
「なお、MuSICA本体、またはそれを使ったソフトウェアをMSXマガジン以外の雑誌に投稿したり、販売することは禁止されているので、注意してください。」
と書かれています。
MSXマガジン永久保存版の時点では、
「自作ゲームに組み込める音楽を作成することも可能だ!」
とあります。
ライセンスに関係ありそうな部分に関してはそれ以外の記述が無いので、
- データの利用:
作成したデータ自体の禁止事項はなく、MSXマガジン永久保存版の時点では許可ととれる記述。 - ドライバの利用:
無償の個人利用であれば禁止が明言されていないが怪しい。
→互換ドライバ(勤労4号・5号、DMシステム2)を利用するのが安全。
となるかと思います。
参考:現行ツクールシリーズの再配布ライセンス
現在のツクールシリーズはツクールのユーザー登録をしたユーザーはツクールで作成した再配布バイナリを配布可能。
(※ツクール素材やサンプルについては配布禁止のものもある)
残念ながらツクールWebではMuSICAも、吉田工務店も、Danteも、Dante2も、ダンジョン万次郎も、すご八も、ぞわぞわーるども、アドベンチャーツクールも、吉田建設も吉田コンツェルンも、対応していない様子です。
他には、98用のツクール系でもライセンスの不透明感はMSXマガジン製のコンストラクションツールシリーズと似たような状況ですね。
いまいち、利用可能範囲がハッキリしません。
この辺もMuSICAが流行しなかった理由でしょうね~……
互換ドライバー
というわけで、演奏は勤労5号かDMシステム2推奨です。
作成はMuSICAか勤労4号で。
もしROMの自作ゲームに組み込むのであれば、現状だと自分で互換ドライバーを作成するしかないかもしれません。
どなたかROMで利用可能な条件や方法をご存じでしょうか?
データ仕様書
ドライバ呼び出し等の情報はMSXマガジン1990年10月号やMSXマガジン永久保存版の誌面に掲載されているのですが、データの仕様書はMSXディスク通信創刊号のディスクにのみ収録されているようです。
ただ、これが独自コードの専用テキストデータで、一般的なテキストビューアでは表示できないため、MSX上の重い漢字表示で、かつ、1行ずつスペースを何度も押さなくてはいけません。(キーリピートに非対応なので押しっぱなしは不可)
苦行すぎますね。
むかし、テキストに書き起こしたものが見つかったので、別記事で紹介しておきます。
互換ドライバやデータコンバータを作りたい場合に参考になるかもしれません。