GIGAMIX DM-SYSTEM2
BGM演奏機能
updated: May 8, 1998

  1. 概要

  2. 対応するBGM形式

  3. DMシステム2からの利用方法
    1. BGMデータのロード
    2. BGMデータの演奏
    3. テンポの調節
    4. 移調
    5. 音量の調節
    6. 一時停止
    7. 演奏中止
    8. フェードアウト
    9. 音源間のバランス調節

    10. データの作成方法

      1. MGSDRV
      2. MuSICA
      3. FM-BOIS

    第1章 概要

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

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



    第2章 対応するBGM形式

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

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


    2.1 MGSDRV形式 (デフォルト設定)

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

     現在では作者のAin.氏に代わり、ギガミックスMGSDRVのサポートを担当しています。

     DMシステム2ではMGSDRVを標準でインストールしています。MGSDRV形式のデータはそのまま演奏できます。

    ※ DMシステム2版MGSDRVではカラオケ機能、MGSARCによる圧縮データに対応しません。

    2.2 MuMAKA(MuSICA)形式

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

     "MuMAKA"は"M.K Softが製作した"MuSICA"の上位互換ドライバです。OPLL、PSG、SCCの17音同時演奏が可能で、"MuSICA"には無いトランスポーズ機能等が追加されています。バグも結構ありましたが、そのエディタの快適さには定評が有ります。

     今やMSXマガジンは休刊してますし、TAKERUでの販売も終了した為、"MuSICA"の入手は非常に困難です。しかし最近では「勤労シリーズ」と言う新たなMuSICA互換BGMドライバが出回っており、それを用いてデータが作成できます。

     DMシステム2ではこのドライバを新たにインストールする必要があります。


    2.3 FM-BIOS形式

     MSX-MUSICに内蔵されているBGMの演奏ルーチンです。ただし上記のドライバはOPLL・PSG・SCCを駆使した音楽を演奏できることに対し、これはOPLLでの最低限の演奏しかできません。

     FM-BIOSの利点は処理の軽さです。他のBGMドライバは多くの機能を実現する為、割り込み処理に時間がかかりますが、FM-BIOSは最低限の演奏しかできないかわりに割り込み処理にはほとんど時間をかけません。とにもかくにも速度が欲しいソフトに最適です。

     徳間書店「MSX-FAN」誌の付録ディスクでもこのBGM形式が採用されました。

     DMシステム2ではこのドライバを新たにインストールする必要があります。


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

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

    3.1 BGMデータのロード

     まずはBGMデータをどこかのメモリ(RAM)へ配置しなければなりません。使用するBGMドライバのデータ形式によってロード命令が変わりますので注意してください。
      CALL LOAD ("ファイルネーム") ← MGSDRVの場合
      BLOAD "ファイルネーム" ← MuSICA、FM-BIOSの場合
      ex.) call load ("a.mgs",&h3000) ← 3000hへロード
      bload "a.bgm" ← BSAVE形式のBGMをロード
     BGMを配置するエリアはあらかじめCLEAR文で宣言しておく必要があります。
      ex.) clear 200,&hc000 ← c000h以降をBASICが使わない

    3.2 BGMデータの演奏

     RAMに配置したBGMデータの演奏を開始します。
      CALL BGMON (BGMの先頭アドレス)
     
    CALL LOAD 等で設定したアドレスをそのまま代入してください。BLOAD命令でデータを配置する場合は、データの先頭アドレスをあらかじめ把握しておく必要があります。
      ex.) call bgmon (&h3000) ← 3000hに配置したBGMデータを演奏
     設定したアドレスにBGMデータを確認できなかった場合、DMシステム2はエラーを返します。
    ※ BGMドライバによっては確認しない(できない)ものもあり、ヘタすりゃ暴走。

    3.3 テンポの調節

     BGMの演奏テンポを調節します。
      CALL BGMTMP (百分率)
     百分率で設定します。通常は100(%)です。この数を少なくすればテンポが遅くなり、多くすればテンポが早くなります。
      ex.) call bgmtmp (50) ← テンポを50%(2分の1)にする
      call bgmtmp (150) ← テンポを150%(1.5倍)にする
     テンポを遅くする分には一向に構いませんが(BGMとして聴くのは辛いですが)、極端にテンポを早めるとMSX自体のパワー不足により暴走することがあります。いいとこ2倍程度が限界です(MSX2時)。

    3.4 移調

     BGMを移調(トランスポーズ)します。
      CALL BGMTRS (移調幅)
     移調幅は-128〜127で、通常は0です。この数を少なくすればBGM全体が低い音へ移調され、多くすれば高い音へ移調されます。
      ex.) call bgmtrs (-1) ← 半音下げる
      call bgmtrs (1) ← 半音上げる
    ※ 移調機能の無いドライバでは無視されます。

    3.5 音量の調節

     BGMデータの音量を調節します。
      CALL BGMVOL (マスターボリューム)
     音量は0(最小)〜15(最大)で、OPLL・PSG・SCCの全てのBGM演奏パートの音量が調節できます。
      ex.) call bgmvol (15) ← 音量を最大にする
      call bgmvol (8) ← 音量を8(中間)にする
    ※ 音量調節機能の無いドライバでは無視されます。

    3.6 一時停止

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

      ex.) call bgmwait ← BGMのポーズ

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

    3.7 演奏中止

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

      ex.) call bgmoff ← BGMの演奏中止

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

    3.8 フェードアウト

     BGMの音量を徐々に下げます(フェードアウト)。
      CALL BGMOFF (時間)
     時間を1/60秒単位で設定すると、音量調節がバックグラウンド処理され、BASICの命令との「並列処理」ができます。音量が最小になった時点で演奏を中止(CALL BGMOFF)します。
      ex.) call bgmoff (30) ← 30/60秒ずつ音量を1下げる
    ※ フェードアウト中 CALL BGMVOL による音量変更は無視されます。しかし CALL BGMOFF による演奏中止は有効になります。
    ※ フェードインはありません。
    ※ 音量調節機能の無いドライバでは無視されます。

    3.9 音源間のバランス調節

    OPLL・PSG・SCCのそれぞれの音源の音量を調節します。
      CALL BGMVOL (マスターボリューム,OPLL,PSG,SCC)
    音量は-15(最小)〜15(最大)で、OPLL・PSG・SCCそれぞれの音源の音量が調節できます。

      ex.) call bgmvol (,3) ← OPLLチャンネルの音量を+3する
      call bgmvol (,,-2) ← PSGチャンネルの音量を-2する
    ※ バランス調節の通常は0なので、特にプラス方向へバランスを調節するとBGM形式・データによってはやや不快感をもたらす場合があります。ソフトエンベロープで本来音が停止するような微弱な音声がバランス調節により音量が下がりきれず、かえって目立ってしまうからです。こればっかりはどうしようもありません。

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


    第4章 データの作成方法

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

    4.1 MGSDRV

     テキストエディタでMMLを書き、"MGSC.COM"でコンパイルします。MGS3形式(MGS313)であればDMシステム2で演奏できます。

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


    4.2 MuMAKA (MuSICA)

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

     またはテキストエディタでMMLを書き、「勤労4号(フリーソフト)」でコンパイルします。


    4.3 FM-BIOS

     テキストエディタでMMLを描き、MCMP.COMでコンパイルします。たろう@似非職人工房さんによるFM-BIOS用BGM製作キットが用意されています。詳しくは「MML Compiler」のドキュメント(MCMP210F.DOC)をご覧ください。

    MML Compiler
    MCMP210F.PMA (8KB)
    [Back]
    Copyright (c) 1998 GIGAMIX, All rights reserved.