Gigamix DM-SYSTEM2

BGM演奏機能

第1章 概要

 MSX-BASIC上からBGM(Back Ground Music)を演奏します。

 BGMと唱っているだけあり、1/60秒のタイマー割り込みでBASICの処理と平行してBGMを自動的に演奏します。

※SCCはコナミ株式会社のウェーヴ音源ICです。

第2章 対応するBGM形式

 BGMを演奏する為には、「BGMドライバ」と呼ばれる演奏プログラムと、「BGMデータ」と呼ばれる演奏データの2つが必要です。ドライバとデータは対になっていて、このバランスが崩れるとBGMは演奏できません。

 2020年12月現在、DMシステム2で対応しているBGM形式は以下の通りです。

MGSDRV(デフォルト設定)

 Ain.氏の提唱した音楽ドライバで、日本のMSX系パソコン通信で有名です。OPLL・PSG・SCCの計17音同時発声が可能で、強力なループ機能やカラオケ機能などがウリです。ゲームミュージックから歌謡曲まで、豊富なジャンル(のデータ)がMSX系ネットワークで出まわっています。

 DMシステム2ではMGSDRVを標準でインストールしています。MGSDRV形式の楽曲データをメモリに配置するだけでそのまま再生できます。

 現在では作者のAin.氏に代わり、当クラブがMGSDRVのサポートを担当しています。→MGSDRVのページ https://www.gigamix.jp/mgsdrv/

※DMシステム2のMGSDRVは簡略化の為、「圧縮形式(MGSARC)」と「カラオケ機能(MGSELの歌詞機能)」はサポートしません。また、16KBを超えるBGMデータは再生できません。

MuMAKA(MuSICA互換)

 「MSXマガジン」(アスキー刊)で提唱された音楽ドライバです。MuSICAは「Dante2」「ディスク通信」等、MSXマガジンがリリースした多くのソフトウェアで活用されていました。エディタの快適さには定評が有ります。

 「MuMAKA」は M.K Softが製作した MuSICA の上位互換ドライバです。OPLL、PSG、SCCの17音同時演奏が可能で、MuSICAには無いトランスポーズ等の新機能が追加されています。

 MuSICA本体の入手方法ですが、「MSXマガジン」は既に休刊、ソフトベンダーTAKERUでの販売は終了、「MSXマガジン永久保存版」も入手困難なため、2021年現在ではMuSICA本体の入手は非常に困難です。しかし「勤労シリーズ」と言うMuSICA互換BGMドライバが出回っており、それを用いてデータが作成できます。

 DMシステム2ではこのドライバを新たにインストールすることで、楽曲データを再生できます。

FM-BIOS(OPLDRV)

 MSXのFM音源機能「MSX-MUSIC」に内蔵されているBGMの演奏ルーチンです。「MSX・FAN」(徳間書店インターメディア刊)の付録ディスクでこのBGM形式が採用されていました。

 FM-BIOSの利点は「処理の軽さ」です。OPLLによる最低限の演奏しかできないかわりに割り込み処理にはほとんど時間をかけません。とにもかくにも速度が欲しいアクション性の高いソフトに最適です。

 DMシステム2ではこのドライバを新たにインストールすることで、楽曲データを再生できます。

※このドライバはPSG音源・SCC音源の演奏に対応していません。

その他

 ユーザー自身がDMシステム2対応のBGMドライバを差し替えたり新たに開発することも可能です。→ BGMドライバ

第3章 DMシステム2からの使用方法

 BGMドライバにMGSDRV以外を使用している場合でも、プログラムの記述はすべてのドライバにおいて共通します。

BGMデータのロード

 まずはBGMデータをどこかのメモリ(RAM)へ配置しなければなりません。使用するBGMドライバのデータ形式によって方法が変わりますので注意してください。

 BGMを配置するメモリはあらかじめCLEAR文で宣言しておく必要があります。

CLEAR 200,&HC000  ← C000h以降をBASICが使用しない

MGSDRVの場合(BSAVEヘッダが付かないデータファイルの場合)

CALL LOAD("ファイルネーム",配置アドレス)
ex.) CALL LOAD("SAMPLE.MGS",&HC000)  ← C000hへ配置

MuSICA、FM-BIOSの場合(BSAVEヘッダが付くデータファイルの場合)

BLOAD "ファイルネーム"
ex.) BLOAD "SAMPLE.BGM"  ← BSAVEヘッダが示すアドレスへ配置
ex.) CALL LOAD("SAMPLE.BGM",&HC000,7)  ← BSAVEヘッダ(先頭7バイト)を除外したうえでC000hへ配置

BGMデータの演奏

 RAMに配置したBGMデータの演奏を開始します。

CALL BGMON(BGMの先頭アドレス)
ex.) CALL BGMON(&H3000)  ← 3000hに配置したBGMデータを演奏

 CALL LOAD 等で設定したアドレスをそのまま代入してください。BLOAD命令でデータを配置する場合は、データの先頭アドレスをあらかじめ把握しておく必要があります。

 設定したアドレスにBGMデータを確認できなかった場合、DMシステム2はエラーを返します。

※BGMドライバによっては確認しない(できない)場合があります。最悪の場合暴走・フリーズの危険性もありますので、予め先頭アドレスは把握しておくことをおすすめします。

テンポの調節

 BGMの演奏テンポを調節します。百分率で設定します。通常は100(%)です。この数を少なくすればテンポが遅くなり、多くすればテンポが早くなります。

CALL BGMTMP(百分率)
ex.) CALL BGMTMP(50)  ← テンポを50%(2分の1)にする
ex.) CALL BGMTMP(150)  ← テンポを150%(1.5倍)にする

 テンポを遅くする分には一向に構いませんが(BGMとして聴くのは辛いですが)、極端にテンポを早めるとMSX自体のパワー不足により暴走することがあります。いいとこ2倍程度が限界です(MSX2時)0。

移調

 BGMを移調(トランスポーズ)します。移調幅は-128~127で、通常は0です。この数を少なくすればBGM全体が低い音へ移調され、多くすれば高い音へ移調されます。

CALL BGMTRS(移調幅)
ex.) CALL BGMTRS(-1)  ← 半音下げる
ex.) CALL BGMTRS(1)  ← 半音上げる

※移調機能の無いドライバでは無視されます。

音量の調節

 BGMデータの音量を調節します。音量は0(最小)~15(最大)で、OPLL・PSG・SCCの全てのBGM演奏パートの音量が調節できます。

CALL BGMVOL(マスターボリューム)
ex.) CALL BGMVOL(15)  ← 音量を最大にする
ex.) CALL BGMVOL(8)  ← 音量を8(中間)にする

※音量調節機能の無いドライバでは無視されます。

一時停止

 BGMの演奏を一時的に停止(ポーズ)します。

CALL BGMWAIT

 一時停止したBGMを戻すのも、同じく CALL BGMWAIT を使用します。

演奏中止

 BGMの演奏を完全に中止します。

CALL BGMOFF

※BGMの演奏が行われていない場合は無視されます。

フェードアウト

 BGMの音量を徐々に下げます(フェードアウト)。時間を1/60秒単位で設定すると、音量調節がバックグラウンド処理され、BASICの命令との「並列処理」ができます。音量が最小になった時点で演奏を中止(CALL BGMOFF)します。

CALL BGMOFF(時間)
ex.) CALL BGMOFF(30)  ← 30/60秒ずつ音量を1下げる

※フェードアウト中 CALL BGMVOL による音量変更は無視されます。しかし CALL BGMOFF による演奏中止は有効になります。
※フェードインはありません。
※音量調節機能の無いドライバでは無視されます。

音源間のバランス調節

 OPLL・PSG・SCCのそれぞれの音源の音量を調節します。音量は -15(最小)~15(最大)で、OPLL・PSG・SCCそれぞれの音源の音量が調節できます。

CALL BGMVOL(マスターボリューム,OPLL,PSG,SCC) ※マスターボリュームは省略可能です
ex.) CALL BGMVOL(,3)  ← OPLL音源の音量を +3 する
ex.) CALL BGMVOL(,,-2)  ← PSG音源の音量を -2 する

※バランス調節の通常は0なので、特にプラス方向へバランスを調節するとBGM形式・データによってはやや不快感をもたらす場合があります。ソフトエンベロープで本来音が停止するような微弱な音声がバランス調節により音量が下がりきれず、かえって目立ってしまうからです。こればっかりはどうしようもありません。
※音量調節機能の無いドライバでは無視されます。


簡易BGMプレイヤー ver.2(MGSDRV・MuSICA・FM-BIOS対応)
Filename指定で「B:」のように2文字を入力すると指定のドライブに切り替えます

Download BGMON.LZH(50KB) | ZIP(51KB) | DSK(720KB)
Run BGMON.DSK on WebMSX

第4章 データの作成方法

 DMシステム2で使用するBGMデータは事前に各種ツールで作成しておく必要があります。この章ではそれぞれのBGM形式の作成法を紹介します。

MGSDRV

 MSX実機・MSXエミュレータで作る方法と、PC・スマートフォン(Webブラウザ)で作る方法があります。詳しくは MGSDRVのページをご覧ください。→ https://www.gigamix.jp/mgsdrv/

MuMAKA(MuSICA)

 アスキーの「MuSICA」エディタで作成します。(Dante2に付属)

 または、テキストエディタでMMLを書き、「勤労4号」でコンパイルし、「勤労5号」で再生します。勤労シリーズのダウンロードは「FSW倉庫」をご覧ください。 → http://sakuramail.net/fswold/music.html

FM-BIOS(OPLDRV)

 テキストエディタでMMLを描き、MCMP210F.COMでコンパイルします。

 たろうさん制作のFM-BIOS用BGM製作キットが用意されています。詳しくは「MML Compiler」のドキュメント(MCMP210F.DOC)をご覧ください。


(MCMP210F によるMMLのコンパイルと PLAY0 によるBGM再生)
Download MCMP210F.PMA(9KB) | LZH(9KB) | ZIP(10KB)

 または、むらかたとうじさん制作の「MIDI to OPLDRV(FM-BIOS) Converter」でMID形式データからFM-BIOS形式へ変換します。詳しくはこちら → https://mikusx.hatenablog.com/entry/2018/11/28/203627

[Back]トップページへ