いう変換ツールを発表しました。開発に着手する前「既に優れたツールがあれば開発する必要はないのでは?」と思ったのですが、いくつか探して試した限りでは納得行くものが見つかりませんでした。ステマを行っていきたいと思います。*/c16d16e16f16g8a16f16e24r12d24r12c48&c64変換結果を再生できるようにニコニコ大百科にも置きました。置換してコメントを記入しましたが、それ以外はデフォルト設定で変換した通りの出力です。少々邪魔に感じられますが、精度を16分音符単位に落とせば取り除くことも可能です。MMLの内容のシンプルさを追求しつつ、クオンタイズを極力損なわないよう休符を挿入します。シンプルさを犠牲にしてタイミングを正確に出力できるオプションも備えています。仕組み上、連符や短い音符によってトラック間でずれが広がっていくようなことは絶対に起こりません。細かすぎる音符や付点の数を制御する仕組みがあり、ターゲットの制約に合わせた変換が可能です。SMFフォーマット1で単一チャンネルの演奏を複数トラックに分けている場合、個別トラックで出力します。拍子情報にもとづいて、小節ごとに改行します。和音のあるトラックは単音のみが変換されます。(*>ヮ<*)開発着手時は「きっと既存のツールだって同等以上の性能があるだろう」と思って探したのですが......。誕生するきっかけになったツールです。}r1c8d8e8f8g4a8f8e8r8d8r8c4^8r8c16^32r32d16^32r32e16^32r32f16^32r32g8^16^32r32a16^32r32f16^32r32e16^32r8^32d16^32r8^32c4^16r8^16c16^32r32d16^32r32e16^32r32f16^32r32g8^16^32r32a16^32r32f16^32r32e16^32r8^32d16^32r8^32c4^16^32r8^32g8^16f16e16r16g16r1^1^1^16f16r16e16r16d8^16r16g8^16f16e16r16g16r16f16r16e16r16d8^16r16d1c8^32d8^16e8^32f16r32g32r32a16r32f16r16^32f16r32e16e16e16e16d16r16d16r16c1^1^4r4c8d8e8f8g8a4f8e16^32r32e16^32r32d16^32r32d16^32r32c2r4c4r4c4r4e4^8r8e4^8r8g4^8^16r16g4^8^16r16c16d16e16f16g8a16f16e32r16^32d32r16^32c32;MMLの内容はシンプルですが、精度や表現にやや難があります。付点出力なし、休符をタイでつなぐ、連符対応なし(よくトラック間でタイミングずれが起きます)小節ごとに改行するようですが、曲の途中の拍子変更には対応できていないようです。和音のあるトラックは単音のみが変換されます。ノートの長さを「32分音符n個分」に換算して変換していそうです。ver.2.375MMLでMIDIを作成する有名なツールです。c%7上記の変換結果は抜粋です。ターゲットがMIDIファイルなので、メタデータやコントロールチェンジに関しても出力されます。基本的には音符と音符の距離を測り、距離に対する発音の長さからクオンタイズを出力しています。この方式では、数小節にわたる長い休符が入ったときのデュレーションの精度はあまり良くなさそうです。MMLの内容はシンプルですが、精度や表現にやや難があります(上述)。連符を等分して出力できるようですが、長さ表現が冗長です。(MML末尾のc%7)コントロールチェンジ等のノート以外の情報もある程度出力します。一定の間隔で改行するようです(小節単位ではない?)和音も変換されます(精度は確認していない)和音が出力できるのはすごいですね。1.03同じくサクラ向けのツールです。出力するイベントの種類や改行タイミングなど細かく指定できます。今回はノートのみ出力する設定で変換しました。下記は主要な出力の抜粋です。連符が理想的に変換されています。ノートの長さを分解能に照らし合わせて変換しているようで、演奏情報を正確に反映していそうです。情報のロスがない反面、tick表記が目立ちます。クオンタイズの概念がないため、ベタベタに打ち込んだノート以外は半端な長さの音符と認識されるためです。最初から変換用に作成したデータであれば良質な結果が期待できますが、そうでないデータはtick表記だらけにならざるを得ません。MMLの演奏精度は良いですが、クオンタイズを伴うデータではtick表記だらけになります。変換用に調整されたデータであれば、結構良い結果が期待できるのではないでしょうか?コントロールチェンジ等のノート以外の情報もある程度出力します。小節ごとに改行するようですが、曲の途中の拍子変更には対応できていないようです。小節ごとに改行を行います。Ver1.0βppmckはファミコン音楽作成環境です。こちらはそのppmck向けの変換ツール。c16d16e16f16ga16f16e32^128r16^64^128d32^128r16^64^128c32^128128分音符単位に整列するタイプのようなので、連符が変換できません。クオンタイズ込みの箇所はやはり表現が複雑になりがちです。MMLの内容はシンプルですが、連符には対応しておらず、クオンタイズのある音符はやや複雑に表現されます。ppmck向けの音色情報を出力します。(特化したツールならではの良さ!)拍子情報にもとづいて、小節ごとに改行します。頭の休符を取り除けちゃうみたいです。和音は複数トラックに分割されて変換されます。意外と多くのツールが和音に対応しているのが驚きです。ver1.0マビノギ向けのツールらしいです。変換結果の改行はすべて手作業で挿入しました。O5L8R1CDEFG4AFER8DR8C4.R8CDEFG4AFER8DR8C4.R8CDEFG4AFER8DR8C4.R8G.F16E16R16G16R1R1R1R16F16R16E16R16D.R16G.F16E16R16G16R16F16R16E16R16D.R16D1C.R8R64E.R16G16R64A16R64F16R16R32F16R64E16E16E16E16D16R16D16R16C1&C1&C4R4CDEFGA4FE16.R32E16.R32D16.R32D16.R32C2R4C4R4C4.R8E4.R8R2R2R2C16D16E16F16GA16F16E32.R16D32.R16C32.MMLを見ると64分休符があるのに、クオンタイズのせいで休符まみれになることもなく、それでいて適度に休符が挿入されています。連符用の例外処理があるにもかかわらず連符が変換できないうえ、終盤の四分音符が休符にされてしまいました。動作を試みたところ、凶悪なフリーズが発生して再起動を余儀なくされました。似た感じだと思いますが、変換動作の良し悪しはわかりません。スクリプトで動作未確認ですが、上述の他のコンバータが抱える問題を少なからず抱えていそうです。MID2MML入手不可だったのですが、人づてに入手できました。再配布可とのことなので置いておきます。c16d16e16f16ga16f16e32&e32r16d32&d32r16c32&c3232分音符に整列するタイプらしく3連符は出力できません。付点がないのも特徴的です。箇所で32分音符の間延びが起きているのが気になります。タイミングのずれがかさんでいく可能性が考えられるのではないでしょうか。MMLの内容はシンプルですが、連符には対応していません。拍子情報にもとづいて、小節ごとに改行します。(単一ノートで表現できる箇所も、小節の境目であれば複数に分けるようです)細かなタイミングずれが発生しているように見えます。多くのツールが、下記のいずれかの問題を抱えています。連符を正しく簡潔に出力できない。クオンタイズのある音符が求める以上に複雑に表現されてしまう(tick表記を伴う場合も)。その他、クオンタイズの再現精度が低かったり、不可解なノートの消失が起きたりする。これらの問題を解消し、シンプルかつ質の高いMMLを生成することを目標に作られました。目的によってベストなツールは異なるかもしれませんが、ぜひ新しい選択肢として覚えて頂ければと思います。付いたひとりごとなども歓迎です。(*>ヮ<)/→書きました。MIDI(SMF)→MML変換ツール「PetiteMM」の紹介・アルゴリズム*1:タイで改行しないのは特別に意図があってそうしたわけでもないです。半ば開発上の経緯的な問題です。*2:褒められたら公開というのは冗談ですが、ポジティブなフィードバックをもらえると嬉しくてモチベーションが上がります。»プロフィールid:GOCHADTM、TAS、プログラミングが趣味です。かわいいものがすきです。)にも興味があります。技術系の一般記事を書いています。動画にときどき投稿します。gochaはてなブログをはじめよう!GOCHAさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。