プチコンまとめArchive

投稿プログラム : Extended MML フォーマット

パンくずリスト

このページの最終更新 : 2019/11/30 (土) 11:56:06

2019年6月17日投稿 / 投稿者 : Na / タグ : 投稿プログラム 実用ツール ツール MML 音楽

概要

MML文字列にタイトルなどの情報を埋め込むための音楽フォーマットです。
再生する際はBGMPLAYに渡すだけでよく、とても簡単です。

記述方法

拡張子は「.MML」にします。
タグの記述は{TITLE=あいうえお}のように行います。
この文字列は、MML文字列内のどこに置いてもかまいません。
また、改行は/n\n、改行(文字コード10)のいずれかで指定します。
指定可能なタグは以下の通りです。
これらすべてを指定する必要はありません。また、この順番である必要もありません。
この一覧にあるものしか指定できないわけではありません。
(高原のなさんのNMPACKSで指定できるものはすべて指定できます。というか丸コピです。)

TITLE曲のタイトル
ALBUMアルバム
COMP作曲者(composerの略)
ARR編曲者(arrangerの略)
LRCIST作詞者(lyricistの略)
PERF演奏者(performerの略)(ver. 1.4で除外)
LYRIC歌詞(表示目的?)(ver. 1.6で除外)
TEXT曲の説明など
GENREジャンル(ver. 1.6で除外)
COPYRコピーライト(ver. 1.4で除外)
DATE制作日時(DATA$と同じyyyy/mm/ddを推奨します)(ver. 1.4で変更)
WAVxxxWAVSET用のデータ。アタック,ディケイ,サスティン,リリース,定義文字列[,基準音程]を指定する。
VERバージョン情報。3は3号用、4は4用、0は両対応であることを表す。省略時は0。

NMPACKSとの相違点は、

  • すべて大文字。
  • 仕様上7文字しか入らないため上の表のとおりの省略形を使う。
  • 埋め込み構文は使用しない。

また、仕様上、:{}は使用できません。

  • {}の個数が一致し、括弧が正しく対応している場合はokです。
  • どうしても表示させたい場合は、全角の:(文字コード&HFF1A)(&HFF5B)(&HFF5D)を使用できます。

NNMフォーマット同梱版のExtended MMLライブラリ ver. 1.6より、仕様上使用できなかった文字を使えるようにするエスケープシーケンスを導入しました。

  • : { }はそれぞれ、\; \( \)と指定します。
  • もちろん、全角の:(文字コード&HFF1A)(&HFF5B)(&HFF5D)も使用できます。
  • 詳しくは音楽パックフォーマット「NNM」をご覧ください。

以下に例を示します。

  1. {TITLE=テスト}
  2. {ALBUM=hogehoge}
  3. {VER=3}
  4. :0@144Q8L4CDEF
  5. GAB<C
  6. {TEXT=ここで改行→
  7. 改行終わり}
  8. {WAV224=127,127,127,127,80808080FFFFFFFF80808080FFFFFFFF}

MML文字列中の改行は、BGMPLAYには影響を及ぼしませんので、EDITモードでの編集が可能です。

再生方法

  1. LOAD ”TXT:BGM1.MML”,MML$
  2. BGMPLAY MML$
タグの取得

INSTRを使って取得します。
サンプルに入っているEXMML$(MML$,META$)を使用すると簡単です。

WAVSET

INSTRを使ってなんとかします。
サンプルに入っているEXMML_WAVSET MML$を使用すると簡単です。

3号/4の変換

MMLTO4$関数及び、4→3号の変換であるMMLTO3$を同梱しました。(完全ではありませんが。)
3号→4の変換の際、マクロを定義前に使用するとエラーになるため、MML_REP$をお使いください。

公開キー

音楽パックフォーマット「NNM」の「NNM-LIB.PRG」内にあります。

プチコン3号/BIG 公開キー
公開終了

ver1.1 タグ内に{}があると正しく取得できないバグを修正。
ver1.2 EXMML_DEL$(指定したタグ削除)追加。MMLTO3$で@130~@148を@131に変更するようにした。
ver1.3 MML_REP$(マクロ展開)追加。
ver1.4 MML_REP$(マクロ展開)で展開したマクロを削除するように変更。

プログラムリスト

+  ...

CHECKER FLAG (ひとことコメント)

この作品に対するコメントがあれば一言どうぞ。(作品に直接関係ない質問や雑談は掲示板へ)