zmc3 / z2m3 デバッグページ

ソフトウェア最新版ダウンロード

いずれも、ソース・Win32実行ファイル・X68k実行ファイル・ドキュメントを同梱。 ただしアーカイブが大きくなってきたため、 今後ソースだけは別に分けるようにするかも知れません。

    • 最新版: zmc3 v1.03 (リリースノート) (約396KB, Dec. 31st, 2008)
    • 最新版: z2m3 v1.31 (リリースノート) (約195KB, May 15th, 2008)
    • 昔の安定最新版: zmc3 v0.97 (約379KB, Jan. 27th, 2003)
    • 昔の安定最新版: z2m3 v1.19 (約187KB, May 29th, 2002)

zmc3 / z2m3って、なぁに??

Z-MUSIC(V3)のMML文法に対応した、 MIDI向けMMLコンパイラセットです。 Z-MUSIC(V2)の文法向けには、 別にzmc2とZtoMがございますのでそちらをお使いください。 (一応上位互換なんですけどね)

ただ、普通Z-MUSICについてご存じの方はそれほど多くないと思います。 マニュアルに導入ガイド等がございますので、 その辺の詳細も含めて、そちらをご覧ください。

ドキュメント・V3-MML仕様

HTMLマニュアルをご覧ください。 まとめてダウンロードもできます。 (最終更新: Mar 20th, 2007)

本家サイトでは、 オリジナル(元祖)のマニュアルが公開されています。 (ただし、S-JISのベタテキストです)

関連トピック

関連ツールを作成していただいた方々に感謝します。

当面の予定とか、構想とか

ちょっと、今までに挙げられた(でもまだ対応できてない)突っ込みを公開して、 崖っぷちに立ってみることにします :-)

  • zmsコマンド(≠演奏コマンド)中に、「ウエイト」コマンドを!!
  • MU2000をEXにしたら、XG SYSTEM ON後のウェイトにシビアになりました。
  • -X5 オプションを付ければ問題ないんですが、これだと他の エクスクルーシブで2,3小節行っちゃう事もあります。
  • そこで、 ZMSコマンドの「ウェイトコマンド」なるものがあったらいいな、 と思うんですが。
    • (requested by muteさん)
    • → Z-MUSIC V3の隠しMMLとして.haltなるものを発見したので、 そのまま zmc3 v0.94.1 にて実装しました。
  • ピアノのキーの位置によって自動的にパンが振られる機能。
  • 低い音は左、キーが高くなるにつれて右にパンがずれる。 中音域は真中。 和音とかでも自動的にパンが振られると最高なのですが。。 [PIANO_AUTO_PAN ON/OFF]とかというコマンドがあるとうれしかったり。
  • もう少しポーティング作業に優しいソースにせよ (と 岡部さんに要求されているような気がする、他小林さんからもリクエストあり)
  • → 一応今(zmc3 v0.86/z2m3 v1.08...まだ公開してません)ではこんな感じで対策済みです。 思えばとよしまさんにも ご迷惑かけました。すみません。
      • ソースファイル末尾の^Z(0x1A, EOF)の撤廃
      • → エディタが腐ってました。ごめんなさい・・・。
      • ソースファイルの実ファイル名をmakefile中の実ファイル名にあわせた
      • → いや、 単に今までいわゆる16bit DOS版のLHA.EXEを使って make archiveしていたので、 勝手にshort filename(つまり全部大文字)にされてしまっておりました。 これからはLha32.exe(32bit DOS版LHA, ちゃんとlong filenameをみてくれる)を使います。
      • → それとも、いまどきではzipの方がベターでしょうか?
      • zmc3のコンパイル中にサブプログラムをコンパイル・実行するんですが、 makefile中実行ファイル名の頭に./ をつけました。
      • → ./makehash など。あぁ、unixのキホンですがな。なにやってんだかこのオレ。
  • 88Pro用MMLの追加
    • (requested by 自分自身)...でも自分で最近データ作ってないから優先度低し
  • コード記述MMLの追加
    • さらに,意図的に支援機能のバリエーションを挙げさせて頂くと(笑), 構成音が4つとか5つとかになってくると, だんだん,ルート音は省略して弾くようになりますので, それを前もってスイッチで指定できるといいかな,なんて思います. これをもっとちゃんとやるとすれば,ルート音や3度や5度の音が, それら以外の構成音と半音でぶつかる場合は演奏時に省略される, なんていうアルゴリズムになるでしょうか. ……なんだかどんどん自動アレンジ機能に近くなっていくなあ(笑)
    • (requested by 我孫子さん)
    • ドラム設定系MMLの追加
    • [drum O1b attack=$3c pitch=$42 pan=$40 chorus=$50] なんて感じで。
    • (requested by NKGRさん, かんたさん)
    • ギターのアルペジオ支援機能
    • 「ノートをグループ化して,同一グループの音は同時に鳴らない.」 なんていう支援機能になるでしょうか.
    • (requested by 我孫子さん)
  • L36など、割り切れない音長指定時はwarning (requested by 我孫子さん)
    • → v0.86で対応済
    • [groove_quantize ...] { ... }
    • @a3:127,108,100,.... == [arcc3.level 127,108,100,...]
    • |: [1 ..] [2 ...] hogehoge :|
    • fadein fadeout 一定tickで振り切れるような設定 (つまり、スピード指定でなく、所用時間(tick数)を指定する)
    • .patternサポート
    • -w4時 [key] [meter]無指定でwarning
    • |: {{cc|cc}} :| がおかしい (claimed by 我孫子さん)
  • 'ceg'&'cfg' でeが途中でnote offされる対応 (claimd by muteさん)
  • → gateの再計算が必要
    • → @w対応, {...}対応
    • → @w以外はz2m3 v1.29で対応したつもり。
    • [push_portament], [pull_portament]サポート (requested by あいはらさん)
    • .length_mode サポート (requested by akiさんNKGRさん(^^;)
    • 任意位置での masterclock_resolution変更サポート
    • ローカルdefine
    • ローカル波形
    • @aのパラメータを8個といわず増量 (requested by 我孫子さん, muteさん)
    • 和音の発音を複数チャネルに分散させる機能 (requested by 我孫子さん, かんたさん)
    • これが実現されると、通常の和音記述で、こんなことが可能になります:
        • 構成音をMONOなchに散らして発音数を稼ぎたい (今時こんな人は少ないとは思いますが)
        • 構成音一つ一つに別のPANを振りたい
        • 和音でのスラーを実現したい
    • SMFのincludeをサポートする
    • → TQPNとテンポを合わせるモードも必要か
    • マニュアルの項目ごとに必ずサンプルをつける。 かつすべてのサンプルから音が出力されるようにする。
    • @uとzを機能的に完全に同等にする
    • 最初の[@]~[@]が終わった時点でコンパイルを中断してしまって高速化を図るようなモードを作って、デフォルトにしちゃう
    • ソースの行数が増えるとコンパイル時間がO(n2)で増加しちゃってる (ガンはマクロ展開部・・・マクロがなくてもこうなる)のをなんとかする
  • SMF format 0での出力を標準サポートする
    • Ys2 Eternalとか、携帯電話の着メロとか。 いろいろ応用はありそう。
    • → z2m3 v1.26で対応済み。

既知の問題点(未解決; 切り分けはあまりあてにはなりません)

    • zmc3:
        • 連符コマンド中にディレイ付き和音を混ぜると、 ディレイ時間×和音構成音数、だけstepが長くなってしまう。
        • V3-MMLの実装が圧倒的に不足
      • .sc55_print {"strings"} な形式が通らない
        • →そのまま仕様としてしまいそうな予感(^_^;
        • →zmc3 v0.99で対応済。
        • |: {{ cc|dd }} :| なんてやると期待と異なる tick数を出力する
        • [back ...] [back ...] などのように、[back]と[back]の間が 0tickな状態の時は誤動作する
        • やっぱりまだまだ不安定らしい
        • ソースをコンパイラにかけると未使用変数のWarningが多数発生する
        • → 今後の拡張があるかもと、 不要な引数(今は使用していないが、 将来実装されるべき機能には必要な引数)を削除せずに残しているためです。 バージョンが1.0に近づくにつれ、warningの数は減っていくかと。
    • z2m3:
        • zmc3と同じく、V3-MMLの実装が圧倒的に不足(zmc3より多少マシと いった程度)
        • ディレイ付きの和音をタイでつないで、タイ途中で ノートオンやノートオフが生じる場合、 そのタイミングがオリジナルと異なる
        • 波形の接続操作を行わない

実装状況

    • zmc3
        • MIDI関連のV2-MMLほぼ全部(除く`(強制note off), SC55/88以外の専用命令など)
        • .ASSIGN .TRACK .TEMPO .INITIALIZE .MASTER_CLOCK .GATETIME_RESOLUTION .KEY .METER .INCLUDE .CURRENT_MIDI_OUT .RELATIVE_VELOCITY .HALT
        • [TIMBRE] [PROGRAM] [TIMBRE_BANK] [PROGRAM_BANK] [BEND] [BEND.SWITCH] [BEND.RANGE] [PITCH] [@PITCH] []なポルタメント(pull型) [ARCCn...]全部 [VOLUME] [@VOLUME] [VELOCITY] [@VELOCITY] [PANPOT] [@PANPOT] [TIE_MODE] [TRACK_MODE] [TRACK_DELAY] [ALL_SOUND_OFF] [KEY_SIGNATURE] [KEY str] [METER str] [BAR] [MEASURE str] [---] [REPLAY] [SYNCHRONIZE] [DUMMY] [COMMENT str] [CONTROL] [NRPN] [DAMPER] [TRACK_FADER] [CH_FADER] [MASTER_FADER] [EFFECT] [EFFECT.REVERB] [EFFECT.CHORUS] [EFFECT.DELAY] [MIDI_DATA] [ROLAND_EXCLUSIVE] [YAMAHA_EXCLUSIVE] [INSTRUMENT_ID] [AUTO_PORTAMENT] [AUTO_PORTAMENT.SW] [ECHO] [EVENT WORD,STRING, ... ] [@] [!] [END]
        • 以下のV3-隠しMML
        • .HALT (共通コマンドで、n * 1/60 秒ぶん待つ)
        • [KEY_REMAP] (ある音階を別の音階に割り当てし直す)
        • zmc2での拡張MML全部
        • 以下のzmc3拡張MML
        • [GATETIME_RESOLUTION] (ゲートタイムの分割数を任意箇所で変更可能)
        • [ARCCn.OFFSET] (振幅のオフセット値設定) [VELOCITY.OFFSET](ベロシティのオフセット値設定)
        • [AUTO_PAN] (発音キーの高さに応じてパンを自動設定)
        • .xg_print .xg_exclusive .xg_init .xg_system_on .xg_equalizer .mu100_voice_map .dx_bulk_dump
        • .octave_mode
        • [EVENT META, CUE, "test"] など、メタイベントの記述
        • @pL10, M, R10, ... (パンポットシーケンス)
        • .roland_exclusive2 (モデルIDが2バイトのroland_exclusive)
        • .yamaha_exclusive2 (モデルIDが2バイトのyamaha_exclusive)
        • 32ch対応
    • z2m3
        • V2-MML全部(アフタータッチ関係など一部マイナーMMLを除く)
        • V2と機能が完全に同一のV3-MML ([EFFECT ...]など)
        • [KEY] [METER] [EVENT WORD,STRING,"歌詞"] [COMMENT ~] [PATTERN] [EMBED]
        • トラック名(.ASSIGN 1 {midi1-1,,,,,COMMENT} のCOMMENT) (それ以外は未サポート)
        • ARCC関連すべて
        • [AUTO_PORTAMENT] [AUTO_PORTAMENT.SW]
        • [TRACK_FADER] [CH_FADER]
        • [@] [!]
        • (一応)32ch対応

このページの目的

    • zmc3のバグ情報をみんなで共有する。 このページを公開することを自らへのプレッシャーとする(笑)
    • 評価工数が少ないため、まだまだ完成度が低いです。 テストのご協力をよろしくお願いします(_ _)

バグ報告について

    • 宛にメールください。88Pro用データだとなおよいです(^^)。 # XG再生環境がないんです...
    • なお、なるべくなら、問題点を最小化していただいた上でご連絡いただけると非常に助かります。
    • メールの内容はこちらで要約の上、 予告なくこのページにて公開されますのでご了承ください。 (実際にどの程度公開されるかは上記の記述からご判断ください)
    • もちろん「このMMLを早く実装しろ」というのもアリです。

[トップページにもどる]