うにスキーのブロマガ

MSXマガジン標準サウンドドライバ『MuSICA』のご紹介

2019/04/03 17:39 投稿

  • タグ:
  • MSX
  • OPLL
  • MuSICA
  • Chiptune
2020/05/12
「音色エディタの「ディストーション」がキャリア/モジュレーター逆になっている」を追加



(´∀`(⊃*⊂)<ぶり大根!
九州民族の挨拶

嘘です。適当な事を言いました。ごめんなさい。

今回はMSXでDTMをする人向けの情報になります。

MuSICAの良さと問題と対処法について
他で書いて無さそうな事をまとめてみようと思いました。

なんだかんだでメジャーなようでマイナーなMuSICA先生。


■MuSICA とは

ラムラーナでもサウンドモードアプリとして登場するMuSICAのご紹介です。



MuSICAはMSX用の音源ドライバMML音色データ統合環境です。
PSG、FM音源(OPLL)に加えSCCも使えるのが当時は衝撃でした。

公式にはスナッチャー付属のSCCサウンドカートリッジにのみ対応とのことでしたが、
SCC搭載ゲームならなんでも使える方法がありました。(後でご紹介)



再生しながらMMLや音色を編集し、F5キーでワンタッチ再生もできる。

自作サンプル:


■Wikipediaの説明

https://ja.wikipedia.org/wiki/MuSICA_(%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2)

記事の内容少なすぎない?

Wikipediaより引用
MuSICAミュージカとはアスキー社が発売していた、「MSXディスク通信'90年10月号」ソフトベンダーTAKERU販売に収録されている、MSX用のデスクトップミュージックソフトウェアである。
MuSICA 1.02がMSXマガジン永久保存版にも入っていますので、手に入るようでしたらお試しください。特集ページとしてMuSICA仕様書なんかも入ってました。
初出はMSXマガジン標準ミュージックドライバーとして『MSXディスク通信創刊号'90年10月号』に収録されたものになります。

MSXマガジン'90年10月号にはMuSICA特集記事が組まれ、コナミMSXサウンドチームによるSCCの解説なども掲載されていました。

『MSXディスク通信創刊号』には、サンプル曲としてRPGツクールの元となった『RPGコンストラクションツール Dante』のBGMデータ3曲と『吉田コンチェルン』のBGMアレンジデータ3曲が収録されていました。

『Dante』は同年2月発売(MuSICA発表の8か月前)でしたが内部的にはMuSICAのプロトタイプだったのでしょうか

また、『Dante』の続編である『Dante2』にはMuSICA ver1.02が収録されており、MuSICAで作成した自作BGMを使用することが出来ました。
ただしDante2内で再生するときはSCCは鳴りません。

※ 小ネタ『Dante』サンプルゲーム『BADOMA 血塗られた伝説』のタイトル画面にある遺跡は、ラムラーナの『割門』の元ネタだと思われます。 プレイ動画→ sm28508852

ラムラーナで見た。


個人的にDante1の曲がシブかっこよくて好きです。

「MSX BASICのPLAY文がほんの少し便利になってSCCに対応した物」ではありますが、
エディタで編集しながらリアルタイムで演奏できるのが特徴です。
そのあたりもMSX BASICのPLAY文の拡張に近い感覚ですね。

・SCC対応要SCCサウンドカートリッジ
・最低限必要十分な機能
・統合環境でMMLも音色も編集しながら再生できる
・BASICからBGMとして再生することもできる

夢が広がりまくりますね。手軽な割に機能が十分というのが素晴らしい。
早速色んなデータを打ち込みまくったものでした。

ただし、最終バージョン1.02でも割とバグってるので途中で投げ出した人も多そうです。
一部致命的なバグもあります。現象や対処法などを後述します

豆知識: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よりもMML機能が優れたものがあっても、
”テキスト編集・保存→コンパイル→演奏”という形でした。
つまり何度もディスクアクセスを挟みます

現在編集中のMMLをワンボタンで演奏したり、
演奏しながら音色データを弄ったりなどは出来ませんでした。

MGSDRVが過去にはBASIC環境に対応していましたが、機能拡張に伴いDOSプロンプトからの実行になりました


MuSICAのバグ一覧

自分が困ったバグのリスト

【重要メモリ破壊】長時間作業していると内部テキストデータが部分的にメモリ破壊されることがある。
条件何周もループ再生していると発生しやすい。詳細な条件は不明。
回避方法も不明。時間よりもループ回数の影響の方が大きい印象。

現象
画面上の見た目ではわからないが内部で保持している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は良いものではあるのですが、
不思議現象のせいでおすすめしかねるのがネックですね。



良い代替品があるのであれば移行したい所ですが…。
自分は今のところ代替品を見つけられていません。

手軽に音を鳴らすのには良い環境だと思いますので、
手に入るようでしたらお試しください。

ちなみに、MMLで遊びたいだけであればTSS/TSSCPというのがあります。

コメント

コメントはまだありません
コメントを書き込むにはログインしてください。

いまブロマガで人気の記事