MUAP98/iv ========= ### はじめに このPDF版マニュアルは、当時冊子で頒布されていたマニュアルの原稿をもとに、一部修 正を加えた後に加工したものです。 最初はテキストファイルだった MUAP98 のマニュアルですが、やがて機能の増加により記 述内容も増加していきました。当時はデータの増加はダウンロードに時間がかかることに 直結し、電話代に直接響くこととなりました。また、これを印刷して使うとなると印刷に かかるコストも時間も大変なものでしたので、これを製本して頒布しておりました。 あれから 10 年ほどが経ち、個人の家でも高速回線を常時接続することが珍しくない時代に なりました。マニュアルなども通信回線経由 PDF で配ることができる時代です。そこで、 PDF 版マニュアルを作ることになりました。当初、1 ページずつスキャナで取り込むこと を検討しておりましたが、ほとんどの部分を原稿ファイルから直接 PDF に変換することが できました。このため、予定より少ない手間でコンパクトに作成することができました。 当時を懐かしんでご利用頂ければ幸いです。 ### ご注意 - このソフトウェア及びマニュアルの著作権は、すべてぱっくんソフトが所有します。 - ソフトウェアのドキュメントおよびマニュアルには、今の時代に合わない内容、表現 なども残されていますが、これはなるべく冊子版作成当時の雰囲気を残したためです。 あらかじめご了承ください。 - このソフトウェアの使用条件は、同梱されている COPYING.TXT ファイルに記載さ れています。 - このマニュアルは、修正BSDライセンスの範囲で自由に複製することができます。詳 しくは巻末のCOPYINGをご覧ください。 - このソフトウェアおよびマニュアルを運用した結果およびその影響については、一切 責任を負いかねますのでご了承ください。 - このマニュアルに掲載されている会社名、製品名は、それぞれ各社の商標または登録 商標です。 - ソフトウェア及びマニュアルについては、予告なく改良することがあります。 ### みゅあっぷ98/ivリファレンスマ (index of contents) ## 第一章●はじめに ##### 序文 FM音源やSSG音源を簡単に使うためにサポートされている言語に、MML (Music Macro Language)があります。MMLは、パソコンではBASICなどで演奏でき るようになっていましたが、実際に譜面を変換して入力するのはなかなか面倒 でした。みゅあっぷ98/iv は、大幅に機能拡張されたMML、専用のFEP・スク リーンエディタ、ソースレベルデバッガなどを備え、いわば作曲・編曲のため の統合環境とでも呼べるものです。 特にMML入力を効率アップするMML-FEP は、慣れればマウスを利用した市 販ソフトよりずっと速く入力できるようになります。また、従来の音源ドライ バの常識を打ち破るようなソースレベルデバッガは最高のデバッグ環境を提供 します。 ##### 対応音源について ###### FM x 6, PCM x 7, SSG x 3, RHYTHM - YM2608 + 86B-PCM * PC-9801-86 * PC-9801-73 (別途DSPの初期化が必要) * PC-9821初代, Ap, As, Ae, Af, Ce, Ap2, As2, Cs2, Ce2, An, Ap3, As3 - YM2608 + WSS-PCM * PC-9821Cf, Cx, Cb - YMF288 + WSS-PCM * SRN-F, WSN-F (フロッピーディスクへのアクセス不可) ###### PCM x 7 - Windows Sound System (WSS) PCM * PC-9821 Np * PC-9821Xt, Xa, Xn, Xp, Xs Note: FM音源タイマが存在しないため別途FM音源ボードが必要です。 ###### FM x 6, PCM x 1, SSG x 3, RHYTHM - YM2608 + ADPCM * スピークボード (YM2608) ###### FM x 12, PCM x 1, SSG x 3, RHYTHM - YM2608 + ADPCM + YM3438 (YM2608) * 音美ちゃん * スピークボード2枚使用 ###### FM x 3, SSG x 3 - YM2203 * PC-9801-26 (コンパチ) (1) いずれもSSGを使用したPCMが3チャネル使用可能。 (2) PCMを使用の場合はEMSが45ページ以上と486-16MHz程度以上のCPU処理速度が必要(スピークボードを除く)。 (3) DSP機能を使用の場合はPC-9801-86相当かWSS-PCMが必要。 (4) FM, SSG, RHYTHMチャネルをPCM として使えばPCM 17ch になります。 ##### 対応機種 NEC PC-9801VX 以降のシリーズ(PC-98LT, N, HA, XL2, PC-H98(S)には対応し ておりません)。 EPSON PC-286, 386 全シリーズ(初代,U,Vでは-Cオプション をつけて常駐する必要あり)。ハイレゾモードでは使用できません。 PC-9801-86, 73 をご使用の場合は、高速なEMSマッピングなどの要求から最低 80386SX-16MHz 程度以上のCPU が必要です。EMS メモリも高速なものをご使 用下さい。また、FIFO バッファを介している以上若干の発音遅れや乱れが生 じる場合があります。 PC-9821Cb などのWSS-PCM音源は別の割り込みとDMAを使用しています。 また、DSP機能を使用される場合は更に若干のCPU処理速度を必要とします。 SSG を用いたPCM (以下SSGPCM) を使用する場合はCPU の処理能力をかな り必要とするため、最低限80286搭載機種で動かして下さい。またSSGPCMと 拡張PCMを共存するとSSGPCMの音質が悪化します。 MS-DOSのバージョンは3.10, 3.30x, 5.00A で動作保証できます。Windowsの DOS窓、DOSシェル上での動作は保証対象外です。 ##### 添付ファイル確認 みゅあっぷ98/iv添付のフロッピーの中には以下のファイルが入っています (各ファイルの解説は第七章を参照して下さい)。 ``` / -+- IV (みゅあっぷ98/iv) | +------ muap.bat (起動用バッチファイル) | +------ muap98.com (常駐・初期化部分) | +------ muap98iv.txt (最新版解説、必ずお読み下さい) (note) | +------ muap98.hlp (オンラインヘルプのファイル) | +------ cal.com (メニュー呼び出しファイル) | +------ custom.mua (カスタマイズファイル) (note) | +------ tones.dta (FM音源音色データ) | +------ tones.hlp (FM音源名称ファイル) | +------ tonesx.dta (FM音源拡張音色データ) | +------ tonesx.hlp (FM音源拡張名称ファイル) | +------ nmivram.brg (背景グラフィックデータ) | +------ getvr.com (BRGファイル生成ツール) (note) | | | +------ NAX (フリーウェア演奏ドライバ) | +-- nax.com (演奏ドライバ部分) (note) | +-- nax.txt (解説) (note) | +- PCM (ADPCM, SSGPCM用データ) | +------ pcm.dta (混合されたPCM データ) | +------ pcm.tbl (配置テーブル) | +------ pcm.hlp (音色名称ヘルプファイル) | +------ makepcm.dta (pcm.dta生成用ファイル) (note) | +------ ssgpcm.dat (NAX用SSGPCMサンプル) (note) | +------ ssgpcm.tbl (配置テーブル) (note) | +------ makessg.dta (ssgpcm.dta 生成用ファイル) (note) | | | +------ TOOL (PCM 編集ツール) | | +--- makessg.com (ssgpcm.*生成ツール) (note) | | +--- makessg.txt (解説文) (note) | | +--- gsp.com (録音再生ツール) (note) | | +--- pmix.com (PCM の混合ツール) (note) | | +--- makepcm.com (pcm.dta生成ツール) (note) | | +--- pcm.txt (PCM に関する解説) (note) | | +--- pmix.txt (PCM 混合の解説) (note) | | +--- makepcm.txt (pcm.dta生成の解説) (note) | | +--- pcut.com (PCM カッター) (note) | | | +------ USRDEF (ユーザ登録用個別PCM データ) | +--- pcm.exe (実行すると解凍) (note) | +- MUSIC (サンプルデータのディレクトリ:解説省略) | +- PLAY (演奏データ格納用:何も入ってません) ``` Note: マークのついたファイルはなくても動作します。 ##### 常駐、メニュー呼び出し方法 1. MS-DOSバージョン3.1/3.3/5.0 を起動します。 2. カレントドライブ(プロンプトに表示されているドライブ名のことです) に添付のフロッピーを挿入します。念のためプロテクトシールを貼ってお いて下さい。 3. インストールを開始する場合は「INST」と入力して下さい。あとはメッセ ージに従って答えるだけです。インストールなしにちょっと実行する場合は 「MUAP」と入力して下さい。 4. 常駐メッセージが現れ、みゅあっぷ98/iv が常駐します。そしてメニュー 画面が表示されます。もしここでエラーメッセージが表示されましたら、 大変不幸な「コマンドラインオプション手設定」を行なう必要がありま す。それについては第7章を参照して下さい。 5. LoadSource を実行して、適当なファイル名の所でリターンキーを押し、そ の後 Assemble を実行します。エラーが出なければ PlayStart で演奏が 開始されます。 6. Quit でコマンドラインに戻ります。再びメニューを表示する場合は、 `CAL.COM` を実行して下さい(CALと入力する)。 ##### インストール作業について 添付の`INST.COM`を使用します。コマンドラインから「INST」と入力すれ ば、あとは対話形式で勝手に進めてくれます。 インストール終了後は、インストール先ドライブの\MUAPというディレク トリに格納されます。そのディレクトリに入っているMUAP.BATを実行する と常駐してメニューが表示されます。 ### 第二章●みゅあっぷの各メニューコマンドについて ##### メニュー操作方法 メニューでは、`→←↑↓`の矢印キーを使って目的のコマンドを選択し、リタ ーンキーで決定するか、メニューの黄色文字のキーを押せば選択されます。 メニューの下の文字は現在選択されているカーソル位置のコマンドに対する ヘルプです。これが点滅するとシフト押下で選択したことを示します。但し、 このヘルプ及びエラーメッセージはCAL呼び出し時のみ表示されます。またこ の部分は歌詞表示領域にもなり、コマンド実行後しばらくすると歌詞(タイ トル)が表示されます。 ##### ◎鍵盤表示・レベルメータ表示 演奏中はFMを水色、SSGは緑、PCMは黄(リズムはなし)の色で鍵盤をた たきます。これはScedt, TracePlay, MakeTone, SaveSource, WriteObjct 以外のメ ニューで常に表示されます。色のカスタマイズやMMLでの色指定(@kdコマン ド)も可能です。また、同じくレベルメータもその下に表示されます。 ##### (0) Quit - 機能:呼び出したプロセスへ復活。 - キー:`[0]/[Q]/[ESC]` - 他: * まずキーを押すとサブメッセージとして "1 | Text, 2 | Cursor, 3 | G-VRAM" と表示されます。[1], [2], [3] のキーを押すとそれぞれ反 転表示が切り換わります。1 はテキスト画面、2はカーソル、3は グラフィック画面のことです。非反転表示されている箇所は表 示を停止してから終了します。 * その状態で、もう一度`[0]/[Q]/[ESC]` を押せば主プロセスへと戻 ります。他のキーを押すとまたメニューに戻ります。 ##### (1) PlayStart - ●機能:演奏バッファの内容を先頭から演奏する。 - キー:`[1]/[P]` - 他:ユーザPCM が指定されている場合は登録を実行します。 ##### (2) HaltPlay - 機能:演奏を停止する。 - キー:`[2]/[H]` ##### (3) FadeOut - 機能:フェードアウトで演奏を終了する。 - キー:`[3]/[F]` ##### (4) Replay - 機能:演奏終了またはフェードアウト後に演奏を再開する。 - キー:`[4]/[R]` ##### (5) UsrPcmPlay - 機能:ユーザ登録用のPCMデータを発音します。 - キー:`[5]/[U]` - 解説: * 環境変数UDPに格納されているファイル一覧が表示されます。 その画面でリターンキーを押すとカーソル位置のPCM ファイルを 発音します。ディレクトリを変更してから発音しても、ユーザ PCM ディレクトリは環境変数のディレクトリ固定です。 - 他: * 発音対象にADPCMとSSGPCMの選択が可能です。`[←][→]`で ADPCM/SSGPCM切り換え、`[↑][↓]`でSSGPCMの音量を変更し ます。またEDITを選択すると、DacSampleでの編集になります。 ##### (6) TracePlay - 機能:演奏状態を表示する。またアセンブル時のデバッグ情報をもとに ソースファイル上で現在演奏している音符・休符を表示したり、 任意の位置から演奏を開始します。 - キー:`[6]/[T], [SHIFT]` - 解説:演奏中の演奏データバッファの番地(演奏データにデバッグ情報 が含まれている時はソースの内容と音符・休符の位置も)、音 色、音量(@Vの値)、音階、音長、パン、変数、LFOの内容を 表示。また音量・パン・ディチューン・テンポ・LFOの変更、チ ャネルマスクの実行も行なえます。 - 操作: * [0],[ESC] メニューに戻ります。 * [CLR] ソースレベルデバッグモードでは直接エディタへ移動します。カーソル位置は演奏していたMMLの位置になります。 * [HOME] [CLR]と同じで、カーソル位置の変更は行ないません。 * [1]/[P] 演奏を開始します。PlayStartと同じ。 * [2]/[H] 演奏を停止します。HaltPlayと同じ。 * [4]/[R] 演奏を再開します。Replay と同じ。 * [ROLL UP] 演奏テンポを早くします。 * [ROLL DOWN] 演奏テンポを遅くします。 * [GRPH]+[RUP] 演奏テンポを細かく早くします。 * [GRPH]+[RDN] 演奏テンポを細かく遅くします。 * [SPC] 変更したテンポを元の値に戻します。 * [SHIFT]+[RLUP] テンポを3906 にします。 * [SHIFT]+[RLDN] テンポを16 にします。 * `[→]` カーソル位置のチャネルの音量を上げます。 演奏中に音量の指定をした場合それに従います。 * `[←]` カーソル位置のチャネルの音量を下げます。 * `[↑]/[E]` チャネルカーソルを上に移動します。変数の表示、ソースレベルデバッグ時のチャネルの指定はこれで行ないます。 * `[↓]/[X]` チャネルカーソルを下に移動します。 * [RET] カーソル位置のチャネルの発音を制御します。 * [/] カーソル位置のチャネルのみ発音します。 * [*] チャネルマスクを解除します。 * [T]/[6] スクロール表示モードとノンスクロール表示モードを切り換えます。スクロールモードでは変数、パン、LFOの表示はなくなります。 * [CTRL]+[A]~[Z] カーソル位置に指定された効果音を発音します。但し、演奏中である必要があります。また効果音の指定のないチャネルで実行すると無視されます。[A] のキーから順番に1, 2, ・・・, 26 番目の@stop コマンドに割り当てられます。 * [^][¥] カーソル位置のチャネルのシステムディチューン値を変更します。 * [1] LFOの停止/AMD/PMDを切り換えます(以降全てJISキーで操作します)。 * [2] LFOの同期/非同期/ワンショット/鋸波形を切り換えます。 * [3][4] LFO 速度(-127 ~ 127) を変更します。 * [5][6] LFO レベル値(0 ~ 127) を変更します。 * [7][8] LFO ディレイ(0 ~ 255) を変更します。 * [9] LFO インクリメント(0 ~ 15) を変更します。 * [0] LFO レベルベース(0 ~ 6) を変更します。 * `[-]` LFO 速度ベース(0 ~ 3) を変更します。 * `[TAB]` ソース画面上でのカーソル移動モードに移行します(デバッグ情報ありの時)。 - ソース画面カーソル移動モードでの操作キー * [←→↑↓] 演奏を開始したいMML位置を移動します。 * [RollUp/Down] MMLのチャネル番号を変更します。 * [RET] カーソルが示す位置まで早送りして演奏を開始します。 * [ESC] 演奏を開始せず戻ります。 - 表示: * #1 音源のチャネル番号 * 003F 演奏データの番地 * @000 音色番号(SSGは除く) * V120 内部音量データで、@Vxxに対応しています。またenvlとはSSG(チャネル4~6)でエンベロープモード(MMLで P1 と指定)であることを示しています。 * M パンの位置を示します。 * BSCHTR リズム音源の発音状態を示します。 * O4C# O4というのはオクターブ4、C#は音符のド#の事になります。またRとは休符のこと、Waitとは'コマンドの小節揃えでチャネルが待ち状態にあることを示します。 * L2. 音長を示します。この場合" O4C+2. "が発音されている事になります。L4/3というのは4分音符の3連符の事です。"^"や"."の記号の意味はMMLの音符の項目を参照して下さい。 * X0 カーソル位置のチャネルの変数の内容(X0~X9)を表示します。 * SyDt システムディチューンの値を表示します。 * LFO LFO の停止・変調モード(Stp/Amd/Pmd)を表示します。 * Sy 非同期(0)・同期(1)・ワンショット(2)・回数指定(3)を表示します。 * Speed LFOの早さを表示します。 * Lev LFOのレベル(深さ)を表示します。 * Dly LFOのディレイ(遅れ)を表示します。 * Inc LFOのインクリメント(増分)を表示します。 * Bs LFOのレベルベース(深さの大まかな値)を表示します。 * Sb LFOのスピードベース(早さの大まかな値)を表示します。 - 他: * デバッグ情報が含まれている場合でも、`[SHIFT]`キーを押しながら選択すると普通の表示になります。 * スクロールモードでは、スクロールもれがないようにしているため演奏の速度が落ちたりテンポが乱れたりします。遅い場合はノンスクロールモードにするかテンポを上げます。 * `CTRL+[3]`呼び出しではヘルプメッセージは表示されません。 ##### (7) Assemble - 機能:みゅあっぷ9 8 のソースバッファのデータをアセンブルする。 - キー:`[7]/[A], [SHIFT], [CTRL]` - 表示: * #1 #2 ・・・ とはチャネル番号で、左に表示されるオフセット値と加算して 1~17 チャネルを表現します。その中に表示される値は、全音符の数で小数点以下は192 分音符の数で示されます。 * 音長が緑色の場合、@IF THENコマンドなどを使用して実際の演奏と異なる可能性のあることを示します。 * 最後に表示される1 0 進数が総合の演奏データ量です。 * エラーが発生したときはエラー内容(CAL呼び出し時のみ。CTRL 呼び出し時にはエラー番号)が表示され、アセンブルは停止します。 * `[SPC]`キーを押しつづけると中断できます。 - 他: * `[SHIFT]`キーを押しながら選択すると演奏データにソースのデバッグ情報も格納します(デバッグ情報出力と表示)。但し、その演奏データをファイルとして書き込むことはできません。 * `[CTRL]`キーを押しながら選択すると直前のユーザPCMを破棄し、再登録します。 * エラー発生後にエディタ(Editor)を選択するとカーソルがエラーコマンドに移動します。 ##### (8) Infodisp - 機能:みゅあっぷの内部情報を表示する。 - キー:`[8]/[I]` - 表示:みゅあっぷの常駐セグメントとか各バッファのセグメント、領域の大きさなどが表示されます。 ##### (9) @dataDisp - 機能:音色パラメータの内容を表示し、また演奏中の音色を変更する。単音キーボードとしても使用可能。 - キー:`[9]/[@]` - 操作:キーの機能 * `[0]/[ESC]/[CLR]` メニューへ戻ります。 * `[↑↓]/[E][X]` カーソル(音色番号)を移動します。 * `[ROLL UP/DOWN]` 高速スクロールで移動します。 * `[←→]/[S][D]` カーソル(チャネル番号)を移動します。白色反転表示されている所、チャネルの音源に応じて黄色のカーソルも移動します。 * `[RET]` カーソル位置の音色番号を指定チャネルに設定します。拡張音色(256 ~ 632)を指定した場合は全て100 と表示されます。 * `[1]` 演奏を開始します。PlayStartと同じ。 * `[2]` 演奏を停止します。HaltPlayと同じ。 * `[4]` 演奏を再開します。Replay と同じ。 * `[G]` 音色名称の前方検索を行ないます。検索名称の入力に関してはEditor の検索の項目を参照してください。 * `[H]` 同じく連続前方検索を行ないます。 * `[V]` 後方検索を行ないます。 * `[B]` 同じく連続後方検索を行ないます。 * `[1]~[8]` 発音のオクターブを指定します(このキーはテンキーでない部分)。 * `[f・1]~[f・10]` 順番に C,C#,D,D#,E,F,F#,G,G#,A の音階を発音します。キーを離すとキーオフします。また、演奏は停止されます。 * `[vf・1][vf・2]` 同じく A#,B の音階を発音します。 * `[INS][DEL]` 拡張ファンクションキーを所有しないキーボードのために、同じく A#,B を発音します。 - 表示: * 左側がFM音源用で右側がPCM用です。 * 上の行に現在演奏中の音色番号が表示されます(停止されたチャネルは"--"と表示されます)。また現在変更可能なチャネルが白色反転文字で表示されます。 - 他:CAL呼び出し時にヘルプファイルTONES.HLP,PCM.HLPが見つからなかった時は全領域空白になります。 ##### (-) Editor - 機能:みゅあっぷベースのスクリーンエディタ。 - キー:`[-]/[E]/[CLR]` - 操作:`[CTRL]+[_]`でMML-FEPが使用可能です。但し、編集行が14行に縮小されます。 ###### キーの機能 ("^"はCTRLキーと同時押下の意味です) - カーソルの移動 * `^[E] ^[S] ^[D] ^[X]` * `[↑][←][→][↓]` カーソルを移動します(上・左・右・下)。 * `[SHIFT]+[→]` カーソルをその行の右端の文字の次に移動します。 * `[SHIFT]+[←]` カーソルをその行の左端に移動します。 * `[SHIFT]+[↑]` カーソルを3行づつ上に移動します。 * `[SHIFT]+[↓]` カーソルを3行づつ下に移動します。 * `^[F]` カーソルを次の語に進めます。 * `^[A]` カーソルを前の語に戻します。 * `[ROLL UP] ^[C]` 画面を1 1 行づつスクロールアップします。 * `[ROLL DOWN] ^[R]` 画面を1 1 行づつスクロールダウンします。 * `[SHIFT]+[ROLL UP]` 表示しないで超高速に行を進めます。 * `[SHIFT]+[ROLL DOWN]` 表示しないで超高速に行を戻します。 * `^[J]` 現在のカーソル位置を保存します(5個まで)。 * `^[W]` 指定した行番号に移動します。[f・8] と同じです。マーク位置に移動するには"m1" ~ "m5"と入力します。また、テキストの先頭へはリターンキーのみ、一番下へは"." で移動できます。 - 文字入力、挿入、削除 * `[TAB]` カーソルを8文字ごとに右に移動します。挿入モードではタブを挿入します。 * `[SHIFT]+[TAB]` タブを挿入します(カーソルは移動しない)。 * `^[TAB]` タブ位置までカーソル移動します。 * `[RET] ^[M]` カーソル位置の下行の先頭に移動します。挿入モードではカーソル位置で行分割を行ないます。 * `[INS]` 上書、挿入モードを切り換えます。 * `[DEL]` カーソル位置の文字を削除します。行の右端で実行すると次の行と接続されます。 * `[BS]` カーソル位置から一文字左に移動し削除します。行の左端で実行すると前の行と接続されます。 * `^[U]` `[DEL][BS]`によって削除された文字を復活します。保存バッファには最大64文字まで格納されます。 * `^[K]` カーソル位置以降のカーソル行の文字を消去し、カットバッファに保存します(最大160 文字まで)。 * `^[Y]` カーソル行を削除し、カットバッファに転送します。 * `^[N]` カーソル行に1行挿入します。 * `^[L]` カーソル行(位置)にカットバッファ(`^[Y]`, `^[K]`)の内容を挿入します。 * `^[Q]` `^[Q]`の後に"NEW"と入力するとカーソル位置以下の編集領域をクリアします。その際ソースファイルの誤書き込みを防止するため、パス名の*.MUSを*.MU*とします。また、`^[Q] ^[A]` のように続けてコントロールコードを入力するとカーソル位置にその文字を入力します。 - 検索、置換 * `^[G] [f・1]` カーソル位置から前方へ、入力した文字を検索し、その位置までカーソルを移動します。検索での特殊文字として、 + `?` = ワイルドカード + `^[M](CR)` = CR,LF + `[TAB](HT)` = TAB + `^[V](SN)` = 数字 (0~9) [V]alue + `^[W](EB)` = 数字以外の文字 [W]ord + `^[X](CN)` = 次の文字の反転 [X]chg (`^[X]`9なら"9"以外の文字) + `^[Y](EM)` = 次の2文字の範囲内の文字(`^[Y]`AZならAからZまで) + が使用できます。漢字も検索・置換可能ですが、`^[X]`, `^[Y]`の後の文字に使用することはできません。また、検索文字列が見つからない場合はクリック音と共に終了します。 * `^[H] [f・2]` 継続前方検索。`^[G]`, `^[V]`の後に使用します。 * `^[V] [f・3]` `^[G]`の後方検索版です。但し後方検索の場合は漢字チェックをしてませんのでシフトJISコードの2バイト目が検索文字と一致した場合、カーソルはその位置で停止してしまいます。その場合はカーソルを1つ左に移動して下さい。 * `^[B] [f・4]` 継続後方検索です。注意点は`^[V]`と同じです。 * `^[I] [f・5]` カーソル位置から最終行まで文字列置換を行ないます。旧文字列には検索と同様の特殊文字が使用可能です。また新文字列にも?,CR,LF,TABが使用可能です。[ESC] を押すと中断します。 * `^[O] [f・6]` カーソル行から任意の行範囲の間で文字列置換を行ないます。操作法は`^[@]`を参照して下さい。 * `^[P] [f・7]` `^[I]`と同じで確認付きの置換です。`[RET]`を押すと置換実行、`[SPC]`を押すとスキップ、[ESC]で中止します。 - 移動、複写 * `^[@] [f・9]` カーソル行から複数行を任意の行に移動します。まず`[↑↓][ROLL UP][ROLL DOWN]`で複写元範囲を選択し、`[RET]`を押します。次に同様のキーで複写先の行位置を選択し、`[RET]`を押すと実行されます。 * `^[[] [f・10]` カーソル行から複数行を任意の行に複写します。操作は`^[@]`と同様です。 - その他 * `^[Z]` 任意の音色番号のMMLのZコマンドパラメータをカーソル位置に挿入します。"音色番号>"と表示されたら 0 ~ 632(但し、拡張音色のない場合は255)までの音色番号を入力します。 * `^[_]` MML-FEPモードにします(第3章参照)。 * `[ESC]` 編集を終了します(メニューへ)。 * `[CLR]` ソースレベルデバッガモードでは直接ソースレベルデバッグ画面へ移動します。通常はメニューへ戻ります。 * `^[1]` 演奏を開始します。 * `^[2]` 演奏を停止します。 * `^[4]` 演奏を停止します。 * `^[7]` Assemble を実行します。デバッグ情報は格納されません。 * `^[9]` @dataDisp を実行します。 * `[SHIFT]+[f・1]` ソースファイルを読み込みます。 * `[SHIFT]+[f・2]` ソースファイルを最後に追加読み込みします。 * `[SHIFT]+[f・3]` ソースファイルを保存します。 * `[SHIFT]+[f・4]` ソースファイルを初期化(新規編集)します。 * `[SHIFT]+[f・5]` デバッグ情報ありでアセンブルし、デバッグモードに移動します。 * `[SHIFT]+[f・6]` 現ソースのアセンブルを行ないます。 * `[SHIFT]+[f・7]` 範囲を指定してアセンブルします。 * `[SHIFT]+[f・8]` カーソル位置をマークします。 * `[SHIFT]+[f・9]` MML-FEPを起動します。 * `[SHIFT]+[f・10]` @dataDisp を起動します。 - 表示: * 一般の文字以外に青色の'・'があります。これはEOF以降であることを示しています。 * 黄色の↓ は行の終了(CR,LF)を表しています。ソースバッファ内では0FEHの1バイトで格納されており、検索の際には`^M(CR)`を使用します。 * ソースバッファの容量が残り100バイト以下になると右上の残り容量の表示色が黄色で点滅します。また残り10 バイト以下になると赤色で点滅します。その場合は、速やかに編集を終了してデータをセーブするようにして下さい。編集を継続する場合は、セーブ後に常駐を切り離し、ソースバッファ容量を更に増やして常駐して下さい(常駐時の-Sオプション)。但し64KB以上のファイルは編集できません。 * 右上に表示されている1 6 進数は現在編集中のデータ数とバッファの残り容量とパーセントです。また左に表示されている数字はカーソル位置の行数、桁数です。 - 他: * 文字列や数字を入力する時(`^[I]`, `^[O]`, `^[P]`, `^[@]`, `^[[]`, `^[W]`, `^[G]`, `^[V]`)ではウィンドウ表示で入力領域が設けられます。"↓"の記号は最後(NUL)を意味しています。 * 操作に当たっては、 + [→][←] カーソルを移動します。 + [SHIFT]+[→][←] カーソルを右端、左端に移動します。 + [CTRL]+[K] カーソル位置以降を消去します。 + [DEL] カーソル位置の文字を削除します。 + [BS] カーソル位置の左の文字を削除します。 + [ESC]/[CLR] 中断してもとに戻ります。 + [RET] 入力した文を実行します。 + [INS] 挿入・上書きモードを切り換える。 * が特殊キーです。 ##### (/) LoadSource - 機能:ソースバッファに *.MUS のファイルをロードする。 - キー:`[/]/[L], [SHIFT]` - 操作:シフトキーを押しながら実行すると現在のソースバッファの最後から追加して読み込みます。実行するとファイル選択メニューとなります。次ページを参照して下さい。 - 他: ソースバッファ容量以上のファイルをロードするとエラーメッセージが表示されます。当然途中までしかロードされていません。また書き込み用パス名の最後を*にして誤書き込みを防止しています。 ##### (*) ObjectLoad - 機能:演奏ファイル*.O(ユーザPCM 定義されたものは*.OX)のファイルを演奏バッファにロードする。 - キー:`[*]/[O], [CTRL]` - 操作:次ページのファイル選択の説明を参照して下さい。ファイルを選択してもファイラーからは抜けませんので曲を選ぶ時に便利です(歌詞表示コマンドがある場合、歌詞も表示されます)。また、[CTRL]キーを押しながら選択すると直前のユーザPCMを破棄して再登録します。 ##### ファイル選択メニュー ソース/演奏ファイルを読み込む時に所望のファイルを選択するためのファイラーが搭載されています。その操作法は以下の通りです。但し、アーカイブ属性の立っていないファイルや隠しファイルは表示されません。 また、最大表示ファイル数は216 です。さらにディレクトリ名に拡張子を含むものは選択できませんのでご注意下さい。 - [→←↑↓] カーソルを移動します。領域に入らないファイルはスクロールで表示されます。 - [RETURN] ファイルを選択します。サブディレクトリを選択するとそのディレクトリへ移動します。ソースファイル読みだしの場合のみメインメニューに戻ります。 - [ESC],[CLR],[0] ファイル選択を中断してメニューに戻ります。 - [A],[B],[C]・・・ 押されたアルファベットのドライブに移動します。 - [ROLL UP] 読み出すドライブを次のドライブに移動します。ただし、ドライブかファイル自体が存在しない時はそのままです。また指定のパスにファイルが存在しない時はパス名を¥*.*にします。 - [ROLL DOWN] 読み出すドライブを前のドライブに移動します。以下[ROLL UP]と同じ。 - [1] 拡張子を.MUSにします。 - [2],[3],・・,[9] [1]同様、拡張子をそれぞれ.O? .DOC .ASM .C .BAS .HLP .BAT .* にします。 - [BS] 親ディレクトリに戻ります。 - [INS] パス名を直接変更します。[RET]で終了します。 - [SPC] [1] ~ [9] のキーがどの拡張子に対応しているかを表示します。 ##### SaveSource - 機能:ソースバッファに格納されているデータをセーブする。 - キー:`[+]/[S]` - 表示:書き込む前にパス名とファイルの長さを表示します。ここで`[RET]`を押せば実行されます。パス名を変更する場合は`[→←] [SHIFT]+[→←] [DEL] [BS] ^[K] [INS]`キーを使用して変更します。`[ESC]`か`[CLR]`を押せばメニューに戻ります。 - 他 :書き込み前の確認でパス名とファイルの大きさが表示されますが、そのファイルの大きさの値が実際のものより少なくなっています。それは、エディタのバッファに展開したときにCR,LFコードを0FEHに変換してるからです。 ##### (=) WriteObjc - 機能:演奏用ファイル(*.O)を書き込む。 - キー:`[=]/[W]` - 他:まずソースファイルを読み込み、アセンブルした後にこのコマンドを実行します。後はSaveSourceと同じです。また、演奏ファイルをロードした後や、デバッグ情報を出力したアセルブル結果を書き込むことは出来ません。 ##### (.) MakeTone - 機能:FM音源の音色パラメータを演奏しながら編集する。 - キー:`[.]/[M], [SHIFT]` - 解説:@100を編集バッファとして音色を編集します。編集後はエディタで`[CTRL]+[Z]`で音色番号として100 を入力し、Zコマンドを展開します。CAL呼び出し時のみ使用可能です。 - 操作方法 * [↑][←][→][↓] 音色編集カーソルを移動します。 * [ROLL UP][ROLL DOWN] チャネルカーソルを移動します。チャネルを移動すると移動したチャネルのソロ演奏になります。 * [SHIFT]+[ROLL・・・] チャネルマスクをそのままでチャネルカーソルのみ移動します。※チャネルカーソルを移動しますと、編集されていた音色が失われますので充分注意して下さい。 * [SHIFT]+[↑][↓] 音色編集カーソル位置の値を変更します。 * [1][P] 演奏を開始します。同時にチャネルマスクは解除されます。 * [2][H] 演奏を停止します。 * [4][R] 演奏を再開します。 * [/] チャネルカーソル位置のチャネルのみの演奏(ソロ演奏)にします。 * [*] チャネルマスクを解除します。 * [ESC][Q][CLR] メニューに戻ります。 * [C] 任意の音色番号のデータを取り出します。 * [S] カーソル位置に即値を入力します。DTの値は0 ~ 7になります。0 ~ 7が、0, 1, 2, 3, 0, -1, -2, -3 に対応します。 * [f・1]~[f・10] 順番にC C# D D# E F F# G G# A の音階を発音します。 * [vf・1][vf・2] A# B を発音します。拡張ファンクションキーの * [INS][DEL] ない機種では`[INS][DEL]`を押します。 * [1]~[8] 発音のオクターブを指定します(JISキー)。 ##### (¥) DacSample - 機能:PC-9821 拡張PCMを使用してADPCMの録音を行なう。 - キー:`[¥]/[D]` - 説明: * 実行すると準備画面に入ります。 + `[ESC]` メニューに戻る + `[↑][↓]` 録音レベル変更 + `[SPC]` 録音開始 * 録音を終了する場合は即座に何かキーを押します。 * 録音された波形を表示して先頭と終わりの部分を削除する画面に入ります。 + `[ESC]` 編集終了 + `[TAB]` 録音レベル最大化 + `[→←]` 先頭の削除部分を移動 + `[↑↓]` 終端の削除部分を移動 + `[SPC]` 残った部分のみ発音 * 最後に書き込みファイル名の編集画面に入ります。この部分はSaveSourceと同じです。 * 録音レベル最大化は、削除部分以外の領域に対して行ないます。 ##### (SI) deBugging - 機能:ソースレベルデバッグを行なう。 - キー:`[INS]/[B]` - 説明:デバッグ情報ありAssemble→TracePlayのソース画面上移動モードと実行します。それぞれ、各メニューの解説を参照して下さい。 ##### (BS) NmiVram - 機能:背景グラフィックデータを切り換える - キー:`[BS]/[N]` - 説明:環境変数BRGで指定されたディレクトリのBRGファイルを読み込みます。BRGファイルの作成は添付の`GETVR.COM`を使用します。CPUが80386以上で、EMSが合計41または73ページ(PC-9821(86B)PCM使用時)残っている場合に使用可能です。 ##### ( ) BackVramSW - 機能:メニューのグラフィック窓の表示を切り換える。 - キー:`[B]/[SPACE]` - 操作:グラフィックモード使用中、背景グラフィックの全体を見たくなった場合に使用します。再度実行すると戻ります。 ##### ([) VisualPlay - 機能:演奏状態をビジュアルに表示する。 - キー:`[[]/[V]` - 条件:背景グラフィックモードでかつCPUが80386以上で動作します。また、環境変数DTAのパスまたはCAL呼び出し時のカレントディレクトリにMUAP98.BRG が存在している必要があります。 - 表示: (diagram) - 操作: * `[ESC][0][CLR]` メニューに戻る。 * `[HELP]` キー操作のヘルプ表示を行なう。 * `[TAB]` 歌詞表示の有無を切り換える。 * `[/]` ソースファイラーを呼び出す。ソースファイルは自動的にアセンブルされて演奏開始します。 * `[*]` 演奏データファイラーを呼び出す。 * `[RollUp]` テンポを早くする。 * `[RollDown]` テンポを遅くする。 * `[SPC]` テンポを元に戻す。 * `[←][→]` マルチディスプレイ部分の表示チャネルを選択する。 * `[RET]` 該当チャネル(赤で表示)をマスク指定/解除する。 * `[INS]` 該当チャネルのみの演奏にする。 * `[BS]` マスクをすべて解除する。 * `[1]` 演奏を先頭から開始する。 * `[2]` 演奏を停止する。 * `[3]` フェードアウトする。 * `[4]` 演奏を停止位置から再開する。 * `[f・1]~[f・10]` パレットを変更する。 ##### オンラインヘルプ・モード切り換え画面・エラーについて - CAL呼び出しで`[HELP]`キーを押すとヘルプ画面が表示されます(但し環 境変数DTAのパスにMUAP98.HLPが存在すること)。このヘルプは概略だ けしか記してませんので詳細は本マニュアルを参照して下さい。 操作法は、 * `[→←↑↓]` 上部のメニューカーソルを移動します。 * `[ROLL UP],[ROLL DOWN]` ページ単位で移動します。 - そのヘルプ画面でもう一度`[HELP]` を押すとみゅあっぷのモード設定画面となります。 操作法は、 * `[↑↓]` カーソルを移動します。 * `[RET]` カーソル位置の状態を反転します(する・しない)。 - エラー番号とその内容 * `CTRL`呼び出し時にはエラー内容は表示されません。以下に番号との対応を示しておきます。★印のエラーはMS-DOSの致命的エラーです。 + パス名が異常、またはファイルが見つかりません。 + ディスク読み込みエラー。 + ディスク書き込みエラー。 + ディスクに空き領域がありません。 + 演奏バッファ容量が不足。 + ソースバッファ容量が不足。 + 演奏データにデバッグ情報を含んでいる。 + ドライブの準備ができていません。 + ファイルから読みだした演奏データは書き込めない。 + ★書き込み禁止です。 + ★ドライブ番号指定エラー。 + ★ドライブの準備ができていません。 + ★データCRCエラー。 + ★シークエラー。 + ★メディアタイプが違います。 + ★セクタが見つかりません。 + ★FATエラー。 ### 第三章●MML-FEPについて ##### 概要 このFEPは、音符から相対オクターブ(<>)・音符(cdefgab)・音長 (1, 2., 2, 4., 4, 8., 8, 16., 16, 32., 32, 64)・連符・和音・タイ・スタカートなど をエディタのカーソル位置に出力する機能を持っています。 さらに、作曲モードとしてファンクションキーを利用した簡易鍵盤も用 意してありますので音取りの苦手な方にも重宝します。 ##### 起動方法 Editor上で`[CTRL]+[_]`キーを押すとFEPを起動できます。FEPモードでは左 上に白色の反転文字でFEPが表示されます。但しCAL呼び出し時のみです。 また、FEPモードでもう一度`[CTRL]+[_]`を押すとFEPモードが解除されます。 エディタを終了しても自動的にFEPモードは解除されます。 ##### 表示画面 一番右に表示されている音符は現在選択中の音符です。その左は直前に 入力した音符であり、音符を出力する毎に左にスクロールされます(FEPモ ードを切り換えると消去されます)。 Code:と表示されているのは、現在選択中の音符のコード(CDEFGAB)で す。作曲モードではその横に嬰音記号(#)も表示されます。またCH:と表 示されているのは、現在入力しているチャネル番号(1 ~ 15)です。これを 使用して直前の入力音符をチャネル別に覚えることができます。 その下のト音記号は、調子記号表示用のもので、その右にハ長調・ト長 調などが表示されます。さらにその右には入力する際のト音・ヘ音・ハ音 記号が表示されます。 ##### 音階の発生について デフォルトでは、音符を上下に移動した時とMML を出力した時にSSG によ る音階を発生します(標準モード)。`-Q`オプションをつけてMUAP98を常駐 すると、SSGによる発音は禁止します(停止モード)。 `-QR`オプションをつけると作曲モードになり、ファンクションキーが鍵盤 の代わりになります。発音はファンクションキーを押下した時、MMLを出力 した時です。 以上の各モードはオンラインヘルプのモード切り換え画面(`[HELP]`の2回 押下)でも変更できます。 ##### キーの機能 デフォルトのキーの機能は以下の通りです(全てテンキー部分)。ファ ンクションキーを除いてCUSTOM.MUA により変更可能です(第7章)。 `[8]` 音符の位置を上に移動します。(note) `[2]` 音符の位置を下に移動します。(note) `[CTRL]+[8]` 音符の位置を1オクターブ上に移動します。 `[CTRL]+[2]` 音符の位置を1オクターブ下に移動します。 `[4]` 音符の音の長さを長くします。(note) `[6]` 音符の音の長さを短くします。(note) `[9]` 音部記号を、ト音・ヘ音・ハ音の順番に移動します。 `[7]` [9]の逆順に移動します。 `[SHIFT]+[9]` 調子記号をハ長調・ト長調・ニ長調...と移動します。 `[SHIFT]+[7]` 調子記号を上記の逆順で移動します。 `[3]` チャネル番号を+ 1 します。(note) `[1]` チャネル番号を-1します。(note) Note: 記号の付いている機能は`[SHIFT],[GRPH]`キーを押しながらでも機能します。 `[5]` エディタのカーソル位置に選択されている音符のMMLを出力します(例:"c4.")。 `[-]` 休符を出力します(例:"r16")。 `[/]` 同じ和音指定(@SC)を出力します(例:"@sc2")。 `[*]` 和音の最初の音符を出力します(例:"d8/")。 `[+]` 和音の中間の音符を出力します。前回の音符として記憶しません。 また音長も出力されません(例:"e/")。 `[=]` 和音の最後の音符を出力します。出力後には前回の音符が編集音符として表示されます。 また音長も表示されません(例:"f:")。 `[0]` 連符の最初の音符を出力します。音長は表示されません(例:"{g")。 `[,]` 連符の中間の音符を出力します。音長は表示されません(例:"a")。 `[.]` 連符の最後の音符として出力します(例:"b}4")。 `[SHIFT]+[5]など` 上記の機能+音符の後に&を出力する(スラー/タイ)。 `[GRPH]+[5]など` 上記の機能+音符の後に"を出力する(スタカート)。 ##### 作曲モードでの追加キー(カスタマイズ不可) `[f・1] ~ [f・10]` 順番にc, c#, d, d#, e, f, f#, g, g#, a を発音します。 `[CAPS]`キーがロックされている場合、音階のみMMLを出力します。 演奏が停止されますので注意して下さい。 `[vf・1], [vf・2]` 同じく、a#,bを発音します。このキーがない機種では`[SHIFT]+[INS]`,`[SHIFT]+[DEL]`を使用します。 ##### LASTDTA.FEPについて 一曲を何回にも分けて入力する場合、MML-FEPでは常駐解放時に各チャネ ルの音階、音長、音部、選択中のチャネルをファイル(LASTDTA.FEP)に書 き込んで保存し、次回のみゅあっぷ98 常駐時に再び同じ状態を再現するこ とができます。`-H`オプション参照。 ### 第四章●みゅあっぷの呼び出し方法 ###### みゅあっぷ98/iv メニューの呼び出し方法 - `CAL.COM`を実行する。 * 全てのコマンドが実行可能です。 - `[CTRL]+[3]`キーを押す([3]はテンキーでない方のキー)。 * 使用できないもの背景グラフィック 日本語FEP オンラインヘルプアセンブラ・メニューでのエラーメッセージメニュー、TracePlayのヘルプ 鍵盤表示UsrPcmPlay MakeTone NmiVram BackVramSW Infomation MML-FEP@dataDisp DacSample Assembleの「MMLバージョンが・・・」表示 * 押した時に主プロセスがINT 21Hのキー入力待ち状態でなければメニューは出ません。 - `[CTRL]+[1][2][4]` キーを押す(テンキーでない方のキー)。 * 演奏を開始/停止/再開して終了します。演奏中に電話がかかってきた時などに使用します。いつでも使用できます。 ###### まとめ `[CTRL]+[3]`キー呼び出しは他のプロセス実行中にみゅあっぷを割り込ま せるものであり、いくらかの危険性を秘めています(と思う)。 あるアプリケーション上で、呼び出すとおかしな症状がでた場合は、使用 しないでください。 ### 第五章●MMLコマンド解説 ##### チャネルと音源の対応 1 ~ 3と7 ~ 9はFM音源です。4~6はSSG及びSSGPCM用として使用できま す。10はリズム音源です。11はPCM音源専用です。 全てのチャネルで、PC-9821(86B)PCM 音源に切り換えることができます。 12 ~ 17のFMはYM3438または2つめのYM2608またはYM2203に割り当てられます。 ##### MML のパラメータについて `[ ]`でくくられた部分は省略可なパラメータです。numは10進数の数字、 +#-%のように続けて書いてある文字はそのうちの1つが指定可能なものに なります。基本的に大文字、小文字の区別はありません。 "●" で示されたコマンドは全てのバージョンに使用可能なものです。 "◎" は一番初めのチャネルのなるべく先頭に指定する必要があるコマンドです(例:@NOOUTなど)。 ##### チャネル、小節の指定、演奏の終了に関するコマンド `_V3.0#` - ◎ 名称:バージョンの指定 - ◎ 説明:MMLのバージョンを指定します。このコマンドのみ以下の[ ]コマンドの外に指定します。指定しない場合や数字が異なっている場合はアセンブル時に「MMLのバージョンが異なりますが強行します」と表示されます。この目的は新しいバージョンで、MMLの記述が従来と同一であるが結果が異なる改良を施した時にバージョンコードを変更してチェックするためのものです。 - _V3.0# と _V2.2# の違い * テンポの値が細かく設定可能です。それによって従来値より若干遅く感じます。 * LFOレベル(深さ)の値の奇数が有効になります。 * @dsの初期値が1から5に変更されます。(_V2.2# のソースファイルはバージョンコードに_V2.2# と記述することで全く問題なく使用できます) - _V2.2#と_V2.0#(または_V1.8#と_V1.6#)の違い @if jump 命令でループコマンドを脱出する場合、演奏 スタックが狂いますので脱出時に@pop 命令を実行するか、 最後に@initを入れるか、ループの脱出を@if exitで行な って下さい。 * `( dada @if2 jump1 cgcg )2 @label1 ff` * `→ ( dada @if2 exit cgcg )2 ff` - _V1.6#とそれ以前の違い バージョンコードなしの場合、@if jump命令の引数は 4回のループカウンタでは 0, 3, 2, 1 となっていましたが、 _V1.6#以降では 1,2,3,4 に改めました。 また、SSGの ps pd 命令の内容も変更されています。 - ◎ 例:_V3.0# `1[ @com "新バージョン" ]` - ◎ 他:指定位置はソースファイルの任意の場所です。また、小 文字でも認識します。 `[ ]` - 名称:チャネル指定 - パラ:`num[ ]` - 説明:num のチャネルのMML データを`[ ]`内に指定します。num は1 ~ 17 まで。ユーザ定義PCM 用には1 ~ 17 から任意のチ ャネルを使用します(サウンドオーケストラ版は1 ~ 15 ま で)。全てのMMLコマンドは[]の中に記述します。numは 複数指定可であり、次の4つのフォーマットが可能です。 `(1): 1 [ ] (2): 1, 5 [ ] (3): 1-11 [ ] (4): 1, 3, 7-9, 11, 13-15 [ ]` などなど。 - 例:`1[ @13V15T120 CDE **] 2,3[ CDCD ]` - 他:チャネル番号を複数指定した場合、|コマンド(チャネル の移動)は使えません。 `|` - 名称:チャネル番号を次に進める - 説明:num[ ]コマンド内で、次のチャネルに移ることを指定します。 - 例: `1[ cdefg | ab>cde || ggegg ]` なら、 `1[cdefg] 2[ab>cde] 4[ggegg]` と同じ事になります。但し `1,2,3[ cd|ed|gb ]` という風にチャネルの複数指定した[] 内での使用はできません(|以降無視される)。 `@IF#` - 名称:チャネル条件アセンブル - パラ:`@IF#num[[,][-]num・・・] MML @@` - 説明:`1-3, 7-9 [ ]` のように複数チャネル指定した場合、ある特 定のチャネルのみ別のMMLにしたい場合に使用します。 numはチャネル番号で、チャネル指定と同様の記述ができ ます。MMLは指定チャネルのみ実行したいMMLです。 @@は最後の識別記号です。但し、@if #~@@の間で歌詞 の中や置換文字列として@@が存在することはできません。 - 例:`1-6[ @if#4-6 ps10,5,3 @@ v13 cdefg ]` `'` - 名称:小節揃え、1 小節の終了 - 説明:全チャネルデータの位置(長さ)を揃えます(データの ないチャネルは無視)。一般的に、小節毎に区切って使 用します(@+ , @- , @%参照)。 n88BASIC の PLAY 文で、 * `play "L4cde","L8cde"` * `play "abcde","abcde"` - としたら、実際には(フォアグラウンド演奏時)、 * `play "L4cde abcde","L8cde R4. abcde"` - となって演奏タイミングを合わせますが、それと同じものです。 - 例:みゅあっぷ98のMMLで表現すると、 * `1[ L4cde '| L8cde ']` * `1[ abcde '| abcde ']` - 一例としてこうなります。 - 他:@%, @+, @-系のコマンドを使用する時は1小節の終わりに必 ず記入して下さい。 - 図解: `1[ d4 f4 a4 d4 ' d4 f4 d4 a4 ']` `@NOOUT` - ◎ 名称:'コマンドによる発音タイミング合わせの停止 - ◎ 説明:'コマンドによる発音タイミング揃え機能を停止します。 * @+, @-, @%による小節内調音記号機能は有効です。発音タ イミングを'により一致させる必要がない場合(TracePlay でWaitと全く表示されない)、'1個につき1バイト演奏デ ータを減少することが出来ます。 * @DEBUGによる演奏のデバッグが終了したら代わりに @NOOUTコマンドを指定して下さい。 - ◎ 注意:指定する場合は一番若いチャネルの先頭('コマンドより 前)に指定します。 `@DEBUG` - ◎ 名称:'コマンド(小節の終了)の直前に休符を挿入。 - ◎ パラ:`@DEBUG[num]` - ◎ 説明:numは音符のnumと同じパラメータ指定方法です。音長の 入力ミスや音符や休符を入力し忘れた場合、TracePlay で演奏状態を見ると各チャネルの@DEBUGによる休符の位 置がずれますので、ずれたチャネルの小節のMMLについて もう一度確認を取るというデバッグ方法でたちどころに 解決できます。 - ◎ 例: @debug64 @debug2. - ◎ 注意:@NOOUTコマンドを指定すると無視されます。 `@FON` - 名称:改行時の臨時調号のクリア - 説明;従来の'コマンドの代わりに改行を行なえば自動的に同様 の働きをするコマンドが@fonです。全チャネル共通で、解 除はできません。@noout や@debug コマンドも有効にな ります。但し、マクロ文中の改行は無視されます。 `*` - 名称:演奏再開 - 説明:最初に戻って演奏します。 - 他: 演奏スタックも初期化されます。 * Ver5.xxからは演奏開始時に4分休符が入ります。 `**` - 名称:演奏終了 - 説明:演奏を終了します。 - 注意:`*,**` コマンドはどれか1 チャネルのみに指定するだけで結構です。 `@FO` - 名称:フェードアウト - 説明:フェードアウトします。 - 例: `1[ @label0 cdefgab>c x=x+1 @if x=6 then @fo @endif @jump0 ]` `@INIT` - 名称:演奏スタックの初期化 - 説明:( )や@callで使用したスタックの値を初期化します。 また、演奏ドライバで1 ループ終了したフラグを立てたい 場合も指定します。 `@STOP` - 名称:現チャネルの演奏を一時停止する。 - 説明:@STOPコマンドが指定されたチャネルのみ演奏を停止します。 - 他:演奏データの最後には必ず@STOPコマンドが出力されるの でわざわざ記入する必要はありません。 `@START` - 名称:停止されたチャネルの復活。 - パラ:`@START[ch1,ch2,・・,chN]` - 説明:@STOPコマンドによって停止されていたチャネルをこのコ マンドによって他のチャネルから再び演奏します。 @STARTのみで停止された全チャネルの復活、またチャネ ル番号指定して任意のチャネルを復活することができま す("," で区切って複数指定可能です)。 - 例: * `1[ cdefgab ] 2[ @stop ]` * `1[ @start2 >c *] 2[ c ]` * `→ 1[ cdefgab>c *]` * `2[ rrrrrrr c ]` と演奏されます - 注意:指定するチャネルは一番若いチャネルのみ指定します。 - 図解: * `1[ f4 a4 ' d4 e4 ' g4 f4 ' @start2 f4 '**]` * `2[ @stop >c4 ']` ##### 音符、休符などに関するコマンド `CDEFGAB` - 名称:音符 - パラ:`C[+ # - % ## ++ --][=][num1][.][^][_][& ~ " "" && ". ![num2] ?[num3]]` - 説明: * CDEFGAB が音符でドレミファソラシに対応しています。 * +(または#)は嬰音(シャープ)で半音上げます。++ ,# # と指定すると重嬰音(ダブルシャープ)になります。 * -は変音(フラット)で半音下げます。+# もそうです が、@_コマンドで調音記号が指定されている音符に+#- を指定すると調音記号が無視され、+#- がそのま ま有効になります。--と指定すると重変音(ダブルフラット)になります。 * %は本位記号(ナチュラル)で、@_コマンドで予めシャープまたはフラットを指定した音符を一時的に指定解除します。 - num1 は音符の長さで、1 ~ 192 が指定出来ます。1 で全 音符、2で半音符、12 は4分音符の3連符、64 は64 分音 符です。省略するとLコマンドで指定した音長になり ます。また=を数値の前につけると音長の直接指定に なります。この場合192÷ num1の値が音長になります。 - .は符点で音の長さを1.5 倍にします。2つ続けて指定 すると1.75倍になります(`L4C`...=`C4^8^16^32`)。 - ^は音符の長さを加算します。`C4^4`では`C2`になります。 前後の数字は省略可能です(`L8C^`で`C4`)。複数指定 も可能です。但し指定可能な最長音は`1^4^16`です。 - _は音符の長さを減算します。^の反対の機能です。 - &は前後の音符の音階が異なっていればスラーとなり、 滑らかに演奏します(Q8)。また同じであればタイ となり、前後の音長をつなげて1 つの音符のように演 奏します。但し前後の音符にループ命令、ジャンプ 命令がある時はスラーにされる場合もありますので、 次の強制タイを使用して下さい。 - ~は強制的なタイであり、前後の音符の音階が異なっ ていても音符をつなげて1 つの音符のように演奏しま す。例えば後ろに@Wコマンドがくる場合はC~@Wのよ うに使用します。 - "はスタカートです。一時的にQ4 とします。 - " " はスタカティシモです。Q3 とし、音量(@Vの値) を +4 して音を強調します。 - &&は強制スラーです。テヌートとしても使用します。 - ". はメゾスタカートです。一時的にQ5 とします。 - !はアクセント。この音符のみ音量を上げます。 !num2と指定しますとnum2の値音量を上げます。指定 しない場合は@avで指定された値になります。@avも 指定していない場合は4になります。 - ? はアクセントの逆です。?num3 と指定しますとnum3 の値音量を下げます。指定しない場合は@pvで指定さ れた値になります。@pvも指定しない場合は6になります。 - 例: * `C C+ D4 E-4." F%.^32 G~ C&D&E& A2.! c+4?10` `@MANU&` - ◎ 名称:&コマンドの自動タイ識別機能の停止 - ◎ 説明:&の前後が同じ音階の音符であってもタイ(1つの音符とす る)としないでスラー(滑らかにQ8で演奏する)とします。 `R` - 名称:休符 - パラ:`R [=] [num] [.] [^] [_]` - 説明:パラメータについては音符と全く同じです。FM音源では キーオフのみ実行、SSGとPCMでは音量を0にします。 - 他:休符が連続して存在するときは自動的に音長を加算して 圧縮します(r4r4ならr2になる)。 - 例:`R R4. R8^32` `@MAX` - 名称:圧縮休符の最大音長指定 - パラ:`@MAXnum` - 説明:num は休符のnum と同じで自動圧縮の最大の音長を指定し ます。これは各チャネル別に指定します。デフォルトは @MAX1、最大は`@MAX1^4^16`です。 普通は1 小節の長さを指定すると最も圧縮効率が良くなり ます(特に@harmを指定したチャネルで)。 - 例: `1-15[ @max1^8 ]` `@F+` - 名称:周波数の加算 - パラ:`@F+ num` - 説明:直前の発音周波数から指定値だけ周波数を上げます。 numは0 ~ 65535までです。ループ内にも指定可能です。音 長は、Lコマンドで指定したデフォルトの音長が指定されます。 - 例: `1[ c4~l32 (@f+163~)24 ]` `@F-` - 名称:周波数の減算 - 説明:@F +の反対で、指定値だけ周波数を下げます。 `@W` - 名称:待機 - パラ:`@W[=][num][.][^][_][& ~ " "" ". && ! ?]` - 説明:パラメータについては音符と全く同じです。休符と違い キーオフしたり音量を0にしません。但し、Qコマンドに よっては制御されます(&,~を指定すればQコマンドは無 視されます)。 - 図解:通常音長が1より長い音符を実現する場合に指定します。 フェルマータの箇所などにも指定します。 `{ }` - 名称:連符 - パラ:`{ CDEFGABR@W+#-%&~"<>!/ }num` - 説明:num 分音符を{ } 内の音符、休符の数で割った音長に指定し ます(和音指定可能)。 - 例:`{ CDE }4`で4分音符の3連符となります。`@+{ c@-]/[<>][@+ @- @% etc..][<>]`音符/ ・・・ : - 説明: * 音符の後に付けて、@HARMコマンドと一緒に使用します。 + `2[ @harm1 ] 1,2[ C/G: ]` * 最後は":"で終了します。 + `C/E/G:` * &,~,"," " の各パラメータは":"の後ろに付けます。 当然全ての和音に発効します。 + `2[ @harm1 | @harm2 ]` + `1-3[ C/A/B:& ]` + `→ 1[ C& | A& | B& ]` * 音符の前に<,>,@+,@-,@%,@+ +,@- -の各コマンドが使 用できます(@の複数指定はできません)。 <,>はその和音部分のみ(主音部の<>は通常)、@+, @-などは全和音に対して有効です。 + `2[ @harm1 | @harm2 ]` + `1-3[ /@+C/>>C: ]` + `→ 1[ | C+ | >>C ]` * 和音部の音符には音長の指定はできません。また和 音部の音符の後にその他のコマンドを指定しても無 視されます。 + `2[ @harm1 | @harm2 ]` + `1-3[ C4/E2./G&: ]` + `→ 1[ C4& | E4& | G4& ]` * 和音部の音符のオクターブは基音のオクターブに対して< > で上下します。 + `2[ @harm1 | @harm2 ]` + `1-3[ >C/C | >> C / <<@ ++B/A:` `@HARM` - 名称:チャネルの和音部演奏指定 - パラ:`@HARMnum` - 説明:numは和音の番号でC/D/E:のDを演奏する場合は1、Eを演 奏する場合は2、というように指定します。@harm0で通常 の演奏に戻ります。 - 他:和音の無いところは休符になります。休符同様、連続して 和音が無い場合はその休符は圧縮されます。また、ポルタ メント(@POR)では和音になりません。 - 例: * `2[ @harm1 ]` * `3[ @harm2 ]` * `1-3[ @13v13 C/E/G: E/A: C/@-E/G:& C/E/G: **]` + 上記の演奏データは、 * `1[ @13V13 C E C& C **]` * `2[ @13V13 E A E-& E- **]` * `3[ @13V13 G R G& G **]` - 図解: * `2[ @harm1 | @harm2 ]` * `1-3[ d4 d4/a:d4/f/>c: f4/@ +>c:d4/a: ]` `@SC` - 名称:再演奏 - パラ:`@SC[num][.][^][& ~ " "" && ". !]` - 説明:直前の音符(和音、コードネームモード可)をnumの音長 だけ演奏します。同じ和音、コードが連続する場合に便利。 - 注意:休符の後に指定すると休符となります。トリラーコマン ド、アルペジョの後には指定できません。 - 例: * `c/e/g:4 @sc8& @sc2^8` * `Cadd9:8 @sc4."" @sc2` `@ARP` - 名称:アルペジョ(Arpeggio) - パラ:`@ARP[num1][,num2]` - 説明: * 和音コマンド(" / " )に対して有効です。 * 和音指定した音符で、和音番号が大きくなるほど遅 れ時間が増加します。 * num1は遅れ音長で、デフォルト(無指定)では@TRS で指定された値(32)を使用します。 * num2は展開する和音数で、例えば本来なら5和音必要 な構成を3パートの使用に限定して展開します。無指 定の場合は普通に展開します。 * 楽譜では、和音音符の左に縦の波線が記入してある 部分となります。 - 例: * `2[ @harm1 | @harm2 ] 7[ @harm3 ]` * `1-3,7[ @25V13 @arp16 G1/B/>D/>G: @arp,3 C2/E/G/>C/E: ]` - とすると、実際に演奏されるのは、 * `1[ @25V13 G1 C16. >C4.^32 ]` * `2[ @25V13 R16B2... R32E16.>E4 ]` * `3[ @25V13 R8>D2.. R16G4... ]` * `7[ @25V13 R8.>G2.^16R2 ]` - となります。 - 注意: * 通常和音は低い音符から指定します。 * トリラーコマンドとの併用はできません。 - 図解: * `2[ @harm1|@harm2 ]` * `1-3[ @arp d4/g/>c: ]` `@SI` - 名称:スラー開始(SlurIn) - パラ:@SI - 説明:次からの音符にスラーを指定します(@si ~ @soがスラー の区間)。ネストはできません。 `@SO` - 名称:スラー終了(SlurOut) - 説明:スラーの指定を終了します。 `&` - 名称:スラー(Slur)、タイ(Tie) `~` - 名称:無条件タイ(Tie) `&&` - 名称:無条件スラー(テヌート) `"` - 名称:スタカート(Staccato) `""` - 名称:スタカティシモ(Staccatissimo) `".` - 名称:メゾスタカート `!` - 名称:アクセント `?` - 名称:音量の一時低下(逆アクセント) - 説明:音符、コードネーム、@W、@S Cの後に指定します。 音符の項(CDEFGAB)を参照して下さい。 `@AV` - 名称:アクセントでの加算音量の指定 - パラ:`@AV num` - 説明:アクセント (!) での加算音量の初期値は4ですが、それ を変更します。範囲は0 ~ 127 です。 `@PV` - 名称:逆アクセントでの減算音量の指定 - パラ:`@PV num` - 説明:逆アクセント(?)での減算音量の初期値は6ですが、そ れを変更します。範囲は0 ~ 127 です。 `.` - 名称:符点 `^` - 名称:音長の加算 - 説明:音長を指定する場合に使用します。音符の項を参照して下さい。 `+ #` - 名称:シャープ(嬰音) `++ ##` - 名称:ダブルシャープ(重嬰音) `-` - 名称:フラット(変音) `--` - 名称:ダブルフラット(重変音) `%` - 名称:ナチュラル(本位記号) - 説明:音符、トリラーコマンド、コードネームの根音の直後な どに指定します。音符の項を参照して下さい。 `@_` - 名称:調音記号 - パラ:`@_CDEFGAB+#-%I` - 説明: * 予め特定の音符にシャープ、フラットを指定します。 全オクターブ、演奏終了まで有効です。 * @_Iを指定するとそのチャネルの@_の指定を初期化します。 * @_x%または@_xを指定するとxの音符のみナチュラル に戻します(演奏終了まで有効です)。 - 例: 各長調短調による指定方法 * ト長調 ホ短調 + @_F+ * ニ長調 ロ短調 + @_F+ @_C+ * イ長調 嬰ヘ短調 + @_G+ @_F+ @_C+ * ホ長調 嬰ハ短調 + @_G+ @_F+ @_D+ @_C+ * ロ長調 嬰ト短調 + @_A+ @_G+ @_F+ @_D+ @_C+ * 嬰ヘ長調 嬰ニ短調 + @_A+ @_G+ @_F+ @_E+ @_D+ @_C+ * 嬰ハ長調 嬰イ短調 + @_B+ @_A+ @_G+ @_F+ @_E+ @_D+ @_C+ * ヘ長調 ニ短調 + @_B- * 変ロ長調 ト短調 + @_B- @_E- * 変ホ長調 ハ短調 + @_B- @_A- @_E- * 変イ長調 ヘ短調 + @_B- @_A- @_E- @_D- * 変ニ長調 変ロ短調 + @_B- @_A- @_G- @_E- @_D- * 変ト長調 変ホ短調 + @_B- @_A- @_G- @_E- @_D- @_C- * 変ハ長調 変イ短調 + @_B- @_A- @_G- @_F- @_E- @_D- @_C- `@%` - 名称:臨時本位記号(ナチュラル) - 説明: * @%を指定した音符から小節の終わり(小節区切りの' コマンドまで)において、@%の次にある音符をナチ ュラルとします。但し@%を指定した音符のオクター ブの音符のみ有効です。 * @%の後には必ず音符がくる必要がありますが、<>の 指定(複数可)または"{"(連符)は許されます。 - 例: * `@_C+ cdecdecc ' @%cdecde @+cc '` * `→ c+dec+dec+c+ ' cdecdec+c+ '` * `@## <cde }4 @%e @%<]CDEFGAB[+-]` - 説明:`_C`で基本です。`_>C`とすると1オクターブ上昇、`_C`となります。 * `_>>E`では同様に、`>>EFFF+GAA+B>CCC+D`となります。 `O` - 名称:オクターブ - パラ:`Onum` - 説明:num は1 ~ 9までです。PCM 音源では1 ~ 5まで、リズム音源では無意味です。 - 例:O6 - 他:デフォルトはO4です。O9はTracePlayに対応していません。 `>` - 名称:オクターブ上昇 - 説明:現在のオクターブを1つ上げます。 - 例:CDEFGAB>C - 図解:以下の記号があった場合もつけます。 * D>D C E D D E F E A G D CC `<` - 名称:オクターブ下降 - 説明:現在のオクターブを1つ下げます。 - 例:CD C>D CC `L` - 名称:デフォルトの音の長さ指定 - パラ:`Lnum` - 説明:numは音符のnumと全く同じですので音符の項を参照して下さい。 - 例:L16 - 他:デフォルトはL4です。 `Q` - 名称:発音割合(ゲートタイム) - パラ:`Qnum` - 説明:numは1 ~ 8までです。Q8で音符の長さの時間ずっと発音し ています。Q1では最初の1/8 のみ発音します。 - 例:Q6 - 他:デフォルトはQ7です。リズム音源では無効になります。 またPCM音源ではデフォルトはQ8になります。 `@Q` - 名称:キーオフの前倒し - パラ:`@Qnum` - 説明:Qコマンドと異なり、numで指定した音長だけキーオフを早 めます。numの範囲は1 ~ 192です。発音音長より長い値を 指定した場合は192 分音長で発音します。 `@POR` - 名称:ポルタメント - パラ:`@POR[num1]` 開始音符 終了音符 `[num2]` - 説明:num2は音長です。開始音符から終了音符までの周波数を円 滑に連続して演奏します。num1はポルタメントを開始する まで待機する音長です。無指定ですとすぐにポルタメント ほ開始します。 - 例:`@por @+>c>>d+2^16@por8. cg2` - 注意:`@por c>>>>c` というように、あまりポルタメントの範囲を 広く取りすぎると周波数の変移が高い所と低い所で異なっ たりします。通常1オクターブ以内で分割するのが実用的 です。@PORをWで置き換えることも出来ます。 `@SL` - 名称:スライド - 説明:ギターなどでよく用いる前スライド演奏です。音符の前 に@slコマンドをつけます。実際の演奏は、指定音符より 低いか高い音階からポルタメントで指定音階に移るものです。 - 例:@slc4. `@SLS` - 名称:スライドの早さとレベル指定 - パラ:`@sls [-]num1,num2` - 説明:num1はスライドのレベルです。-をつけると低い音階から 開始します。num2は早さで、音長を指定します。 ##### テンポ、FM音源の音色に関するコマンド `T` - 名称:テンポ - パラ:`Tnum` - 説明:numは16 ~ 3907 までです。約400 以上では実際のテンポよ り遅くなりやすい傾向があります。全チャネルで同じ値を使用します。 - 例:T120 - 注意:実際に設定されるテンポは、3289, 3472, 3676, 3907 といっ たように62500 の約数のみです(指定は自由にできます)。 - 他: デフォルトはT120です。 `@ACCEL` - 名称:アチェレランド(Accelerando, Stringendo) - パラ:`@ACCELnum1,num2` - 説明:num2 の音長の間にnum1 分テンポを速くします。 - 注意:テンポの値の範囲は16 ~ 3907の間のみです。 - 例:`@accel30,1^1^1` `@RIT` - 名称:リタルダンド(Ritardando, Rallentando, Slentando) - パラ:`@RITnum1,num2` - 説明:num2 の音長の間にnum1 分テンポを遅くします。 - 例:`@rit25,1^2.` `@` - 名称:音色設定 - パラ:`@num` - 説明:numは0 ~ 255まで。そのうち90 ~ 99と229 ~ 255はユーザ指 定領域、100 は音色エディタ用の作業領域です。拡張音色 の256 ~ 632はMMLには指定できません。 - 例: @50 - 他: デフォルトは@0です。SSGには使用できません。リズム 音源として@0 ~ 63(@1がバスドラム、@2がスネアドラ ム、@4がトップシンバル、@8がハイハット、@16がタ ム、@32 がリムショットで加算して指定可能)、PCM音 源として@0 ~ 69(@5 0以降はユーザ登録領域)も指定可能です。 `@xx=` - 名称:音色番号の置換 - パラ:`@num1=num2` - 説明:以降の@コマンドでnum1の音色を指定した場合、num2を設定します。 `Z` - 名称:音色のユーザ指定 - パラ:`Z@ x 1, @ x 2 (:), [I,] [E,FB,] CN(:)`, * AR, DR, SR, RR, SL, TL, KR, MP, DT(:),(OP- 1) * AR, DR, SR, RR, SL, TL, KR, MP, DT(:),(OP- 2) * AR, DR, SR, RR, SL, TL, KR, MP, DT(:),(OP- 3) * AR, DR, SR, RR, SL, TL, KR, MP, DT(:),(OP- 4) - 説明: * x1 は複写元、x2 は複写先の音色番号です。複写先音色番号 は一般に@90 ~ @99か@229 ~ @255 を使用します。 * (:) とは、その部分に:を指定するとそれ以降のパラメータ を省略できます。","や":"の間にスペース、タブなどか含 まれていることが許されます。 * "E"指定をするとFB とCN を分けて設定できます。エディタの ^Z コマンドではこの形式で表現されます。 * このコマンドは音色パラメータデータを書換えます(TONE. DTAのファイルは書き換えない)ので、ユーザ指定領域以外 に複写先を指定した場合は MUAP98 /@ として元に戻して下さい。 * "i" 指定するとパラメータ係数をn88basic(86)のVOICE (x, x) パラメータと同じにします。つまりAR, DR, SR, RR, SL, TLの大 小関係を逆にします。省略するとPC-8801のCMD VOICE(x,x) と同じ関係になります。 * "E"指定した場合 FB = 自己帰還(0 ~ 7), CN = 接続(0 ~ 7) * "i"指定または無指定の場合 CN = 自己帰還×8+接続(0 ~ 63) * 自己帰還(Self-feedback)はオペレータ1のセルフフィー ドバックで0~7まで、7が最大、その値×8に接続(0 ~ 7) の値を加算します。接続の形状は以下の通りです。 * Diagram: + (0) OP1 * OP2 * OP3 * OP4 + (1) (OP1 + OP2) * OP3 * OP4 + (2) (OP2 * OP3 + OP1) * OP4 + (3) (OP1 * OP2 + OP3) * OP4 + (4) OP1 * OP2 + OP3 * OP4 + (5) OP1 * OP2 + OP3 + OP4 + (6) (OP1 * OP2) + (OP1 * OP3) + (OP1 * OP4) + (7) OP1 + OP2 + OP3 + OP4 残りのパラメータは下記の意味を持っています。また、こ のパラメータを省略すると@x1のデータが用いられます。 ``` AR= アタック係数 (0 ~ 31) 0が最も長い (note) DR= ディケイ係数 (0 ~ 31) 0が最も長い (note) SR= サスティン係数 (0 ~ 31) 0が最も長い (note) RR= リリース係数 (0 ~ 15) 0が最も長い (note) SL= サスティンレベル (0 ~ 15) 0が最も大きい (note) TL= トータルレベル (0 ~ 127) 0が最も大きい (note) KR= キーレイト深さ (0 ~ 3) 3が最も深い MP= マルチプル (0 ~ 15) 15 が最も高い DT= ディチューン (-3,-2,-1,0,1,2,3) ``` Note: のパラメータはi指定で大小関係が逆になります。 ◎ TL,AR,DR,SR,SL,RRの関係 (diagram of ADSR envelope) - 他:エディタの`^[Z]`を参照のこと。 ##### はじめてのみゅあっぷ(謎) ###### (1) まずはインストール とりあえずパソコンの電源を入れな いといけません。但し、FM音源ボード (内蔵していれば可)の無いものや、 PC-9801U より前の機種は使用できません。 で、MS-DOS を立ち上げて例のプロ ンプト(A>)が出たところで空いてい るドライブに買ってきたみゅあっぷの ディスクを入れます。入れたドライブ がBの場合は、カレントドライブに移 す意味で「B:」と入力します。 あと、インストール先のディスクを 入れて(ハードディスクならそのまま)、 ここで「I N S T 」と入力します。起動 すれば、メッセージに従ってドライブ 名・音源の種類を入力していけばOKです。 ###### (2) では常駐 インストールが成功すれば自動的に 常駐してメニューが表示されます。そ して「バーン」という最初だけの音が 出ます。 不幸にも出なかった場合は発生した エラーメッセージを頼りに頑張ってく ださい(非道)。 ###### (3) ちょっとした曲を作ろう という訳でめでたくメニューが出た 場合、[E] のキーを押してスクリーンエ ディタに突入します。もうMML の世界 は音符とか休符の絵は出ませんのでそ の点は我慢してください。ちょっとだ け慣れれば絵を見るよりもよっぽど早 くなります。 それはともかく、とりあえず「ドレ ミファソラシド」をピアノの音で演奏 させましょう。 スクリーンエディタには_V3.0# と出 ていますがそれはそのまま残して、そ の次の行に以下のとおり入力して下さ い。 `1[ @3v11 cdefgab>c ]` 詳しい解説ですが、まず1 [ とはチャ ネル1でのMML指定を意味します。最 後の]で指定の終了を意味します。 そして@3が音色指定です。音色の一 覧はここでファンクションキーの10を 押すと出てきますので参照してみて下 さい。@3ですからアコースティックピ アノになります。 次のv11 は音量を指定します。v命令 では0 ~ 15 まで指定できます。最後の cdefgab >c がドレミファソラシドに該当 します。cdefgab は音符でそれぞれドレ ミファソラシに対応します。>はオク ターブを1つ上げるコマンドで次のcの オクターブを1つ上にします。 ###### (4) 変換&演奏 [ESC] キーでメニューに戻り、[A] の キーを押してAssembleを実行します。 ここでエラーが出なければOKですが、 もしエラーがでればもう一度Editorを 実行すればエラーの発生した箇所にカ ーソルが移動しています。 そして、[P] のキーを押せば演奏が開 始され「ドレミファソラシド」と演奏 されます。音が出ない場合はスピーカ との接続や音量をチェックして下さい。 ##### 音量、レジスタ出力、LFO 、歌詞表示、変数に関するコマンド `V` - 名称:音量 - パラ:`Vnum` - 説明:numは0 ~ 15までです。 - 例:V12 - 他: デフォルトは@V110(V10)です。 `@V` - 名称:音量の細かい設定 - パラ:`@Vnum` - 説明:numは0 ~ 127までです。 - 例:@V125 - 他:SSGはハード的に音量が0 ~ 15までしかないので@Vで指定 しても余り意味はありません。 `V=` - 名称:音量の記号指定 - パラ:V=ppp, pp, p, mp, (null), mf, f, ff, fff: (最後に:を付けます) - 説明:楽譜記号がそのまま使用可能です。pppからV7, V8, ・・・, V15 に対応しています。 - 例:`V=mf: V=:` `V=+` - 名称:音量の一括変移 - パラ:`V=+num` - 説明:音量指定コマンド(V,V=,@V)で指定した音量を、指定 チャネルにおいて一括してnum分上げます(@Vの値に対 して)。変移後のデータが@V127を超えるとエラーにな ります。チャネル別に音量のバランスを取る場合に便利です。 - 例:V=+2 V=mf: V13 なら@V119 @V121となります。 - 注意:一括変移はアセンブル時に行ないますので他チャネルにジ ャンプする場合は注意が必要です。 `V=-` - 名称:音量の一括変移 - パラ:`V=-num` - 説明:V=+コマンドの反対で一括して音量を下げます。 - 例:V=-3 V=f: V15なら@V116 @V122となります。 `V+` - 名称:現在の音量から相対的変移 - パラ:`V+num` - 説明:現在の音量から@Vの値でnum分上げます。また、()nル ープの中に指定しても相対で音量が上がります。@V127 より大きくなると@V127に固定されます。 - 例: * `1[ @5v1 ( c64~ v+2 )30 ] ; だんだん音量を上げる` * `4[ p0v1 ( c64&& v+3 )18 ] ; SSGでは&&にする` `V-` - 名称:現在の音量から相対的変移 - パラ:`V-num` - 説明:現在の音量から@Vの値でnum分下げます。後はV + と同じ。 `@<` - 名称:クレシェンド (Crescendo) - パラ:`@<[<・・<]num` - 説明:音量を段々大きくします。numは@<を指定してから終了す るまでの音長です。これは音長の指定と同様で"^."が使 用可能です。"<"1個でnumの期間に音量を+1します。 - 例: * `v10 @<<<<1^1 L4 cdefgab>c` * `→L4 @v111c@v112d@v114e@v115f@v117g` * `@v118a@v120b@v121>c` - 他:途中で音量の指定(v,v=,@v)をしますとそこで中断されま す。また音量が@V127以上になると頭打ちになります。 また、@<<1 ( c8d8 )4 としても音量は鋸状態になるだ けです。まじめにL8 @ <<1 cdcdcdcdとしましょう。 単音の音量をグ~ッと上げる場合、@LFO A,2,1,127とい うようにワンショットLFOを使用した方が便利です。 `@>` - 名称:デクレシェンド (Decrescendo) - パラ:`@>[>・・>]num` - 説明:@<の段々弱くするバージョンです。 - 他:音量が@V80(V1以下)となると@V0にされます。これ はV0からV15までの音量が@V0,@V83,@V86,・・・,@V125 に対応しているからです。 `Y` - 名称:レジスタへのデータ出力 - パラ:`Y adrs,data` - 説明:音源の石に直接データを出力します。 adrsがアドレス、dataがデータ。両者とも10進数で指定 します。チャネル1 ~ 6ではYM2203互換ポートに、7以降は 拡張ポートに出力します。 - 例:`Y176,5` `H` - 名称:レジスタへのデータ出力 - パラ:`Had, dt` - 説明:Yコマンドと機能は同じです。adがアドレス、dtがデータ で両者とも1 6 進数2桁で指定します。 - 例:`Hb0,05` `;` - 名称:コメント - 説明:この行の右端までコメントとみなし、アセンブルを停止します。 - 例:`1[ cde ] ; test data` `$` - 名称:マクロ置換の指定 - パラ:$word $word[,num1[,num2[,・・・num9]]] - 説明:wordは32文字までの文字列です。指定しますとソースの中 から$word[ ]の部分を捜し、置き換えます。さらに、指定 するときに後ろにカンマで区切ってパラメータの値を9個 まで指定できます。$word[ ]で数字の部分を¥1~¥9で指定 するとその番号のパラメータに置き換えてアセンブルされ ます。¥変数の範囲は0 ~ 65535までです。変数として音長 専用の文字("^",".")も指定可能です。 - 例:`$test[ CDE ] $data[ AB>C ]` * `1[ @5V10 $data $test $data(_D) ]` * `→ 1[ @5V10 AB>C CDE B>C+D ]` * `$bass[ ( @0c@¥2c¥3 )¥1 ]` * `11[ @v30 $bass,4,20 $bass,16,17,8^32 ]` * `→ 11[ @v30 ( @0c@20c )4 ( @0c@17c8^32 )16 ]` * BASICのMMLから移植する場合やドラムパートによく用います。 - 注意:基本的なネスティングは10レベルまでです。但し通常の 変数のネストは3レベルまで、音長変数はネスト不可です。 区切り文字はスペース、タブ、改行、"$"になります。 `@QL` - 名称:1文字マクロ文 `@QS` - 説明:英文字の大文字(@QL)または小文字(@QS)のみをマ `@QX` クロ置換と認識し、展開します。この場合先頭の"$"や、 後ろの区切り文字は不要になります。解除するには@QX と指定します。 - 例: * `$B[ @0@v40@m c¥1 ]` * `$S[ @17@v45@m c¥1 ]` * `$T[ @3@v43@l g¥1 @m c¥1? @r ]` * `11[ @ql l8 ( BS )4 ( B16B16S )2 BBT,4 ]` * `→ 11[ ( @0@v40@mc8 @17@v45c8 )4 ( @0@v40c16c16 @17@v45c8 )2 @0@v40c16c16 @3@v43@lg8@mc8?@r ]` - 他:音色・音量・パンの設定値は直前の値と同一であれば展開 しないので、無駄なコードは生成しません。ソースレベル デバッグでは、1文字マクロ内部はトレースしません。 また、1文字マクロキャッシュを持っていますのでアセン ブル速度は$マクロ置換よりも高速です。 `@XASM` - 名称:アセンブル禁止 - 説明:現在のチャネルにおいて、これ以降のアセンブルを禁止 します。一般にソースファイルの前の方に記入して未使 用のチャネルを飛ばしてアセンブル速度を早めます。 - 例:`7-10[ @XASM ]` `@DT` - 名称:ディチューン - パラ:`@DT[-]num4[,num3,num2,num1]` - 説明:音階を一定量ずらします。num4の値が大きいほど変化が大 - きくなります。"-"を付けると音階を下げます。チャネル 3ではパラメータを4つ指定することで効果音モードを利用 した複数ディチューンが使用できます。num1から順番にオ ペレータ1 ~ 4に対応します。主にハーモニー部分に指定し てトレモロ効果を出すのに使用します。 `@DS` - 名称:ディチューンベースの設定 - パラ:`@DSnum4[,num3,num2,num1]` - 説明:@dtによるディチューンのかかり具合を大まかに設定しま す。デフォルトは@DS5です。パラメータの値が0 ~ 15では 値が大きいほど効きが鈍くなります。1増えるごとに半分 の変化率になります。16 ~ 31では逆に1 増えるごとに効き が強くなります。強い方から並べると、31 ~ 16, 0 ~ 15とな ります(16と0は同じ)。@dtと同様、パラメータを4つ指 定するとチャネル3の効果音モード用に各オペレータ別々 に設定できます。 `@SD` - 名称:システムディチューン - パラ:`@SD[-]num` - 説明:基本的には@DTと同じ機能です。@SDはアセンブル時に ディチューンを音階に加味するのではなく、演奏データの 周波数値を再度変移させます。このため、グローバルジャ ンプで他のチャネルに飛んだ場合にのみ使用します。ベー ス値は5固定で、複数ディチューンの機能はありません。 Note: ディチューンの変移量について 周波数変移(%) = 0.0488 × @dtの値(@ds5の場合) = 0.781 × @dtの値(@ds1の場合) 計算式では以上のようになります。@dsを変更する場合はそれに従って倍 々ペースで変更して下さい(@ds6の場合は係数が0.0244)。また、LFOは base=2の場合@ds1として計算します。 チャネル3,14での効果音モードを用いたOPM(X68000のFM音源)のDT2 エミュレートが可能です。 (例) - 1.414倍 = @ds0 @dt90 - 1.732倍 = @ds0 @dt110 - 2.000倍 = @ds17 @dt64 `@COM` - 名称:歌詞表示 - パラ:`@COM[[X[n]=]num] "文字列"` - 説明:numは( )nのループコマンドの現在のループ回数と一致し たときのみ表示させる時に指定します。0または無指定な らば常に表示します。 * @COM Xn=num "・・・" で条件値に変数Xを使用することがで きます。変数はX,X1 ~ X9が指定できます。また文字列は最 大72バイトまでです。 - 例:@COM"上目づかいに視線を見ている" * `( @COM1"これは1回目"` * `@COM2"これは2回目"` * `cdefgab )2` - 注意:文字列の中に"|"という文字を含むことはできません。 漢字は使用可能です(2バイト半角は未対応)。 `@CSI` - 名称:色変わり歌詞表示モード設定 - 説明:レーザーカラオケのように(笑)現在演奏している歌詞 から色を変えて表示する機能です。このモードでは@com で歌詞を出力すると紫色で表示されます。そして音符・ 休符・コードネームの前にスペースがあると、その数だ けの文字を白色に変えます。 - 例: * `1[ @csi @com"ダイエットもぐもぐ"` * `△e4△e4△△f8△e2△△d8△c8<△b8△a8> ]` * (△ をスペースとします) `@CSO` - 名称:色変わり歌詞モード解除 - 説明:@csiの反対です。@csoを実行しても、変色位置はそのままです。 `@CSC` - 名称:色変更位置の移動 - パラ:`@CSC[num]` - 説明:歌詞表示の色変更位置をnumの文字数だけ右に移動します。 255だと逆に左に1つ移動します。通常は@csiで述べたよ うにスペースの数で設定しますが、数が多い場合はこの コマンドを使用します。numを省略しますと、右端に移動します。 `@XCOM` - 名称:歌詞出力の禁止 - 説明:メロディーパートを複数で指定した場合、同じ歌詞を2つ のチャネルで出力するとムダですので片方のMMLの先頭に このコマンドを指定します。 `Xn=` - 名称:変数への即値代入 - パラ:`X[n]=num` - 説明:変数Xにnumの値を代入します。変数はX,X1 ~ X9の10種類 が各チャネル別に使用でき、numの範囲は0 ~ 255です。 - 例:`1[ x=1` * `@label1 @com x=1 "歌詞1" @com x=2 "歌詞2" cdefga` * `x=x+1 @if x<3 jump1 >c!]num1 JUMPnum2` - 説明:@IFnum1 JUMPnum2と指定した場合、この命令の一番近い ()命令のループカウンタの現在ループした回数と一致し た場合にジャンプします。num1はループした回数と同様 1,2・・・となります。 また変数X,X1 ~ X9も条件値として使用できます。この場 合演算式として=,<,>,! が使用可能です(例を参照)。 num2は0 ~ 31までの@LABELで指定したラベル番号です。 - 例:( @IF3 JUMP0 )10 でループが最初から3回目でジャンプします。 * `( cde @if2 jump0 efg )2 @label0 @pop egeg` + `→ cde efg cde egeg` * @if x=3 jump5 変数Xが3の時ジャンプ * @if x5>10 jump2 変数X5が10より大きい時ジャンプ * @if x9<6 jump15 変数X9が6より小さい時ジャンプ * @if x1!5 jump0 変数X1が5以外の時ジャンプ - 他:楽譜の反復で終わりが異なる場合、またD.C., D.S. に使用 します。必ず( )コマンドと併用して下さい。 また、他のチャネルにジャンプすることはできません。 - 注意:ループの中からループ外に飛ぶときは演奏スタックを一致 させるために@pop命令を実行して下さい。一般にループか ら脱出する場合は@/や@if exit命令を使用して下さい。 `@IF CALL` - 名称:演奏データレベル条件コール - パラ:`@IF[X[n]=<>!]num1 CALLnum2` - 説明:@IF JUMP のサブルーチンコール版です。引き数、演算式 は@IF JUMPと同じです。 - 例:`( cde @if1 call1 @if2 call2 )2 @jump3` * `@label1 efg @ret` * `@label2 ef+g @ret @label3 aaa` * `→cde efg cde ef+g aaa` * `( @if1 call1 @if2 call2 @if3 call3 @if4 call4 )4` * `@label1 cde @ret ; 1回目の演奏` * `@label2 fga @ret ; 2回目の演奏` * `@label3 bcd @ret ; 3回目の演奏` * `@label4 efg @ret ; 4回目の演奏` - 他:サブルーチンコールすると演奏スタックを2レベル消費し ます。ループ命令の数と一緒に注意してスタックをオーバ フローさせないよう注意して下さい。上記の例のような場 合ですと、@if thenコマンドを使用する方が便利です。 `@IF THEN` - 名称:演奏データレベル条件処理 - パラ:`@IF[X[n]=<>!]num1 THEN・・・ MML ・・・ @ENDIF` - 説明:同じく、条件が一致した場合にTHENから@ENDIFまでの コマンドを実行します。ネストも可能ですが、スパゲテ ィのように奇妙複雑なネストをするのはおすすめできません。 パラメータについては@IF JUMPと同様です。 - 例: * `x=1 @label1` + `cde @if x<2 then d4&e8 @endif` * `x=x+1 @if x<3 jump1 g4b4` + `→ cde d4&e8 cde g4b4` `@IF EXIT` - 名称:ループ外への脱出 - パラ:`@IF[X[n]=<>!]num1 EXIT` - 説明:( )n ループコマンドの中で指定します。条件が一致し た場合、ループの外へジャンプします。 パラメータについては@IF JUMPと同様です。スタックの 調整も行ないます。 - 例:`( cde @if2 exit (a16b16)2 )2 c2` * `→ cde a16b16a16b16 cde c2` - 他:よそのループに脱出することはできません。 `@JUMP` - 名称:演奏データレベル無条件ジャンプ - パラ:`@JUMPnum` - 説明:numは0 ~ 39までの@LABELで指定したラベル番号です。そ のラベル番号にジャンプします。3 2 ~3 9 はグローバルジ ャンプで、他のチャネルにジャンプするためのものです。 - 例:@JUMP21 - 他:デバッグの時に目的の演奏データをすぐ演奏させたい時 にも使用チャネルを全部JUMPする方法があります。 * `1-3,7-9[ @jump0 ]` * ... (デバッグ済みのMML)... * `1-3,7-9[ @label0 ]` * ... (デバッグしたいMML)... `@CALL` - 名称:演奏データレベル無条件コール - パラ:`@CALLnum` - 説明:numは@JUMPと同じです。指定した番号の@LABELへジ ャンプし、@RETコマンドで@CALLの次へ戻ります。32 ~ 39で 他のチャネルのに行って、@RETで戻ってくることも可能です。 - 例:`@CALL5` - 他:実行すると演奏スタックを2レベル消費します。ネストも 可能です(最大7レベル)。 `@LABEL` - 名称:ラベル定義 - パラ:`@LABELnum` - 説明:numは0 ~ 39までです。各チャネルで0 ~ 31まで別々に使用 可能です。32 ~ 39はグローバルジャンプのため、1つしか 定義できません。 - 例:`@LABEL0` `@RET` - 名称:演奏データレベルリターン - 説明:@CALLで呼び出された次の演奏データに戻ります。 - 他: 演奏スタックを2レベル戻します。ネストも可能です。 `@POP` - 名称:演奏スタックの調整 - 説明:ループ内を@jumpで脱出したときなど、演奏スタックが狂 うのをこの命令で直します。@callのサブルーチンコール では2回実行するとリターン番地を破棄できます。 ##### コードネーム関係のコマンド `@CODEIN` - 名称:コードネームモード指定 - 説明:チャネル3において指定すると効果音モードを使用したコ ードネームによる和音演奏ができます。 - 他:チャネル3以外では使用できません。 `@CODE` - 名称:コードネームの単音演奏 - パラ:`@CODEnum` - 説明:コードネームの4(3)和音のうち指定した音階のみを発 音します(numは0 ~ 4までです)。 * num=0: コードで構成される和音が省略形になってい ても強制的にコードの根音(ルート)を発音します。 * num=1: コードの和音の一番低い音階を発音します。 * num=2: num=1の次に高い音階を発音します。 * num=3: num=2の続きです。 * num=4: num=3の続きです。 - 他:どのチャネルでも使用可能です。@code1から4までを発音 させると@codeinと同じになります。 - 例:`4[ @code1 | @code2 | @code3 ]` `@BASS` - 名称:コードネームのベース発音 - 説明:コードネームで通常は根音、ベースがonXで指定されてい る時はその音を発音します。 - 例:`@bass C: Cm7onB-:`ならC B-と発音されます(ルート はC >C<となる)。 `@RT` - 名称:コード演奏のリズムパターン指定 - パラ:`@RT(num1,num2,・・・・,Rnum,num!,・・・)` - 説明:単一のコードネームを指定したリズムで演奏します。リ ズムパターンは小節区切り(')で最初に戻ります。num には音長`(48. 16^64)`及び休符記号`(R4 r8.)`、アク セント`(4! 8.!)`、逆アクセント`(4? 8.?)`が使用可能 です。@rt(0)で通常モードに戻ります。 - 例: * `@rt(2,4.,8) C:1 Cm7:1なら` + `C:2 C:4. C:8 Cm7:2 Cm7:4. Cm7:8` * `@rt(4) Esus4:1 D:4 EM7:4なら` + `Esus4:4 Esus4:4 Esus4:4 Esus4:4 D:4 EM7:4` * `@rt(r4., 8, r4., 16, 16)D: 1 なら` + `R4. D:8 R4. D:16 D:16` * `@rt(4,8,16!,r16)` - 注意:コードネームに対してのみ実行されます。普通の音符、 @W,@SCに対してはリズムは無視されます。 `@CODEOUT` - 名称:通常モードに戻す - 説明:@CODEIN, @CODE, @BASSと対で使用します。 - ◎ コードネームモードの注意点 * @CODEIN, @CODE, @BASSでコードネームモードにしま すと従来の音符コード(CDEFGAB)は使用できなくなり ます。またトリラー系コマンドも使用できません。 * コードネームの指定は大文字、小文字が区別されます。 但し音符部は区別されません。 * コードネームの終わりは":"で区切ります。またその後ろ に音長を指定できます。 * @_,@+,@-などの調音記号は無視されます。但し移調(_) は有効です。 * 重嬰音、重変音、本位記号(##,++,--,%)は使用できません。 * @codeinでの音色の指定(@)は@19,@20を指定するか、Z コマンドで指定します。他の音色番号を使用すると汚い 音になります(打楽器はそうでもない)。 * コードにもオクターブがあります。大譜表のヘ音記号に 記してある音符がベースであり、コードネームと対応し ているのでそれを参照してオクターブの上下を行なって 下さい(実際には余り< > を指定することはありません)。 * (例)`C: E-mM9:2. G+7sus4:4^16 C9(+11):` - ◎ コードネーム一覧 * 音符部(Cm7: ならCのこと)にはCDEFGAB#+-が指定でき ます。(例:G-sus4:) * 以下にコードネームの一覧を示します。その他の表記の方 はMMLとして使用できません。 - コードネーム その他の表記 ``` C : C △ Cm : C - C6 Cm6 : C-6 C7 Cm7 : C-7 CM7 : Cmaj7, C△7, C#7 CmM7 : Cmmaj7, Cm△7, Cm#7 Csus4 : C(4), C4 C7sus4 : C7(4) C(+5) : Caug, C+5, C(#5), C+ C(-5) : C-5, C(b5) C7(+5) : C7aug, C7+5, C7(#5) C7(-5) : C7-5, C7(b5) Cm7(-5) : Cm7-5, Cφ7, Cm7(b5) Cdim : Cdim7, C゚7, C゚ Cadd9 Cmadd9 C69 Cm69 C7(+9) : C7+9, C7(#9) C7(-9) : C7-9, C7(b9) C9 : C7(9) Cm9 C9(+5) : C9+5, C9(#5) C9(-5) : C9-5, C9(b5) CM9 : Cmaj9 CmM9 : Cmmaj9 C11 Cm11 C9(+11) : C9+11, C9(#11) C13 ``` - 他:和音の数が4を超えるコードはオペレータの数が不足する ため省略型にしてあります。 ##### トリラー(装飾音)関係のコマンド - トリラーコマンドの後には必ず音符を指定します(@scも不可)。但し <>または@+,@-,@%のコマンドのみ指定可能です。(@trn >>C @mor @+e) - パラメータ * `@TRN[%][-][+][num]` (全てのトリラーコマンド共通) + `%`: 上下の音(2度上の音、2度下の音)両方とも無条件にナチュラ ル(本位音)とします。 + `-`: 基音(コマンドの後で指定した音符の高さ)の1つ上の音にフ ラットをかけます。 + `+`: 基音の1つ下の音符にシャープをかけます。 以上、無指定の場合変音記号(@_,@+,@-,@%)が有効になります。 + num: トリル音の長さです。一般に32,48,64が使用されます。無指 定の場合32となります。 * Note: 和音指定した場合は当然全ての和音に装飾されます。 - 例 * `@TRN32 C4` = `d32c32c8^32` * `@MTRN- G4.` = `g4^16a-64g64f64g64` - コマンドと装飾記号 (diagram) - 演奏形態 (diagram) `@TRS` - 名称:トリル、アルペジョのデフォルト速度指定。 - パラ:`@TRSnum` - 説明:num=1 ~ 192までです。常識的にnum=24,32,48,64を用いま す。符点も使用可能です。各チャネル別に指定します。 ##### リズム・PCM 音源・パン関連のコマンド `@L` - 名称:左への出力指定 - パラ:`@L[,BSCHTR]` - 説明:パンを左に指定します。リズム音源では、後ろに音色を 必ず指定します。BSCHTRが順番にバスドラム、スネアド ラム、トップシンバル、ハイハット、タム、リムショッ トになります。 `@LM` - 名称:左中央への出力指定 `@M` - 名称:中央への出力指定 `@RM` - 名称:右中央への出力指定 `@R` - 名称:右への出力指定 `@MK` - 名称:左の位相のみを反転(定位のない広がりのある音像) `@MM` - 名称:左右の位相を反転 `@LK` - 名称:左は位相反転、右は半分の出力(@MKの左寄り) `@RK` - 名称:右は位相反転、左は半分の出力(@MKの右寄り) - 説明:@Lの左中央・中央・右中央・右バージョンです。@L,M,R 以外はPC-9821(86B)PCM音源でのみ使用できます。 `@PAN` - 名称:パンの指定 - パラ:`@PAN LMR[,BSCHTR]` - 説明:機能については@L,@M,@Rと同様です。PC-9821(86B)PCM の場合はパラメータにLMとRMなども指定可能です。 `@AP` - 名称:オートパン - パラ:`@AP([LMR][LMR]・・・)` - 説明:以降の音符、@sc命令、コードネームごとにパンを括弧 内で指定したパンの順番に振ります。休符では切り換わ りません。パンの指定があるとそこで停止します。 オートパンはLM・RMなどの指定が出来ません。 - 例: * `11[ @29v5l12 @ap(lmrm) gggccccな どとして発音できます。O4Cがサンプリング16KHzの時と一致します。 - ◎ PCM連続発音 * FM音源でのタイと同様に、"~"コマンドを指定すると次の音符とつないで 発音します。 - ◎ PCMその他 * PCMでの周波数LFOや、ポルタメントも可能にしました。PCM音源では FIFOが入っている分、分解能が悪くなります。 - ◎ ユーザPCMデータの登録 * デフォルトのPCMではどうしても物足りないという貴兄のために(笑)さ らにユーザPCMが使用できます。 - PCMファイルを環境変数UDPのディレクトリまたはその1つ下の階層の ディレクトリに格納します。 - 任意のチャネルで(例えば12)、`12[ @50 "cweek_hi.p" ]`などと指定 します。@の後の番号は音色番号で、50 ~ 99までがユーザ領域になりま す。その後にPCMファイル名を" " でくくって指定します。 - アセンブル後、または演奏ファイル(*.OX)読み出し後にPCMの登録を 行ないます。同一のファイル名で同じ音色番号がすでに登録されてい る場合は登録しません。 - `NAX.COM`でもユーザ登録可能です。 楽譜のリズムパートの例 (diagram) ##### SSGPCM に関するコマンド `@SSG` - 名称:通常SSGモードへの切り換え - 説明:SSGPCMモードから通常モードに戻します。 `@PCM` - 名称:SSGPCMモードへの切り換え - 説明:チャネル4 ~ 6をPCM音源として使用します。 `@xx"・・・"` - 名称:SSGPCMへのPCM登録 - パラ:`@num1 "pcmfile"[,num2]` - 説明:num1 はPCM 音色番号で、0 ~ 19 までの値を使用します。 PCMバッファの容量は初期値で32KBで、64KBまで使用可 能。pcmfileはユーザPCMのファイル名で、PCM音源と 同じADPCMファイルを指定します。num2は音量で、0 ~ 127まで の値を使用します。無指定の場合は16となります。 * 例:`4[ @pcm @0"kick1.spb",22 @1"mbsd1" ( @0c4@1c8c8 )4 ]` ###### SSGPCM音源について PCMモードにすると、LFO・音量・ゲートタイム・ノイズ・エンベロープの 指定は全て無視されます。音色を@で指定して(0 ~ 19)、音符(CDEFGAB) と音長を指定して下さい。但し、チャネル4以外では音階はO4C固定です。 SSGPCMとは、SSGのDACに直接PCMデータを出力することで、簡易的な3 チャネルのPCM音源を実現しています。再生周波数は8KHzで、DACの分解能は 5.5ビットになっています。CPUの処理速度を要求しますので、最低でも286- 10MHz程度のものを使用して下さい。また、インターバルタイマを使用して いるため、他のアプリケーションでもそれを使用すると音がでなくなったり、 ハングアップすることもあります。基本的に他のソフトを実行しながら演奏す る場合は予め動作を確認して下さい。 ###### Windows Sound System PCM音源について PC-9801-86音源と同じ様にPCMが7チャネル使用できます。このPCM音源の ために別途割り込みとDMAを使用しています。使用する割り込みはINT0固 定、DMAは# 0 か# 3 のいずれかと考えて下さい。DMAについては/ M オプション で変更できます。またI/O再配置機能には対応しておりません。 ``` 使用割り込み FM音源(YM2608) INT5 PCM(CS4231) INT0 使用DMA #3(または#0,#1) ``` DMAチャネル3にはもともと640KBフロッピーディスク用として使用さ れています。このためかどうか不明ですが、SRN-Fを使用した場合で演 奏を停止させるとフロッピーにアクセスできない現象があります。これ については対応する予定はなく、ご容赦下さい。 ##### 効果音に関するコマンド `@CH` - 名称:効果音演奏チャネルの変更 - パラ:`@CH num` - 説明:NAX II で効果音発音時のみ使用するチャネル用にアセン ブルするために指定します。詳細は次の@SRET参照。 `@SRET` - 名称:効果音発音前の状態に戻す - 説明:NAX II で割り込み効果音(通常演奏しているチャネルを 効果音発音時のみ切り換える)を使用する場合に使いま す。効果音終了時に音色・音量などを元に戻します。 - (例) * `1[ @13v12 @label0 ceg>c @jump0 ] ; メイン演奏` * `12[ @stop @ch1 @16v15 (c32g32)8 r192 @sret ; 効果音1` * `@stop @ch1 @38v13 @por c>c r192 @sret ] ; 効果音2` - Note: 制約事項 * 異なる音源のチャネルを演奏する場合(`7[ @ch4 ]`など)、 以下のチャネル構成は使用できません。 + `1-3,7-11,13-17[ @ch4 ~ @ch6 ]` + `4-6[ @ch1 ~ @ch3, @ch7 ~ @ch17 ]` * (@ch4 ~ 6へ出力するには12チャネルのみ使用が許されます) - Note: @sret命令で戻す内容 * FM,PCM: 音色・音量・パン * SSG: 音量・エンベロープモード * RHYTHM: 音量 ### 第六章●MMLその他の注意点 ##### ◎ エラーについて MMLアセンブラでもやはり(?)エラーはつきものです。以下各エラーにつ いて解説します。 - ()ループ回数 * ()numで指定したnumの値が異常です。numは1から255までです。 - 演奏バッファ領域不足 * 演奏データが大きすぎます。演奏バッファをもっと広く指定して下さい(最大は64KBまで)。 - ()ループネスト(15まで) * ()numのループネストが16以上あります。それ以上は指定できません。 - 連符データ * 連符の{}の中に無効なデータがあります。MMLの解説を参照して下さい。 - 連符回数 * 連符の{}の中にある音符の数が多すぎて1個の音符の音長が得られません。 - パラメータ範囲 * 各コマンドのパラメータ(数字)の範囲が規定値から外れています。 - 無効な調音記号がある * コードネームなどで@++, @-- などの指定不能な物を指定しました。 - リズムパターンの数が多い * @rt()では32パターンまでしか指定できません。またr8,8! は2パターン消費します。 - コードネームが存在しない * C:などで存在しないものを指定しました(Cm8:など)。 - 和音番号 * @harmでは@harm0 から@harm15までの範囲でなければなりません。 - 和音が音符でない * c/d/e: の指定でc/r/e: など休符や音長は途中に指定できません。 - @si/@soがネストした * @si・・・@soで、@soを忘れて@siを指定すると発生します。 - ループの()が不一致 * "("を指定して")"を指定し忘れた場合最後になってエラーが出ます。一番最後に指定した"("が犯人です。 - パラメータに数字以外 * 10進数の数字を指定すべき所で数字以外の文字、または無指定にした時に発生します。 または@で始まるコマンドで該当する命令がない場合にも発生します。 - 総合音長が超過した * 装飾コマンドで装飾の音長(短打音)が長いため全体の音長が不足した場 合に発生します。例えば@mtrn c16で 発生したら@mtrn48 c16としてみます。 - 3,14CH以外で@codeinか@dt の複数パラメータ使用 * 効果音モードはチャネル3,14のみしか使用できません。 その他のチャネルは@codeを使用して複数チャネルでコード演奏するなどして下さい。 - コマンドの後が音符か<>か @+-%でない * トリラーコマンド、和音、ポルタメントでは@trn l4 dといったように コマンドの後ろに他のコマンドを記述することはできません。 - ポルタメントの範囲が広い * @por c>>>>cなどとしてやたらに広く取るのは実用的ではありません。 * @por c>c~ @por c>c~ ・・・のように分割して記述して下さい。 - $置換先が存在しない * $wordの指定で$word[ ]が見つからなかった場合に発生します。 - $置換のネスト数(10まで) * $1[ $2 ] $2[ $3 ] というようなネストは10レベルまでです。 - $置換に用いた文字列の長さ * $wordのwordの文字列長は32文字までです。 - チャネル10でポルタメント指定 * リズム音源ではポルタメントは物理的に使用できません。 - 移調データ * _<>C+などで_Oというように妙な文字を指定した場合に発生します。 - 移調によるオクターブ値 * 移調によって音符のオクターブがO1 ~ O9の範囲外になった時に発生。<>の指定ミスによることが多い。 - ()外に@if命令がある * ループ回数指定の@ifコマンドは()内にのみ指定します。 - @label開始位置未設定 * @jumpや@callで指定した番号の@labelが存在しません。 - @jump,@call無限ループ * @label0 @jump0 のように指定すると無限ループとなってハングアップするためエラーにしています。 - 調音記号の音符データ * @ +C, @-Aなどで@+などの後ろに<>または音符以外の文字があります。 - Zコマンドパラメータ * Zコマンドで"," や":" などの指定が異常です。またはチャネル4 ~ 6でZコマ ンドを指定したか、違うオペレータ数のZコマンドを混同して使用しても発生します。 - V=:の無効記号による * V=: にはpppからfffまで指定できますがpfなど他の指定をしたときに発生します。 - 音量の範囲 * V=+, V=-の変移指定で@v0 ~ @v127の範囲をはみ出しました。 - 文法上 * Syntaxerrorそのものです。 - 歌詞データ * @COMコマンドで指定する歌詞は72文字までです。 - MMLバージョンが異なりますが強行します * 正しいバージョンコード(_Vx.x#)を記述して下さい(アセンブルは実行されます)。 - @IF THEN/EXITのネスト * @if then ・・・ @endifで入れ子指定をしたりすると発生します。 - PCMのオクターブ範囲 * PCMではO1CからO8Aまでです。 - オートパンパターン指定数 * オートパンは16パターンまでです。 - PCM,リズムに@SD指定 * システムディチューンはFM, SSGのみ使用可能です。 - ユーザPCM指定のファイル名異常 * ユーザPCMファイル名が11文字を超えている場合などに発生します。 - マクロ変数パラメータ不足 * マクロ置換に要求するパラメータ数が不足しています(音長を除く)。 - 拡張PCMの指定はch11以外 * @PCMx命令はch11には使えません。 ##### ◎ n88basic MML との相違点 n88basic(86) に存在して、みゅあっぷ98/ivで使用できない、または仕 様の異なるMMLを以下に示します。ただしみゅあっぷ98/ivにのみ存在する MMLはあえて示しません。変換する場合に注意して下さい。 ``` コマンド MUAP98 n88basic(86) ------- ------ ------------ Mx 初期値の指定なし 初期値 255 Sx 〃 〃1 音出しはしない ENV時は音符の前にSを指定しないと発音しない Vx 初期値10 初期値7 Px SSG制御用コマンド Rxと同じで休符 ^ L8C^DとするとC4D8となる L8C^DとするとC8&D8(C8~D8) (C8+C8となる) となる(MUAP形式で表現) * 最初から演奏を開始する LFO効果を外す Zp,v パラメータが多い 指定チャネル音色パラ設定 Kx リズムの展開 xで指定した高さの音を発生 MF,MB 存在しない PLAY文の演奏形態 =,; 〃 MMLの変数による間接指定 ``` ##### ジャンプ系コマンドについて ( ), @if jump, @if call, @if then, @if exit, @jump, @call, @label, @ret, @/ は演奏データレベルでコール、ジャンプを行ないます。うまく活用する ことにより演奏データをかなり小さくすることが出来ます。楽譜の小節に 関する省略記号に対する各コマンドの使用法を述べておきます。 (diagrams) ### 第七章●各添付ファイルについて #### `MUAP98.COM` ##### ◎ 概要 実行するとみゅあっぷ98/ivが常駐されます。この状態でCALコマンドまた は[CTRL]+[3]キーにてメニューを呼び出せます。 メインメモリに常駐される部分は以下に説明するオプションによって変わってきます。 ##### ◎ オプションパラメータ説明 以下解説します。スイッチキャラクタの-は/でも可能です。大文字小文字 どちらでも構いません。また※はモード切り換え画面(メニューで`[HELP]`2回 押下)で変更が可能です。 `-A` EMSの使用を禁止する。通常EMSがある場合は-S,-Oのオプショ ンは無視され、バッファの容量は無条件にソース・演奏とも64KB 設定されます。またコードの実行はセグメント8600hにて行なわ れ、スワップ用にEMSを13ページ使用します。さらにメインメモ リは640KB実装されている必要があります。 `-Bxx` SSGPCMバッファの容量を指定する。デフォルトはxx=80で32KB。 xxは2桁の16進数(00 ~ FF)で指定し、xx00h確保される。 `-BU` SSGPCMバッファにUMBを使用する。最大容量は64KBまでで、 UMBの残りを全て使用します。-Bxxは無視されます。 `-C` `[CTRL]+[1][2][4]`キーによる演奏制御呼び出しを禁止します。 このオプションを付けるとINT09Hのベクタを書き換えません。 PC-286シリーズの初代, V, U では付けないと暴走します。 `-D` `[CTRL]+[3]`キーによるメニュー呼び出しを禁止します。このオ プションを付けるとINT 28Hのベクタを書き換えません。 `-E` Quitを選択した時、最初からG-VRAMを停止して終了するようにします。 `-Fn` フェードアウト速度を変更します(n = 0 ~ 9)。0が最も長くなり ます。デフォルトは-F4です。 `-G` MML-FEP・鍵盤表示の使用を禁止します(外字を使用しない)。 `-I` YM2203タイマAでの割り込み演奏中に、他の割り込みを禁止します。 但し、-I指定時の演奏中に外字登録すると登録抜けすることがあります。 `-Mx` DMAチャネルを指定する(WSS-PCMの時のみ)。xは0,1,3が指 定可能。他の周辺機器(HD,FD)のDMAとの衝突には充分注意すること。 `-NC` カスタマイズファイルのファイル名を変更します。デフォルト は-ncCUSTOM.MUAです。 `-NP` PCM.DTA,PCM.TBL,PCM.HLPのファイル名部分のみを変更する。 DTA,TBL,HLPの拡張子はそのまま固定。デフォルトは-npPCM。 `-NT` 音色データファイルのファイル名を変更します。デフォルトは-ntTONES.DTAです。 `-Oxx` 演奏バッファにメインRAMを使用(xx00H)します。-Oで指定し なければ16KB割り当てる。 `-P` 強制的にPCM.DTAを読み込みます。環境変数PCMのディレクト リを参照します。指定しない場合はADPCMメモリにヘッダコード "MP23" が存在しない場合のみPCM.DTAを読み込みます。 `-PC` PCMが登録されているかどうかのチェックのみ行なう。結果はプ ロセス終了コードに返します。 `-Q` MML-FEPで、音符を出力した時及び音階を変更したときにSSGよ り音階を発生することを禁止します(ビープ音のみ)。(note) `-QR` MML-FEPで、音階を変更した時にSSGの発音するのを禁止し、フ ァンクションキー鍵盤を使用可能にします(作曲モード)。(note) `-QS` MML-FEPで、音符出力時にスペースを出しません。 `-Sxx` ソースバッファにメインRAMを使用します(xx00H)。-Sで指定 しなければ16KB割り当てます。 `-T` 背景グラフィックモードを使用せずにテキストで表示します。 `-Vxx` YM2203タイマA割り込みベクタの番号を指定します。指定しな かった場合は自動で設定されます。ですから特殊なサウンドボー ドを使用する場合でのみ使用します。 設定ベクタ番号の範囲は0B, 10 ~ 17までです。これはμPD8259A の割り込み要求信号IR3,IR8 ~ IR14に対応しており、IR3は拡張バ スINT0、IR8から順番にセントロプリンタ、拡張スロットINT3(5"2HD)、 INT41(5"2DD)、INT42( 8"2D)、INT5、INT6、8087、無接続、に相当します。 `-Yx・x` 音源LSI制御用出力ポートアドレスを指定します。指定方法は -Yprt1[,prt2] で、prt1がYM2608側先頭ポートです。prt2はYM3438 側先頭ポートです。初期値は自動検索です。指定の際には必ず16進4桁の 数字で指定して下さい(例:-Y0188,0388)。 `-Z` ポート出力後にout 5fhのウェイトを挿入する。FM・リズム音源 の演奏に問題があれば設定してみます。 `-2` チャネル12 ~ 14をYM3438の代わりにYM2203で代用する。 通常は自動判定されますので指定しません。 `-3` PC-9821拡張PCMの使用を禁止します。スピークボードも存在す る場合で、スピークボードを使用したい時に指定します。 `-6` SSGPCMを16KHzモードで使用します。デフォルトは8KHz です。SSGPCMバッファを倍使用することになります。 `-8` 9821PCMのバッファ容量を1024KB確保する。初期値は512KB。 `-!` サウンドボードの有無に拘らず、強制的に常駐します。但し演 奏は実行されません。ノートパソコンで実行する場合に使用します。 `-#` メニューでのコマンドヘルプを表示しない。 `-(x` 9821PCMのサンプリング周波数を設定します。 ``` オプション 周波数 86B-PCM可否 WSS-PCM可否 ---------- ------ ----------- ----------- -(A 48.00KHz x o -(B 44.10KHz o o -(C 37.80KHz x o -(D 33.08KHz o o -(E 32.00KHz x o -(F 27.42KHz x o -(G 22.05KHz o o -(H 18.90KHz x o -(I 16.54KHz o x -(J 16.00KHz x o -(K 11.03KHz o o -(L 9.60KHz x o -(M 8.27KHz o x -(N 8.00KHz x o -(O 6.62KHz x o -(P 5.51KHz o o ``` `-?` パラメータのヘルプ表示をします。 ##### ◎ 常駐中のオプションパラメータ(複数指定は不可) `-@[file]` TONE(S).DTAの内容を常駐中の音色バッファに転送します。file にファイル名を指定するとそのファイルを読みこみます。 `-L` MML-FEPの前回のデータ(LASTDTA.FEP)を読み込みます。 `-P[path]` 演奏中にPCM.DTA,TBLを読み込みます。pathにパス名(拡張子の み指定しない)を指定するとそのパスから読み込みます。演奏しな がら実行する場合、演奏するデータにはチャネル1 1 の演奏指定をし ないで下さい。また、PC-9821(86B)PCMでは使用できません。 `-R` みゅあっぷ98/ivを常駐から切り離します。 `-S` MML-FEPの現在のデータをLASTDTA.FEPに書き込みます。 `-X` 常駐から切り離す際に、EMSに確保したPCMバッファを残しま す。次回常駐時にEMSのハンドル名MUAP_PCMを検索して存在す ればそのまま利用します。 `-?` パラメータのヘルプを表示します。 ### `NAX.COM` ##### ◎ 概要 NAXIIIとは、みゅあっぷ98/iv上で作成された演奏ファイルを演奏するため のYM2608+YM3438+PC-9821(86B)PCM音源用ドライバで、シューティング ゲームなどの効果音の発生にも便利なような機能も持っています。またユーザ PCM登録機能、EMSなしでも9821PCMへの対応(DSP機能つき)、YM2203単体 でもPCMが鳴らせるSSGPCMも搭載しています。 ##### ◎ 起動の際のオプション(-は/でも可です) `-A` PCMバッファにEMSを使用しないでメインメモリを確保する。xは 確保するメモリ容量で、32KB単位の1 ~ 8まで(32KB ~ 256KB)。なお、 PCM.DTAは読み込みません。ユーザ登録PCMのみでご使用下さい。 `-Bxx` SSGPCMバッファ容量を指定する。xxは256バイト単位の00 ~ FFま で (0 ~ 64KB) 。 `-Fx` フェードアウト速度を指定します。xは0 ~ 9,A ~ Zまで。0で最も遅 くなります。初期値は-F4です。 `-I` 演奏ルーチン中で外部からの割り込みを禁止します。 `-Lxx` ファンクションベクタ番号を指定します。デフォルトは-L60です。 `-Mx` WSS-PCMのDMAチャネルを指定する。xは0,1,3が指定可能。周辺 機器のDMAと衝突しないように注意が必要。 `-Oxx` 演奏バッファとしてメインメモリにxx00hバイト領域確保します。 このオプションを指定することでファンクション10が使用可能になります。 `-P` 常駐時にPCM.DTAを読み込みます。 `-Q` SSGPCMを使用可能にします。SSGPCM.DTA/TBLを常駐時に読み込みます。 `-R` 常駐を解放します。 `-T` TONES.DTA, HLPが存在しなくてもエラーメッセージを表示しない。 `-Vxx` タイマA割り込みベクタ番号を指定します。以下詳細は MUAP98. COMと全く同じです。 `-Yx,x` YM2608のポート番号を指定します。無指定で自動検索します。 `MUAP98.COM`と全く同じです。 `-2` チャネル12 ~ 14をYM3438の代わりにYM2203で代用する。通常 は自動判定されますので指定しません。 `-3` PC-9821拡張PCMの使用を禁止します。スピークボードも存在す る場合で、スピークボードを使用したい時に指定します。 `-6` SSGPCMを16KHzモードで使用します。デフォルトは8KHz です。SSGPCMバッファを倍使用することになります。 `-8` 9821PCMのバッファ容量(EMS)を1024KB確保する。初期値は512KB。 `-(x` 9821PCMのサンプリング周波数を設定します。`MUAP98.COM`と 同じなので参照して下さい。 `-?` オプションのヘルプを表示します。 ##### ◎ 環境変数 常駐時に環境変数 DTA のパスに(環境変数を指定しない場合はカレントデ ィレクトリに)TONES.DTA が存在する必要があります。同じく環境変数 PCM のディレクトリに PCM.TBL と PCM.DTA が存在する必要があります。 ##### ◎ ファンクションの解説 ``` ファンクション番号 機能 レジスタ ------------------ ---- -------- AH = 0 ステータスの獲得 (出力) AL = 0: サウンドボードなし AL = 1: 標準サウンドボード AL = 2: YM2608のみ AL = 3: +2203 AL = 4: +2608/3438 AL = 7: YM2608+ADPCM AL = 8: +2203 AL = 9: +2608/3438 AL = 12: YM2608+86BPCM AL = 13: +2203 AL = 14: +2608/3438 AH = 1 演奏開始 (入力) DX = 演奏データのセグメント Note: -Oxxオプション指定時は不要 AH = 2 演奏停止 AH = 3 フェードアウト AH = 4 演奏再開 AH = 5 バンク切り換え (入力) AL = 0: 演奏バッファ裏バンク AL = 1: バンク切り換えしない(デフォルト) Note: -Oオプション指定時は無意味 AH = 6 YM2608互換部直接出力 (入力) DL = アドレス DH = データ AH = 7 YM2608拡張部直接出力 (入力) DL = アドレス DH = データ AH = 8 @STOPされたチャネ (入力) DL = 先頭からの@STOPの個数 ルを指定した位置から DH = チャネル番号(1 ~ 11) 再開(効果音出力) AH = 9 フェードアウトの監視 (出力) AL = 0: フェードアウト終了 AL = 1: フェードアウト中 AH = 10 演奏ファイルの読み込 (入力) DS:DX = パス名の番地 みと演奏開始 (出力) AL = 0: 読み込み成功 AL = 1: 演奏バッファ未定義 AL = 2: 読み込み失敗 AL = 3: 演奏バッファ容量不足 AH = 11 演奏バッファのオフセ (入力) AL = チャネル番号(1 ~ 11) ット獲得 (出力) AX = そのチャネルの演奏バッ ファの先頭オフセット DX = 現在演奏中の演奏バッフ ァオフセット AH = 12 演奏終了フラグの読み (出力) AL = 0: 終了フラグは寝てる だし AL = 1: @initコマンドが実行された AH = 13 歌詞関係の情報 (出力) ES:DX = 歌詞データの格納番地 AL = 色変わり桁位置(0 ~ ) ``` 上記のレジスタをセットしてINT60hを実行して下さい。なおこのベクタ番 号は-Lオプションで変更可能です。その他使用していないレジスタは破壊され ません。 ##### 使用例(ファンクション8を用いた効果音の発生) ``` << MML >> 1[ @13v13o5l8 @label0 ( c>c< )4 ( e>e< )4 @jump0 ] ; BGM用 2[ @12v15o5l16 @stop @por cc1 r192 ; 効果音その2 @stop c2 r192 ] ; 効果音その3 3[ @168v15o3l16 @stop @ch1 (cg)16 r192 @sret ; 割り込み効果音その1 @stop @ch1 @por c> (すでに演奏データをロードしてあるとする) mov ah,1 (mov dx,0a800h) ; -Oを指定しない場合例 int 60h ; 演奏(BGM)開始 ・ ・ ; 他の処理をする mov ah,8 mov dx,0202h int 60h ; 効果音2の発生 mov ah,8 mov dx,0301h int 60h ; 割り込み効果音1の発生 ``` また、サウンドボードが装着されていない場合は全てのファンクションが 無効になります。 ##### ◎ その他 NAXIIIはフリーウェアです。配布、再配布は自由に行なって下さい。また あなた自身の作成するアプリケーションへの組み込みも無申請で行なえます。 但し、NAXIII単体での販売は禁止します。 その他の制御プログラム例は、添付のフロッピーを参照して下さい。 ### MUAP98.HIS ##### ◎ 概要 今まではMML-FEPヒストリでLASTDTA.FEPを使用することができました が、714MIDISpecialと同じ様にソースファイル・ファイル名・MML-FEP検索 文字などを常駐解放時に書き込み、常駐時に読み出します。 みゅあっぷ98/ivのバージョンが違うHISファイルの場合、読み込みません。 ### `CAL.COM` ##### ◎ 概要 みゅあっぷ98/ivをコマンドラインから呼び出すコマンドです。またみゅ あっぷ98/ivのオンラインヘルプや一部のコマンドはこの内部で実行されて います。さらに、NAXIII常駐時にはそれに対しても制御できます。 ##### ◎ パラメータ解説(みゅあっぷ98/iv常駐時) - CAL : みゅあっぷ98/ivのメニュー画面となります。 - CAL 1 : 演奏を開始します。 - CAL 2 : 演奏を停止します。 - CAL 3 : 演奏をフェードアウトで停止します。 - CAL 8 : みゅあっぷ98/ivの内部情報を出力します。 - CAL 7 path name : path name のソースファイルを読み込み、アセンブルして演奏を開始します。 - CAL *path name : path name の演奏データを読み込み、演奏を開始します。 パス名がおかしいか、ファイルが存在しない時はそのまま何も起こりません。 ##### ◎ パラメータ解説(NAXIII常駐時) - CAL 1 : 演奏を開始します。 - CAL 2 : 演奏を停止します。 - CAL 3 : 演奏をフェードアウトで停止します。 - CAL *path name : みゅあっぷ98/iv常駐時と同様です。 これらの機能を用いることによって、バッチファイルなどか らでも音楽を演奏させることができます。 ##### ◎ バッチプログラム例 ここでは、バッチファイルからNAXIIIの演奏を制御する簡単な 例を述べて見ることにします。 SAMPLE.BAT: ``` echo off nax /o40 cal * \play\invent13.o pause cal 3 ``` これは単に、演奏ファイルを読み込み演奏を開始して、キー入力があれ ばフェードアウトするという簡単なものです。 プログラムの中から制御する場合は、int 60h を使用します。アセンブ ラ、PASCAL、C、BASICなどから自由に演奏が制御できます。詳しくは第7 章やディスクの\IV\NAX\SAMPLE.*のファイルを参照して下さい。 ##### ◎ 注意 みゅあっぷ98/ivをCALで呼ぶときは必ず`MUAP98.COM`に一緒に添付され ていた`CAL.COM`を使用して下さい(バージョンによってフックアドレスな どか異なるためです)。 ### `MAKEPCM.COM` ##### ◎ 概要 `MAKEPCM.COM`とは個々のPCMファイルを結合してYM2608用みゅあっぷ 98形式のファイルを生成するユーティリティーです。ver6.2以降の`MUAP98.COM` では、PCM領域拡大のため古いPCM.DTAは使用できません。添付のEXTRC `PCM.COM`を使用して一度個別ファイルに分解し、再度新しい`MAKEPCM.COM` で生成して下さい。 ##### ◎ 使用方法 makepcm [drive] と指定します。makepcm.dta に結合するPCMファイルのフ ァイル名をCR,LFで区切ったもの(";"でコメント文が記入できます)を用意 します。生成されるPCM.DTAとPCM.TBLはその順番に並び、PCM.TBLにコメ ントが残ります。 [drive] にはPCMファイルを読み出すドライブ名 (a, b, c...) を指定します。 makepcm.dtaや、生成されるPCM.*ファイルはカレントディレクトリのみ有効です。 ### `GETVR.COM` ##### ◎ 概要 背景グラフィックのBRGファイルを生成するツールです。常駐パレットと表 VRAMに表示された内容を取り込みます。 ##### ◎ 使用方法 まず常駐パレットが存在することを確認して下さい。作り方の例は、MAG -_ などとします。 次に、常駐パレット対応のツールでデータを読み出して表示するか、自分で 描きます。この状態で、GETVR ファイル名 とすればBRGファイルを生成します。 ### CUSTOM.MUA ##### ◎ 概要 エディタの制御キー、MML-FEPのキーの機能を入れ換える、また表示色を 変更する為のファイルです。- M オプションで有効になります。 最初についてくるCUSTOM.MUAはデフォルトの値が設定されています。 ##### ◎ データ形式 - エディタ、MML-FEPのキー変更 * 全て`[ ]`の括り、キーの名前で指定します。`[SHIFT] [CTRL]` などは、 + `^[1]` : `[CTRL]+[1]` + `¥[A]` : `[SHIFT]+[A]` + `@[*]` : `[GRPH] + [*]` * という記号をキーの前に指定して使用します。`^¥[$]`のように複数指定 することもできます。 * 制御キー以外は、`[Q]`のように指定しますが、テンキーにもあって判別 しにくいものを以下に記しておきます。 Note: テンキーの配列 ``` [CLR] [HELP] [-] [/] [7] [8] [9] [*] [4] [5] [6] [+] [1] [2] [3] [=] [0] [,] [,] [RET] ``` Note: ファンクションキー `[F1]...[F10] [VF1]...[VF5]` Note: JISキーの配列 ``` [ESC] [!1][!2][!3][!4][!5][!6][!7][!8][!9][!0][^][¥][BS] [INS][DEL] [TAB] [Q][W][E][R][T][Y][U][I][O][P][@][{] [RET] [ROLLUP][ROLLDOWN] [A][S][D][F][G][H][J][K][L][;][:][}] [Z][X][C][V][B][N][M][<][>][?][_] [NFER] [SPC] [XFER] ``` 但し、[NFER]と[XFER]キーなどはMS-DOS自体が取り扱っていません のでNM呼びだしでは認識出来ない場合があります。 - フックキーの変更 * フックキーは2つ同時に押された場合認識しますので、制御キーも[]で括って記述します。 `[SHIFT] [カナ] [CTRL] [CAPS] [GRPH]` - 表示色の変更 * 一部を除いて色が変更が可能です。色の表示は漢字で行ないます。 Note: 色の指定 黒青赤紫緑水黄白 Note: 属性の指定 ``` 反・・・反転 点・・・点滅 線・・・アンダーライン 無・・・シークレット ``` ###### ◎ 添付ファイルの利用方法 CUSTOM.MUAを環境変数DTAのパスに保存し、`MUAP98.COM`常駐時に-Mオプションを追加して起動します。 ### 第八章●環境変数について - DTA * TONES.DTA, (TONE.DTA), CUSTOM.MUA, LASTDTA.FEP(常駐時), TONES.HLP, TONESX.DTA, TONESX.HLP(TONE.HLP), MUAP98.HLP (CAL呼び出し時)のファイルをロードする際のパス名です。 - MUS * ソースファイル(*.MUS)をロードする際のパス名です。 - PLY * 演奏ファイル(*.O)をロードする際のパス名です。 - TMP * -J,-JS,-JG指定時に生成するスワップファイルのパス名です。 - PCM * PCM.DTA, PCM.TBL, PCM.HLP をロードする際のパス名です。 - UDP * ユーザ定義PCMを格納してあるパス名です。ユーザPCMファイルは このディレクトリのもう1つ下のサブディレクトリにも格納できます。 - SUD * 臨時ユーザ定義PCMディレクトリです。MusicLibraryを入れるフ ロッピードライブを指定します。 - BRG * 背景グラフィックデータ(*.BRG)格納ディレクトリを指定します。 環境変数を設定しないと、`MUAP98.COM`を常駐したときのカレントドライ ブ・ディレクトリが指定されます。環境変数の後ろに¥はつけてもつけなく ても構いません。 (例) カレントパスがA:\USRの時には、 ``` SET DTA= →A:\USR\TONE.DTA SET MUS=\MUSIC →A:\MUSIC\*.MUS SET PLY=B:\PLAY\ →B:\PLAY\*.O SET DTA=SYS →A:\USR\SYS\TONE.DTA ``` ### 第九章●その他の注意事項 ###### 9821PCMとCPUの処理速度 PC-9821(86B)PCMの場合はCPU速度と割り込み禁止時間に比較的敏感で す。PC-9801BX(486SX-25MHz) + PC-9801-86で測定したところ、PCMを7 チャネル同時演奏で30%程度低下します。80386で使用する場合は8KHzか 11KHz程度までサンプリング周波数を落されることをおすすめします。 ###### 動作機種 CPUが8086では動作しません。最低V30です。その関係で、PC-9801U以降 になります。SSGPCMを使用する場合、CPUは最低80286を使用して下さい。 PC-9821(86B)PCMを使用される場合はCPUは最低80386でないと動作しま せん(80386命令を使用のため)。16KHzで使用される場合は、80486以上 をおすすめします。 ###### EMSについて みゅあっぷ98でEMSを使用する場合、EMSには以下の条件が必要です。 - EMM Version 4.0 以上であること。 - 64KB以上の連続したページフレームが存在すること。 - ページフレームのセグメントは0C000h以降であること。 - 使用ページ数 * 常駐スワップ用: 21ページ(336KB) * PC-9801-86PCM用: 32ページ(512KB) * (/8 指定時): 64ページ(1024KB) * 背景グラフィック用: 20ページ(320KB) * VisualPlay用: 8ページ(128KB) ページ数(86B/WSS-PCM使用時) - 113~: PCMバッファ1MBで全ての機能が使用できます。 - 81 ~ 112: PCMバッファ512KBで全ての機能が使用できます。 - 73 ~ 80: VisualPlayの起動に毎回ディスクアクセスを行ないます。 - 53 ~ 72: 背景グラフィックが使用できません。 - 21 ~ 52: PCMが使用できません。 - 0 ~ 20: 常駐サイズが大きくなります。 ページ数(スピークボード・ノーマル音源使用時) - 49~: 全ての機能が使用できます。 - 41 ~ 48: VisualPlayの起動に毎回ディスクアクセスを行ないます。 - 21 ~ 40: 背景グラフィックが使用できません。 - 0 ~ 20: 常駐サイズが大きくなります。 EMSのスワップ処理をすると、実行時にコード領域をセグメント8600h 、 ソースバッファをB000h、演奏バッファをC000h以降に指定します。スワッ プする場合、主プロセスの割り込み処理ルーチン/スタック/PSPが86000hか ら95FFFhにある場合、動作の保証はできません(これは未だに存在しない)。 また、DISKXIIのようにEMSメモリに対してDMAが直接書きこむ場合は 暴走します。この場合はどちらかEMSの利用をやめると解決します。 ###### 終わりに - 御使用にあたってフロッピー、ハードティスクが破壊された!と言わ れましても責任は取れません(`[Ctrl]+[1]` 呼びだしに注意!)。 - みゅあっぷ98に関する物件の複写、掲載、解説、出版を行なう(個人的 に楽しむ以外で)条件は、以下の通りになります。なお、途中で変更さ れる場合もありますので詳細は添付のMUAP98.TXTを参照して下さい。 * 全てのプログラム・ソースファイルは修正BSDライセンスに基づき再 配布可能です。 * 入手につきましては、ぱっくんソフトのWebページを参照して下さい。 URL http://member.nifty.ne.jp/y-ohta/packen/ (Moved to: http://ohta.music.coocan.jp/packen/emu/index.htm) - (2)の条件に違反した場合は著作権法違反で処罰されます。 - 著作権の存在する音楽ソースファイルのアップロードに関する責任は、 各自で行なって下さい。 - 既にサポートは終了しております。どうしてもバグを修正したいという 場合は、ソースファイルを入手して自力でご解決下さい。 - バージョンアップについては、希にWeb上で差分が公開されることがあります。 - MIDI版の714MIDISpecialも公開しております。 (diagram) ### 困った時の助け船 ###### インストールしたい MS-DOSを起動します。おなじみのプロンプトが出たところで、みゅあっぷのマ スターディスクをフロッピードライブに入れます。 マスターディスクの入ったドライブ番号がBだとすれば、キーボードで「B:」と 入力します。この後、「INST」と入力しますと、付属のインストーラが動きます ので、指示に従って進めれば、常駐してみゅあっぷが起動します。 ###### 音が出ない 便秘薬を飲んでも出ないものは出ないのです。どこかに出ない原因があるのです が、他にFM音源を使用するゲームなどがあって、それでは鳴っているよ・・・という 場合はどうもみゅあっぷのいる環境が悪そうです。 この場合、スッピンのMS - DOS(CONFIG.SYSとAUTOEXEC.BATを消してしまう) を用意して、それを起動します。そこでみゅあっぷを常駐すれば?それでもだめな ら、スッピンの98(音源を除いた拡張ボードなどを全て外した状態のパソコン) にして、再度試みてください。 もし上記の状態でうまくいけば、CONFIG,AUTOEXECの中で指定している常駐 ソフトが悪さをしているか、音源ボードと別のボードのポートか割込が衝突してい るようです。 最近、ウイルスなんかも問い合わせに結構現れます。`MUAP98.COM`はウイルス の侵入があると即死するようになっているため、再度インストールしてみる手もあ ります。 ###### サンプルデータを演奏したい 常駐してメニューが表示されている状態で、ファンクションキーの3を押します。 そうするとファイルの一覧が出ます(拡張子MUS)。なんか良さそうなファイル をカーソルキーで選び、リターンキーを押すと読み込まれ、変換されます。変換結 果が表示されますので、リターンキーを押せば演奏が開始されます。 ###### データを入力したい メニュー上で、Editorを選択します。すぐにフルスクリーンエディタの画面が出 てきます。最初は先頭に「_V3.0#」と表示されています。これはバージョンコー ドで、そのまま残しておいて下さい。 そこで、その下の行に以下のように入力してみて下さい。 `1[ @13 v10 cder cder gedc dedr ]` 入力が終われば、シフトキーを押しながらファンクションキーの6を押します。 これで変換されます。変換のメッセージで出たらリターンキーを押すと、どこかで 聴き覚えのある曲が鳴りましたね。 ###### 背景グラフィックモードにならない - 環境変数BRGに設定されたディレクトリにNMIVRAM.BRGというファイル が存在しますか? - EMSは73ページ(9821PCM使用時)または41ページ以上ありますか? - `MUAP98.COM`常駐時に-Tオプションをつけていませんか? 以上の項目が満たされていても出ない場合、常駐を解放し、MUAP98. HISを削除 して再度常駐させてみて下さい。 ###### PCMを使いたい PC-9821でPCM音源を搭載しているか、PC-9801-86を装着しているか、スピーク ボードを装着している必要があります。標準のFM3音の音源ボードでは、SSGPCM のみ使用可能です。メニューのUsrPcmPlayで、ADPCMファイルを発音できます。 PC-9821PCMやPC-9801-86ではEMSが更に32ページ必要になり、80386以上のCPUで ないと動作しません。 ###### PCMの発音が変 演奏していると時々PCMの音だけが乱れるのは、CPUのパワー不足によってPCM データをD/Aコンバータに渡し切れていない場合に発生します。- ( x オプションを付 けて常駐して、サンプリング周波数を落すと改善されます。 また、古い演奏ファイル(*.O)ではPCMの音階が変になります。再度アセンブ ルし直して下さい。 ###### PCMを録音したい メニューのDacSampleを使用します。スピークボードでは使用できませんので、 添付の`GSP.COM`を使用してください。なお、標準のFM3音の音源では録音はできません。 ###### ビジュアルプレイヤーが動かない 環境変数DTAのディレクトリ(TONES.DTAの入っているディレクトリ)にMUAP98.BRG というファイルが必要です。また、80386以上のCPUでないと動作しませ ん(386命令使用のため)。 ###### 暴走・ハングアップする 「音が出ない」を参考に、色々トライしてください。 ### 困ったときにあまり役に立たないコーナー(そうでもないか) ##### 古いみゅあっぷ 最近、どうもSNピーが新しいサウンドOケストラを発売しているらしく、なぜ かver1.xのみゅあっぷの通販が舞い込んだ。1992年の日付になっており、最近のマ ニュアルでは解説もしていないため、たまたま在庫があった古い9版のマニュアル で何とか凌ぎました。せめてYM2608を搭載すれば・・・SピーE。 んで、何とも感慨深かったので、みゅあっぷの歴史を初代からDOCに追加しま した。暇な方は読んでみて下さい。 ##### 曲のデータ かつて私が独身の頃「MUSIC LIBRARY」というのを発行していました。不定期 刊で、ディスクが一杯になったら出すというものです。最初は寂れていましたが、 次第に申し込みも投稿も膨れあがり、みゅあっぷの開発に支障が出るようになった ため滋賀営業所(ちなみにその頃私は大阪に住んでいた)のVWN氏にお願いして 続けてもらいましたが、その後紆余曲折して誰もすることができなくなり、廃刊に なりました。結局30刊くらい出ました。 あれから10年弱、世間のパソコンのCPUクロックは当時の100倍になり、隔世の 感があります。そんな過去の遺産の入手については、ぱっくんソフトのホームペー ジを参照してください。 [document topic index] COPYING (著作権表示) Copyright (c) 1987, 1989-1996, 2002 by Packen Software. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the author may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHOR “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. (注) 以下は英語の著作権表示を訳した文章である。正式な著作権は、英語の原本に従う。 Copyright (c) 1987, 1989-1996, 2002 by Packen Software. All rights reserved. 変更の有無にかかわらず、ソースおよびバイナリ形式の再配布および利用は、以下の条件 を満たしていれば、これを許可する。 1. ソース・コードの再配布は、上記の著作権表示、この条件項目、および、以下の免責事 項を保存しなければならない。 2. バイナリ形式の再配布は、上記の著作権表示、この条件項目、および、以下の免責事項 を、その配布に付随する説明書、あるいはその他の資料のいずれかに明記しなければな らない。 3. 前もって特別に許諾を得ない限り、このソフトウェアから派生した製品の推奨や販売促 進のために、この著作権者名を利用してはならない。 このソフトウェアは「このままの形で」提供され、明示的あるいは言外の保証は、商用利 用および特定目的への適合に対する言外の保証も含み、またこれらだけに限らず、存在し ない。たとえ以下のような損害の可能性を示唆されていたとしても、どのような形にしろ このソフトウェアの利用から発生した問題において、この著作権者は、(代替製品やサービ スの調達; 利用権、データ、あるいは利益の損失; あるいは営業の中断を含む、またこれら だけに限らず)直接的に、間接的に、偶然に、特別に、懲罰上、あるいは、必然的に生じて しまった損害に対し責任はなく、いかなる責任理論上でも契約の有無に係わらず厳密な責 任はなく、また(過失あるいはその他を含む)不法行為に対しても責任はない。