MIDIファイルをMuseデータ形式のファイルに変換するソフト。コマンドプロンプトを利用する。
「mid2mus希望」と書いたメールにオリジナルなMuseデータを添付して加藤一郎氏に送ると、このソフトがもらえる。
加藤一郎氏によると、以前mid2musをもらうために中身が「drm」と記述されただけのデータが送られたことがあったという。失礼極まりない事例である。
mid2mus の変換†
mid2mus は MIDI ファイルを機械的に Muse データに変換するため、どうしても mid2mus 特有のデータとなりやすい。
mid2mus で変換した Muse データを『Muse の殿堂』に投稿しても審査の対象にならない。
過去、殿堂に登録された曲の中には、mid2mus で変換された楽曲があったようだ。
mid2mus による変換の仕様†
mid2mus で変換した Muse データは、手打ちで作られた Muse データとは異なる、独特の変換結果が出力される。
ここでは、mid2mus で変換された Muse データの特徴を列挙する。
- メンバー属性は全て フィンガー0 に記述される。
- フィンガーの番号が0 以外の場所に @ が登場しない。
V や S や U などが、フィンガー0 内にすべて混在することになる。
- %・テンポは #A0 にまとめて記述される。
- 休符以外のフィンガー属性(音階・強弱など)は、フィンガー0 には出現しない。
- 一部のメンバー属性が X**=** に置き換えられる。
- オリジナルな Muse データを MIDI にエクスポートし、さらに mid2mus で変換した場合、Muse の譜面モニタの小節線が意味を成さなくなる。
- 出力されるメンバーは@ABC……の順であるが、メンバーZ はメンバーI とメンバーJ の間に出力される。
- MIDIチャンネルの順番に出力(ドラムパートは MIDI規格では「10ch(10番目)」であるため)
- 以下のコマンドが出力されない。
- 調性(\)とフラット(-)、ナチュラル(=)が存在しない
- 全ての音を実音で表記するため、調性の指定をする必要がない。フラットされる音はシャープによって記述される。したがって、ナチュラルも存在しない。
- mid2mus の変換データの最大の特徴は調性の指定がなく、フラットの記述が一切出てこないところにある、と言える。
- 和音,和音の再現表記,コード,和音とコードの遅延
- 1フィンガーに1音ずつ書かれる仕様のため、フィンガーごとに割り振られる。止音と出音が重なる音がある場合もフィンガーで分けられてしまう。
- 10和音以上鳴らした場合などフィンガーに1音ずつ分けて記述して足りなくなった場合は、フィンガー9 にまとめて和音にして記述される。[drmfs<drmfs<dr]:i20 などを変換した場合、非常に複雑な記述となって、とてもではないが読めたものではない。
- 連符,連符の再現表記
- 3連符や特殊な連符は、全て微分音長による音長の加算や休符に置き換えられる。
- 曲中のタイミング合わせ
- 曲中にタイミングを合わせる「%」や「%(メンバー)」は、休符に置き換えられる。記述されている全てのフィンガーに休符がつくため、タイミングを計るのは非常に難しい。
- 一部のメンバー属性・フィンガー属性・テンポの遅延
- 属性値と休符だけで表現される。(例:“%50 %46:4”=“%50_16 %49_16 %48_16 %47_16 %46”)
- 出音・止音の指定
- スタッカートと音長の加算、休符によって表現される。止音よりも出音が早い場合は、フィンガーを分けて出力される。
- 音長の減算(~)
- アクセント,音量・強弱の相対指定
- 定義マクロ、展開マクロ、無名マクロ
- マクロが展開された状態で全て書かれる。{ } は一切登場しない。
- ブロックコメント,冒頭以外のコメント,曲中の全角文字,小節区切りのような記号など
- Muse が再生する時に無視する文字は出てこない。ただし、データの冒頭にファイルのパスや作者名などが書かれた部分を除く。
- *STOP、*MARK
- すべて *TEXT に変換されるため、*STOP による曲の一時停止(クリック待ち)は一切行えない。
- *FING
- *FONT,*COLR
- Muse だけに有効なこれらのコマンドが登場するわけがない。
- *POOL,*DATA
==========
細かな違いまで列挙してしまったが、主にこのような違いがある。
そのため、mid2mus で変換されたデータを読もうとするのは非常に困難であり、mid2mus で変換されたデータは、それなりに分かってしまう傾向にある。
mid2mus が出力しない記述一覧†
README.TXTの3977行目をコピペしたものを利用している。
- 全域属性 ‥‥‥‥‥ % \ (*1)
- メンバー宣言 ‥‥‥ @ ABCDEFGHIJKLMNO Z (*2)
- メンバー属性 ‥‥‥ S Y T
- フィンガー属性 ‥‥ ? w p q
- 音符記述
音名 ‥‥‥‥ - =
音長 ‥‥‥‥ ~
- 群記述 ‥‥‥‥‥‥ ( ) [ ] ' '
- 補助記述 ‥‥‥‥‥ & ,
- コマンド記述 ‥‥‥ * " " (*3)
- マクロ記述 ‥‥‥‥ $ { }
- キャンセル文字 ‥‥ | ! ; (*4)
(*1) タイミング合わせの%に限り、データ末尾に %%125 と記される。
(*2) フィンガー番号 0 のところに @ とだけ記されているが、メンバー指定はない。
(*3) 特定のコマンドに限る。以下を参照。
(*4) 冒頭のみ;が登場する。
コマンド部分のコピペしたものを利用している。
STOP → 一時停止と文字列の表示/完全停止
MARK → 位置決め可能な文字列の表示
FONT → 上記4コマンドの文字フォント指定
WAVE → 音声ファイルの再生
FING → フィンガー属性の一括指定
COLR → メンバー色のカスタマイズ(1コマンドのみ有効)
DATA → エクスクルーシブの出力
POOL → エクスクルーシブ前半部の記憶