MUCOM88 Windowsについて - onitama/mucom88 GitHub Wiki

English version is here

MUCOM88をWindows上で動作させるためのシステムです。 コマンドライン版、GUI版の両方が用意されています。

	mucom88win.exe         Windows GUI版エディタ
	mucom88.exe            Windows コマンドライン版

MUCOM88 Windowsを使用することにより、音楽記述に特化した言語MML(Music Macro Language)として記述された音楽を、PC-8801の音源と同様に演奏させることができます。 また、SCCI(Sound Chip Common Interface)を経由することで実際のFM音源チップ(YM2608/YM2203)による演奏をサポートしています。

mucom88win_v046

アプリケーションの更新履歴については、「history.txt」を参照してください。

動作環境

MUCOM88 Windowsは、サウンド再生が可能なWindows XP以降のシステム上で動作します。 Windowsのサウンド再生処理には、DirectX8以降のDirectSoundを使用しています。Windows 7以降の環境では、追加のコンポーネントを用意することなく動作させることができます。 FM音源、PSGサウンドのエミュレーションは32bit/55KHzで合成し、出力されています。古いマシンでは、負荷が大きい場合があります。

MUCOM88 Windowsは、オリジナルのMUCOM88で使用されていたコード(Z80)を仮想的にエミュレーションし、FM音源ジェネレーター(fmgen)を介して 演奏します。オリジナルと同様の動作で、MMLの解釈、演奏をさせることが可能になっています。 動作に際して、PC-8801のBIOSやROM、ディスクイメージは必要ありません。

使い方の概要

Windows GUIベースでMMLの編集と演奏が可能です。 「mucom88win.exe」を起動すると、エディタの画面となりMMLの編集ができるようになります。基本的な操作は、以下のキーかボタンで行います。

	メニュースクリーン呼び出し ([F1]キー)
	編集中のMMLを保存 ([ctrl]+[S]キー)
	編集中のMMLを演奏 ([F5]または[F12]キー)
	演奏の停止・再開 ([ESC]キー)
	演奏の早送り([ctrl]+[F1]キー)
	音色エディタの表示ON/OFF(V.EDITボタン)

MMLの編集画面では、

	A t190@30v15 cdefgab>c

など「チャンネル(A~K)」「スペース」「MML記述」という組み合わせで各行に書いたものが、そのまま演奏されます。 基本的には、自由にMMLを記述し[F5]で演奏(MMLコンパイル)させながら曲を作成するスタイルになります。画面下にある数行のウインドウに、 MMLコンパイルの結果やメッセージが表示されます。 MMLの記述にエラーがあった場合も、そこに表示されます。 MMLは、テキストファイルとして読み込み・保存ができるので気軽な気持ちで読み書きが可能です。

MML記述についての詳細は、MMLリファレンスを参考にしてください。 また、サンプルMML(sampl1~sampl3)も、実際の作成に役立つはずです。 MML編集以外の操作は、[F1]キーで呼び出されるメニュースクリーンから行います。

ファイル形式の概要

MUCOM88 Windowsで扱うことのできるフォーマットは、以下の通りです。

・.MUC形式      MUCOM88(MUSIC LALF)の書式で記述されたMML(行番号を除く)テキストファイルです。
                FM音源(YM2608)6声、ADPCM1声とリズム音源6声、PSG3声の
		コントロールが可能です。
                MMLの詳細はMUCOM88のMMLリファレンスを参照下さい。

・.N88形式      行頭に行番号が付加されたMMLのテキストファイルです。
                PC-8801上のN88-BASICのアスキーセーブ形式と互換性があります。
                「行番号 MML」のような形式で、行番号とMMLの間にスペースが入ります。

・.MUB形式      MUC形式をバイナリに変換したファイル形式。
                演奏データ及びFM音色、ADPCMデータを内包します。

・.dat形式      FM音源のプリセット音色を保存しているファイルです。
                voice.datファイルを標準的なプリセット音色として
                使用します。これは、PC-8801版のMUCOM88(MUSIC LALF)
                で使用されていたファイルと互換性があります。

・.bin形式      ADPCM音源波形データを保存しているファイルです。
		mucompcm.binファイルを標準で使用します。
		PC-8801版のMUCOM88(MUSIC LALF)で使用されていた
		データを変換して使用することが可能です。

一時ファイルについて

mucom88win.exeでは、MML演奏(コンパイル)時に一時ファイルをMUCファイルがあるフォルダと同じ場所に作成します。

	mucommml      編集中のMMLを出力した一時ファイル
	mucombin      編集中のMMLをバイナリ出力した一時ファイル

これらの一時ファイルは、通常時は必要ありませんので削除しても問題ありません。もし、エディタがエラーなどで強制終了されて、ファイルの編集ができなかった際には、最後に演奏したデータをmucommmlから復元することができます。

また、エディタの設定は、以下のフォルダに保存されています。

/User/ユーザー名/AppData/Roaming/MUCOM88/mucom88win.ini

アンインストール時や、設定を初期化する際は、該当フォルダを削除してください。

ドライバの選択について

ver0.53から、#driverタグによるドライバの選択が可能になっています。 #driverタグに続いてドライバ名を記述することで、MMLのコンパイル及び演奏に 特定のドライバを使用することができます。

#driver mucom88		-> MUCOM88 1.7(デフォルト)
#driver mucom88E	-> MUCOM88 1.5
#driver mucom88EM	-> MUCOM88em
#driver mucomDotNET	-> mucomDotNETによるコンパイルと演奏

何も指定しない場合は、標準のドライバが選択されます。 mucomDotNETを指定した場合は、kumatan氏により作成されたmucomDotNETを使用します。 この場合、再生時にコマンドプロンプトを起動するため早送りやプレイヤーなどMUCOM88Win側の機能は使えなくなります。 mucomDotNETは、デフォルトでMucom88Windows以下のmucomDotNETフォルダ内に格納されているツールセットを使用します。(設定により他のパスから実行させることも可能です。)

ドライバによる主な差異は以下の通りです。

#driver名 バージョン 実機サポート 備考
mucom88 MUCOM88 1.7 MUSIC LALF相当
mucom88E MUCOM88 1.5 PSGハードエンベロープ対応
mucom88EM MUCOM88em 〇(拡張メモリ) 使用できるメモリを拡張
mucomDotNET mucomDotNET × 独自に拡張された実装

mucomDotNETを除く3つのバージョンは、PC-8801実機でも同様のMMLを演奏可能です。mucomDotNETでは、実機の再生はサポートされませんが、より広いメモリ領域を使用することができます。 標準となるMUCOM88 1.7では、使用できるメモリサイズに制限があり、大きなMMLを作成することが難しいという問題があります。これを緩和するものが、MUCOM88emで、さらにメモリの制約を緩和に機能を拡張したものがmucomDotNETとなります。 必要に合わせてドライバの選択を行ってください。大きなサイズのデータを作成しなければ、特にドライバを選択せず通常の状態でご使用頂いて問題ありません。

MMLタグについて

MML内に「#タグ」で始まる行を入れることで、タグを登録することができます。必ず「#タグ 設定内容」の形式で「#タグ」と「設定内容」の間にはスペースを入れてください。2行に渡る記述はできません。 一部のタグは、曲の再生やコンパイル時に情報が反映されます。 ここで示していないタグであってもエラーにはならず、情報として保存されます。

タグ 機能
#mucom88 MUCOM88コアシステムのバージョン(1.5,1.7)
#title タイトル名
#composer 作曲者名
#author MMLデータ作成者名
#voice 音色ファイル名
#pcm PCMファイル名
#date 作成日時
#time 曲の長さ(秒)(wav出力時のデフォルト時間)
#comment 曲についてのコメント
#driver 使用するドライバの指定
#invert オクターブ、音量の相対変化の機能設定
#album アルバム名(複数の曲を同一アルバム名で管理します)
#copyright 著作権者名
#ver MMLファイルのバージョン
#mucver コンパイルされたMUCOM88のバージョン(埋め込み用)
#mmlhash MMLのMD5ハッシュ値(埋め込み用)
#uuid 固有の識別ID値(埋め込み用)

・<>、()動作の反転について

MML上で指定された'<'、'>'(オクターブの-+)及び、'('、')'(音量の-+)の動作を反転させることが可能です。(ver0.53以降) #invertタグに続いてonを記述することで、-+方向を反転させることが可能です。

#invert on

を行の先頭に記述してください。#invertタグの動作は、MML全体に対して影響します。

MML記号 デフォルト #invert on
< オクターブを下げる オクターブを上げる
> オクターブを上げる オクターブを下げる
( 音量を下げる 音量を上げる
) 音量を上げる 音量を下げる

この機能は、他のMMLとの互換性を確保するための補助的な機能です。 特に必要ない場合は、何も記述せずデフォルトの状態でお使いください。

⚠️ **GitHub.com Fallback** ⚠️