*概要 [#n5ce0a77]
MIDIファイルをMuseデータ形式のファイルに変換するソフト。コマンドプロンプトを利用する。~
「mid2mus希望」と書いたメールにオリジナルなMuseデータを添付して加藤一郎氏に送ると、このソフトがもらえる。~
#author("2021-06-03T05:06:12+00:00","","")
*概要 [#lfc7c37f]
MIDIファイルをMuseデータ形式のファイルに変換するソフト。~
「mid2mus希望」と書いたメールにオリジナルなMuseデータを添付して加藤一郎氏に送ると、このソフトがもらえる。

加藤一郎氏によると、以前mid2musをもらうために中身が「drm」と記述されただけのデータが送られたことがあったという。失礼極まりない事例である。~
加藤一郎氏によると、以前mid2musをもらうために中身が「drm」と記述されただけのデータが送られたことがあったという。~
失礼極まりない事例である。しかし、「そうは言っても、自分の開発したソフトを欲しいと思う人がいることは、開発者冥利に尽きる」と加藤一郎氏は語っていた。

**mid2mus の変換 [#y8699230]
mid2mus は MIDI ファイルを機械的に Muse データに変換するため、どうしても mid2mus 特有のデータとなりやすい。~
基本として''mid2mus で変換した Muse データを『Muse の殿堂』に投稿しても審査の対象にならない。''~
~
ただ、データを聴いただけでは手書きによる打ち込みか mid2mus変換データであるかの判別は&color(red){ほぼ不可能};である。~
過去、殿堂に登録された曲の中には、mid2mus で変換された楽曲があったようだ。~
~

**mid2mus による変換の仕様 [#h1398c54]
*使い方 [#w5a3e726]
**コマンドプロンプトで起動する場合 [#b54f94bc]
mid2musはコマンドラインアプリであるため、通常はコマンドプロンプトを用いて操作する。

  mid2mus [オプション] [ファイル名]

 変換に成功すると「OK」が表示され、MIDIファイルと同名の(.mus)ファイルが出力される。~
逆に失敗すると、「Error: 内容」が表示され、Museデータも出力されない。

※引数なしで起動すると、詳細な使い方などが表示される。


**[オプション] [#q05bfeb9]
: /x1 | 出力するデータの音名を、 x1(英米) 形式にする。
: /x2 | 出力するデータの音名を、 x2(独) 形式にする。

**[ファイル名] [#ladb5ead]
変換対象のファイル名を記述する。

- 相対パスを記述した場合、現在のディレクトリーにあるファイルが対象となる。
- [*.mid]のようにワイルドカードを記述することができる。
- 複数のファイルを列挙記述することができる。


**Explorer等から起動する場合 [#e613fe65]
以下のいずれかの方法を用いれば、Explorerでも利用を試みることができる。

+ 「mid2mus」のショートカットを作成し、変換したいMidiファイルをドラッグ&ドロップする。
+ 「mid2mus /x1 %1」のようなバッチファイルを作成し、そこに変換したいMidiファイルをドラッグ&ドロップする。
+ 「送る」メニューにMid2musや、そのバッチファイルを追加し、Midiファイルを送る

上記の方法では、変換の成功/失敗の可否は、Museデータの有無、または更新日時で判断する必要がある。「>muse.log」等と記述しても良いが…

※なお、「Midiファイルを mid2mus に関連付ける」行為は避けた方が良い。過去に作成したMuseデータをMid2musによる変換結果で上書きしてしまう危険があるためである。


*mid2mus による変換の仕様 [#p191400a]
mid2mus で変換した Muse データは、手打ちで作られた Muse データとは異なる、独特の変換結果が出力される。~
ここでは、mid2mus で変換された Muse データの特徴を列挙する。~
 ※mid2mus のバージョンにより当てはまらない項目もあり。~
~
==========~
-''メンバー属性は全て フィンガー0 に記述される。'' 
--フィンガーの番号が0 以外の場所に @ が登場しない。''V や S や U などが、フィンガー0 内にすべて混在する''ことになる。
--%・テンポは #A0 にまとめて記述される。
--各フィンガー0 の末尾には「X120=0(オール・サウンド・オフ)」が自動的に出力されている。~
~
-''休符以外のフィンガー属性(音階・強弱など)は、フィンガー0 には出現しない''。
--上にある「メンバー属性」の入力タイミング用にのみ休符が使用されている。~
~
-一部のメンバー属性が X**=** に置き換えられる。~
~
-オリジナルな Muse データを MIDI にエクスポートし、さらに mid2mus で変換した場合、Muse の譜面モニタの小節線が意味を成さなくなる。~
~
※mid2mus のバージョンにより当てはまらない項目もあり。

-''フィンガーは0,1,2のみ使用される。''
--1番フィンガーにすべてのメンバー属性が記述される。''V や S や U などが、フィンガー1 内にすべて混在する''ことになる。
--2番フィンガーに音符が記述される。
--0番フィンガーはAメンバーのみ使用され、そこに全体属性が記述される。''DATA''コマンド、''%''テンポ、''TEXT''テキスト表示など。

-一部のメンバー属性が X**=** に置き換えられる。

-出力されるメンバーは@ABC……の順であるが、メンバーZ はメンバーI とメンバーJ の間に出力される。
--MIDIチャンネルの順番に出力(ドラムパートは MIDI規格では「10ch(10番目)」であるため)~
~
--MIDIチャンネルの順番に出力(ドラムパートは MIDI規格では「10ch(10番目)」であるため)

-''以下のコマンドが出力されない。''~
~
-インデント
--テキスト上の小節線やスペースなどは一切出力されない。
--各フィンガー内のデータは、行頭にタブ文字が入り、130バイト付近で改行によって折り返される。

-''以下のコマンドが出力されない。''
--''調性(\)とフラット(-)、ナチュラル(=)が存在しない''
---全ての音を実音で表記するため、調性の指定をする必要がない。フラットされる音はシャープによって記述される。したがって、ナチュラルも存在しない。
---&color(#FF0000,#FFFFFF){mid2mus の変換データの最大の特徴は調性の指定がなく、フラットの記述が一切出てこない};ところにある、と言える。~
~
---&color(#FF0000,#FFFFFF){mid2mus の変換データの最大の特徴は調性の指定がなく、フラットの記述が一切出てこない};ところにある、と言える。

--''「o」(絶対オクターブ)が出現しない''。
--- < と > の相対オクターブのみで出力される。~
~
--和音,和音の再現表記,コード,和音とコードの遅延
---1フィンガーに1音ずつ書かれる仕様のため、フィンガーごとに割り振られる。止音と出音が重なる音がある場合もフィンガーで分けられてしまう。
---10和音以上鳴らした場合などフィンガーに1音ずつ分けて記述して足りなくなった場合は、フィンガー9 にまとめて和音にして記述される。[drmfs<drmfs<dr]:i20 などを変換した場合、非常に複雑な記述となって、とてもではないが読めたものではない。~
~
--- < と > の相対オクターブのみで出力される。

--和音の再現表記,コード,和音とコードの遅延
---全ての音は実音で記述されるため、コードは記述されない。再現表記は存在する。また、遅延表記は和音の連結によって表記される。

--連符,連符の再現表記
---3連符や特殊な連符は、全て微分音長による音長の加算や休符に置き換えられる。~
~
---3連符や特殊な連符は、全て微分音長による音長の加算や休符に置き換えられる。

--曲中のタイミング合わせ
---曲中にタイミングを合わせる「%」や「%(メンバー)」は、休符に置き換えられる。記述されている全てのフィンガーに休符がつくため、タイミングを計るのは非常に難しい。~
~
---曲中にタイミングを合わせる「%」や「%(メンバー)」は、休符に置き換えられる。記述されている全てのフィンガーに休符がつく。

--''一部の''メンバー属性・フィンガー属性・テンポの遅延
---属性値と休符だけで表現される。(例:“%50 %46:4”=“%50_16 %49_16 %48_16 %47_16 %46”)~
~
---属性値と休符だけで表現される。(例:“%50 %46:4”=“%50_16 %49_16 %48_16 %47_16 %46”)

--出音・止音の指定
---スタッカートと音長の加算、休符によって表現される。止音よりも出音が早い場合は、フィンガーを分けて出力される。~
~
---スタッカートと音長の加算、休符によって表現される。止音よりも出音が早い場合は、和音の連結によって出力される。

--音長の減算(~)
---全て加算によって表現される。~
~
---全て加算によって表現される。

--アクセント,音量・強弱の相対指定
---全て実際の数値に置き換えられる。~
~
---全て実際の数値に置き換えられる。

--定義マクロ、展開マクロ、無名マクロ
---マクロが展開された状態で全て書かれる。{ } は一切登場しない。~
~
---マクロが展開された状態で全て書かれる。{ } は一切登場しない。

--ブロックコメント,冒頭以外のコメント,曲中の全角文字,小節区切りのような記号など
---Muse が再生する時に無視する文字は出てこない。ただし、データの冒頭にファイルのパスや作者名などが書かれた部分を除く。~
~
---Muse が再生する時に無視する文字は出てこない。ただし、データの冒頭にファイルのパスや作者名などが書かれた部分を除く。

--*STOP、*MARK
---すべて *TEXT に変換されるため、*STOP による曲の一時停止(クリック待ち)は一切行えない。~
~
---すべて *TEXT に変換されるため、*STOP による曲の一時停止(クリック待ち)は一切行えない。

--*FING
---全てのフィンガーに指定した属性と値が書かれる。~
~
---全てのフィンガーに指定した属性と値が書かれる。

--*FONT,*COLR
---Muse だけに有効なこれらのコマンドが登場するわけがない。~
~
--*POOL,*DATA
---システムメッセージは非対応。~
~
---Muse だけに有効なコマンドであるため、そもそも出力されない。

==========~
細かな違いまで列挙してしまったが、主にこのような違いがある。~
そのため、mid2mus で変換されたデータを読もうとするのは非常に困難であり、mid2mus で変換されたデータは、それなりに分かってしまう傾向にある。~
--システムメッセージ
---*DATAコマンドが忠実に出力される。
---*POOLコマンドは出力されず、すべて展開される。
---集約可能なNRPNは、*ROOMコマンドで出力される。
---X指定も出力される。


**mid2mus が出力しない記述一覧 [#k545e686]
README.TXTの3977行目をコピペしたものを利用している。
 	- 全域属性 ‥‥‥‥‥ % \  (*1)
 	- メンバー宣言 ‥‥‥ @ ABCDEFGHIJKLMNO Z  (*2)
 	- メンバー属性 ‥‥‥ S Y T
 	- フィンガー属性 ‥‥ ? w p q
 	- 音符記述
 		音名 ‥‥‥‥ - =
 		音長 ‥‥‥‥ ~
 	- 群記述 ‥‥‥‥‥‥ (  ) [  ] ' '
 	- 補助記述 ‥‥‥‥‥ & ,
 	- コマンド記述 ‥‥‥ * "  " (*3)
 	- マクロ記述 ‥‥‥‥ $ {  }
 	- キャンセル文字 ‥‥ | ! ; (*4)

(*1) タイミング合わせの%に限り、データ末尾に %%125 と記される。~
(*2) フィンガー番号 0 のところに @ とだけ記されているが、メンバー指定はない。~
(*3) 特定のコマンドに限る。以下を参照。~
(*4) 冒頭のみ;が登場する。
*mid2mus で変換されたデータ [#y8fb3395]
mid2mus は MIDI ファイルを機械的に Muse データに変換するため、どうしても mid2mus 特有のデータとなりやすい。

コマンド部分のコピペしたものを利用している。
 		STOP → 一時停止と文字列の表示/完全停止
 		MARK → 位置決め可能な文字列の表示
 		FONT → 上記4コマンドの文字フォント指定
 		WAVE → 音声ファイルの再生
 		FING → フィンガー属性の一括指定
 		COLR → メンバー色のカスタマイズ(1コマンドのみ有効)
 		DATA → エクスクルーシブの出力
 		POOL → エクスクルーシブ前半部の記憶
基本として''mid2mus で変換した Muse データを『Muse の殿堂』に投稿しても審査の対象にならない。''

ただ、データを聴いただけでは手書きによる打ち込みか mid2mus変換データであるかの判別は&color(red){ほぼ不可能};である。~
過去、殿堂に登録された曲の中には、mid2mus で変換された楽曲があったようだ。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS