PSGConverter.js

PSGConverterとは、マビノギのMMLをMIDIに変換するプログラムです。このページの実装は、JavaScriptのみによるものです。 すべて、クライアントサイドで実現している(MIDIファイルをホストしていない)ため、法律に違反せずMMLを公開することができます。

公式サイト サポート掲示板 プロジェクトサイト デモ ダウンロード

このプログラムは、再生にQuickTimeを使用します。マビノギのMMLをpreタグに入れ、クラス属性をmabimmlにしてください。

<pre class="mabimml" title="MML Name" data-inst="105"> ... Insert valied Mabinogi MML ... </pre>
次にページのフッター部分に以下のスクリプトを挿入してください。jQueryは必要に応じてで構いません。

<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>
<script type="text/javascript" src="http://logue.github.com/PSGConverter/js/PSGConverter.min.js"></script>

また、サイト利用者がIE遣いが多い場合は、ヘッダーのmetaタグに、以下の行を挿入するようお願いします。

<meta http-equiv="X-UA-Compatible" content="chrome=1">

IEではdataスキームを正常に処理できないため、Chrome Frameを用いた実装になります。

属性 説明
title MMLの名前です。
data-inst GM楽器を指定する場合その番号を入力してください。
data-inst-name マビノギの楽器名を英語で入力してください。例:Lute 詳細は楽器タブにて。
data-pan 音の定位を指定できます。デフォルトは64(中央)です。
data-effect リバーブエフェクトの量。デフォルトは40です。
data-group 合奏用MMLの場合、ここの値を揃えておくと合奏ボタンが表示されます。

data-inst-nameに入力されたGM楽器は以下の様な指定になっています。

名前 GM音源のマッピングth> 最高音階 最低音階
Lute 25. Acoustic Guitar (nylon) 88 16
Ukulele 29. Electric Guitar (muted) 88 16
Mandorin 106. Banjo 88 16
Whistle 79. Whistle 88 60
Flute 74. Flute 83 48
Roncadora 78. Shakuhachi 83 48
Chalumeau 72. Clarinet 59 24
Tuba 59. Tuba 59 24
Lyre 47. Orchestral Harp 88 16
Snare 49, Orchestra Kit (Concert SD) 38 38
Drum 49, Orchestra Kit (Concert SD) 40 40
Bass Drum 49, Orchestra Kit (Concert SD) 35 35
Cymbal 49, Orchestra Kit (Hand Cymbal) 57 57
Xylophone 14. Xylophone 88 16
Electric Guitar 14. Electric Guitar (distortion) 88 16

音階の限界値を超えるとマビノギと同じように再生されます。

注意:これらのサンプルは、ZeroClipboardの仕様の問題でクリップボードへコピーする機能が動作しません。

基本「Tim2/レミングス」

<pre class="mabimml" title="Tim2" data-inst-name="Lute">MML@
l64e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&ev0e2t124v15l16eegeeegeeeaagad2l8r>cc<agl16ggeag8efggeag8fed4.r8>e8e8dc<agt124eegeeegeeeaagad2l8r>cc<agl16ggeag8efggeag8fed4.r8>e8e8dc<agl8fgagb+bfg4gfgfedc4.r4ggabggabb+bagfgagb+bfg4gfgfedc4.r4ggabggabb+bagr4>eeedc<b4gged4efo2cr>cro6cc<ag4<gggb+4b>c2&cl16gag8gag4l8<ddef4edc1<g1,
r1v15l8o2cr>cr<frag4gagagab+cr>cr<frag4gagagab+cr>cr<frag4gagagab+cr>cr<frag4gagagab+fffeff+ff+gggggabrfffefeff+gggggfedfffefeff+gggggabrfffefeff+gggggfedcr>cr<frag4gagaga>cr2<frag4r1r4.l16o4gag8gag4,
l1.rrrrrrv15<f2l4.ag1c8a2b+g1r8f2ag1c8a2>cl1dr8erel8ro2gagagab+cr>cr<frag4gagagab+cr>cr<frag4gagagfe
;</pre>
MML@
l64e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&ev0e2t124v15l16eegeeegeeeaagad2l8r>cc<agl16ggeag8efggeag8fed4.r8>e8e8dc<agt124eegeeegeeeaagad2l8r>cc<agl16ggeag8efggeag8fed4.r8>e8e8dc<agl8fgagb+bfg4gfgfedc4.r4ggabggabb+bagfgagb+bfg4gfgfedc4.r4ggabggabb+bagr4>eeedc<b4gged4efo2cr>cro6cc<ag4<gggb+4b>c2&cl16gag8gag4l8<ddef4edc1<g1,
r1v15l8o2cr>cr<frag4gagagab+cr>cr<frag4gagagab+cr>cr<frag4gagagab+cr>cr<frag4gagagab+fffeff+ff+gggggabrfffefeff+gggggfedfffefeff+gggggabrfffefeff+gggggfedcr>cr<frag4gagaga>cr2<frag4r1r4.l16o4gag8gag4,
l1.rrrrrrv15<f2l4.ag1c8a2b+g1r8f2ag1c8a2>cl1dr8erel8ro2gagagab+cr>cr<frag4gagagab+cr>cr<frag4gagagfe
;

合奏の例「ルーファウス歓迎式典/ファイナルファンタジー7」

このプログラムは合奏のエミュレーションにも対応しています。

<pre class="mabimml" title="Rufus Welcoming Ceremony (シャルモー)" data-inst-name="Chalumeau" data-pan="32" data-group="1">MML@
t120l64<e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&ev0e2v15e4.l16eeerfrf+rgrg+r8.er2r8.g+4.g+g+g+rarbr>c+rdr8.<br4.rl12eg+b>d4d8.l16c+dr<br4r>d4d8.c+dr<br4r>e4.eee4.eee2.e8.dc+4c+8.c-c+rdrc+r<bra2r8ar>c+rerf+4d8.c+c-4f+4e2&e8r8c+rerf+4d8.c+c-4g+4e2c+4erarg+4g+8.f+g+rarg+rf+re2.l12e&edc+4c+8.l16c-c+rdrc+r<bra2r8ar>c+rerf+4d8.c+c-4f+4e2&e8r8c+rerf+4d8.c+c-4g+4e2c+rc+r<br>c+rdrc-4drc+r<a4>c+r<b2ar1.r2.r8.a4a8.g+arg+rf+rg+rer8.c+8.dc+r<brarg+ro4c+4c+8.c+c+r<g+rar>c+r<br8.er4.rl12eg+b>d4d8.l16c+dr<br4r>d4d8.c+dr<br4r>e4.eee4.eee2.,
r1.r8v15l16<d+rdrc+rcr8.<g+r1r4r>grf+rfrer8.<br2r8.b4>c8.cc+rc+r4rd4c+8.c+<brbr4r>e4.ee<a4.aa>e2.r4a4a8.ag+rg+rarg+re2r8erarg+ra4a4g+4b4a2&a8r8arg+ra4a4g+4>e4c+2<a4>c+rerc+4c+4crcrcrcrc+2<b8r8l12g+&g+g+a4a8.l16ag+rg+rarg+re2r8erarg+ra4a4g+4b4a2&a8r8arg+ra4a4g+4>e4c+2<ararg+rarbrf+4brare4are2er1.r2.r8.f+4f+8.ff+r8.arbrg+r8.g+r2r8.a4a8.aarbr>c+rdrer8.<g+r2r8.e4f8.ff+rf+r4rg4f8.ferer4rb4.bb>c4.cc<b2.,
l1.rrrrr1v15<b4.l16bb>c4.cc<b2.l4r<aeebaeaedaebaeaedaebaeaec+g+d+g+c+g+ebaeebaeaedaebaeaedaebaef+ec-f+aeb2l16ar1.r1.r4.ro4c+r8.<br2r8.<a4e4c+8e8a8bal4g+f+edeff+.r8gfe.r8>e.l16ee<b4.bb>e2.
;</pre>
<pre class="mabimml" title="Rufus Welcoming Ceremony (フルート)" data-inst-name="Flute" data-pan="96" data-group="1">MML@
t120l64e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&ev0e2v15e4.l16eeerfrf+rgrg+r8.er2r8.g+4.g+g+g+rarbr>c+rdr8.<br4.rl12eg+b>d4d8.l16c+dr<br4r>d4d8.c+dr<br4r>e4.eee4.eee2.r4arc+r<ar>c+rarc+r<g+r>c+rarc+r<ar>c+rarc+r<ar>c+rf+rf+r<ar>f+rf+rf+r<ar>f+rerc+r<ar>c+rar<brg+rbr>f+rf+rdrf+rg+rf+rdrf+rarerc+rerarc+rc+rc+rg+rerc+rerg+rcrcrcrl24g+f+g+f+g+f+g+f+g+f+g+f+g+f+g+f+g+f+g+f+g+f+g+f+l16arc+r<ar>c+rarc+r<g+r>c+rarc+r<ar>c+rarc+r<ar>c+rf+rf+r<ar>f+rf+rf+r<ar>f+rerer<ar>erar<brg+rbr>f+rf+r<ar>f+rg+rf+r<g+r>f+rarc+r<ar>c+rarc+r<g+r>c+rf+rf+r<br>f+rf+rer<ar>erl24g+f+g+f+g+f+g+f+g+f+g+f+l8ar1.r2.r<a4a.l16aarg+rf+rg+rer8.c+r2r8.>c+4c+8.c+c+r<brar>c+r<br8.g+r4.rl12eg+b>d4d8.l16c+dr<br4r>d4d8.c+dr<br4r>e4.eee4.eee2.,
r1.r8v15l16d+rdrc+rcr8.c+r1r4rgrf+rfrer8.g+r2r8.e4f8.ff+rf+r4rg4f+8.f+erer4r>d4.ddc4.cc<b2.r4>ererc+rerererc+rerererc+rerererc+rerardrdrdrg+rdrdrdrarerc+rererer<br>erardr<ar>drerdr<g+r>drerc+r<ar>c+rf+rer<ar>ererc+r<g+r>c+rd+rd+r<g+r>d+rl24eaeaeaeaeaeaeaeaeaeaeaeal16ererc+rerererc+rerererc+rerererc+rerardrdrdrg+rdrdrdrarc+rc+rc+rerer<br>erardrdrdrerdrdrdrererc+rerf+rerc+rerbrdrdrdrarc+rc+rc+,
l1.rrrrrrrrrrrrrrrrv15l24>eaeaeaeaeaeal8er1.r2.r<f+4f+.l16f+f+rerdrerc+r2.r8.a4a8.aarg+rf+rarg+r8.er2r8.e4f8.ff+rf+r4rg4f8.ferer4r>d4.ddc4.cc<b2.
;</pre>
<pre class="mabimml" title="Rufus Welcoming Ceremony (小太鼓)" data-inst-name="Drum" data-pan="48" data-group="1">MML@
t120l64o2d&d&d&d&d&d&d&d&d&d&d&d&d&d&d&d&d&d&d&d&d&d&d&d&d&d&d&d&d&d&d&dv0d2v15l32ddddddddd8d16d16d8d8d8d8d4d4r2ddddddddd8d16d16d8d8d8d8d4d4r2d4ddddddddd8d8r4d4ddddddddd8d8r4ddddddddddddddddddddddddddddddddddddddddddddddddd2d8d8l16ddddd8d8ddddd8d8ddddd8d8l32ddddddddd8d8l16ddddd8d8ddddd8d8ddddd8d8l32ddddddddd8d8l16ddddd8d8ddddd8d8ddddd8d8l32ddddddddd8d8l16ddddd8d8ddddd8d8ddddd8d8l32ddddddddd8d8l16ddddd8d8ddddd8d8ddddd8d8l32ddddddddd8d8l16ddddd8d8ddddd8d8ddddd8d8l32ddddddddd8d8l16ddddd8d8ddddd8d8ddddd8d8l32ddddddddd8d8l16ddddd8d8ddddl32ddddddddddddddddd2d8d4.d8d4.ddddddddddddddddd8d4.r1.r1.r1d4ddddddddd8d4.d4ddddddddd8d4.ddddddddddddd16d16ddddddddddddd16d16ddddddddddddddddd2,
,
;</pre>
<pre class="mabimml" title="Rufus Welcoming Ceremony (大太鼓)" data-inst-name="Bass Drum" data-pan="64" data-group="1">MML@
t120l64o2c&c&c&c&c&c&c&c&c&c&c&c&c&c&c&c&c&c&c&c&c&c&c&c&c&c&c&c&c&c&c&cv0c2r1.v15l4cc2.r1cc1c1cc2c2c1ccccccc2ccccccc2ccccccc2ccccccc2ccccccc2ccccccc2ccccccc2ccccc1c8c.c8c.c2c8c.r1.cc2.r1cc1c1cc2c2c1,
,
;</pre>
<pre class="mabimml" title="Rufus Welcoming Ceremony (シンバル)" data-inst-name="Cymbal" data-pan="64" data-group="1">MML@
t120l64o2a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&av0l2ar1.v15a4a.r1a4a1a1a4aaa1aaaraaaraaaraaaraaaraaaraaaraal1ar.r.r2arar4aa4a2a2a,
,
;</pre>
MML@
t120l64<e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&ev0e2v15e4.l16eeerfrf+rgrg+r8.er2r8.g+4.g+g+g+rarbr>c+rdr8.<br4.rl12eg+b>d4d8.l16c+dr<br4r>d4d8.c+dr<br4r>e4.eee4.eee2.e8.dc+4c+8.c-c+rdrc+r<bra2r8ar>c+rerf+4d8.c+c-4f+4e2&e8r8c+rerf+4d8.c+c-4g+4e2c+4erarg+4g+8.f+g+rarg+rf+re2.l12e&edc+4c+8.l16c-c+rdrc+r<bra2r8ar>c+rerf+4d8.c+c-4f+4e2&e8r8c+rerf+4d8.c+c-4g+4e2c+rc+r<br>c+rdrc-4drc+r<a4>c+r<b2ar1.r2.r8.a4a8.g+arg+rf+rg+rer8.c+8.dc+r<brarg+ro4c+4c+8.c+c+r<g+rar>c+r<br8.er4.rl12eg+b>d4d8.l16c+dr<br4r>d4d8.c+dr<br4r>e4.eee4.eee2.,
r1.r8v15l16<d+rdrc+rcr8.<g+r1r4r>grf+rfrer8.<br2r8.b4>c8.cc+rc+r4rd4c+8.c+<brbr4r>e4.ee<a4.aa>e2.r4a4a8.ag+rg+rarg+re2r8erarg+ra4a4g+4b4a2&a8r8arg+ra4a4g+4>e4c+2<a4>c+rerc+4c+4crcrcrcrc+2<b8r8l12g+&g+g+a4a8.l16ag+rg+rarg+re2r8erarg+ra4a4g+4b4a2&a8r8arg+ra4a4g+4>e4c+2<ararg+rarbrf+4brare4are2er1.r2.r8.f+4f+8.ff+r8.arbrg+r8.g+r2r8.a4a8.aarbr>c+rdrer8.<g+r2r8.e4f8.ff+rf+r4rg4f8.ferer4rb4.bb>c4.cc<b2.,
l1.rrrrr1v15<b4.l16bb>c4.cc<b2.l4r<aeebaeaedaebaeaedaebaeaec+g+d+g+c+g+ebaeebaeaedaebaeaedaebaef+ec-f+aeb2l16ar1.r1.r4.ro4c+r8.<br2r8.<a4e4c+8e8a8bal4g+f+edeff+.r8gfe.r8>e.l16ee<b4.bb>e2.
;
MML@
t120l64e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&e&ev0e2v15e4.l16eeerfrf+rgrg+r8.er2r8.g+4.g+g+g+rarbr>c+rdr8.<br4.rl12eg+b>d4d8.l16c+dr<br4r>d4d8.c+dr<br4r>e4.eee4.eee2.r4arc+r<ar>c+rarc+r<g+r>c+rarc+r<ar>c+rarc+r<ar>c+rf+rf+r<ar>f+rf+rf+r<ar>f+rerc+r<ar>c+rar<brg+rbr>f+rf+rdrf+rg+rf+rdrf+rarerc+rerarc+rc+rc+rg+rerc+rerg+rcrcrcrl24g+f+g+f+g+f+g+f+g+f+g+f+g+f+g+f+g+f+g+f+g+f+g+f+l16arc+r<ar>c+rarc+r<g+r>c+rarc+r<ar>c+rarc+r<ar>c+rf+rf+r<ar>f+rf+rf+r<ar>f+rerer<ar>erar<brg+rbr>f+rf+r<ar>f+rg+rf+r<g+r>f+rarc+r<ar>c+rarc+r<g+r>c+rf+rf+r<br>f+rf+rer<ar>erl24g+f+g+f+g+f+g+f+g+f+g+f+l8ar1.r2.r<a4a.l16aarg+rf+rg+rer8.c+r2r8.>c+4c+8.c+c+r<brar>c+r<br8.g+r4.rl12eg+b>d4d8.l16c+dr<br4r>d4d8.c+dr<br4r>e4.eee4.eee2.,
r1.r8v15l16d+rdrc+rcr8.c+r1r4rgrf+rfrer8.g+r2r8.e4f8.ff+rf+r4rg4f+8.f+erer4r>d4.ddc4.cc<b2.r4>ererc+rerererc+rerererc+rerererc+rerardrdrdrg+rdrdrdrarerc+rererer<br>erardr<ar>drerdr<g+r>drerc+r<ar>c+rf+rer<ar>ererc+r<g+r>c+rd+rd+r<g+r>d+rl24eaeaeaeaeaeaeaeaeaeaeaeal16ererc+rerererc+rerererc+rerererc+rerardrdrdrg+rdrdrdrarc+rc+rc+rerer<br>erardrdrdrerdrdrdrererc+rerf+rerc+rerbrdrdrdrarc+rc+rc+,
l1.rrrrrrrrrrrrrrrrv15l24>eaeaeaeaeaeal8er1.r2.r<f+4f+.l16f+f+rerdrerc+r2.r8.a4a8.aarg+rf+rarg+r8.er2r8.e4f8.ff+rf+r4rg4f8.ferer4r>d4.ddc4.cc<b2.
;
MML@
t120l64o2d&d&d&d&d&d&d&d&d&d&d&d&d&d&d&d&d&d&d&d&d&d&d&d&d&d&d&d&d&d&d&dv0d2v15l32ddddddddd8d16d16d8d8d8d8d4d4r2ddddddddd8d16d16d8d8d8d8d4d4r2d4ddddddddd8d8r4d4ddddddddd8d8r4ddddddddddddddddddddddddddddddddddddddddddddddddd2d8d8l16ddddd8d8ddddd8d8ddddd8d8l32ddddddddd8d8l16ddddd8d8ddddd8d8ddddd8d8l32ddddddddd8d8l16ddddd8d8ddddd8d8ddddd8d8l32ddddddddd8d8l16ddddd8d8ddddd8d8ddddd8d8l32ddddddddd8d8l16ddddd8d8ddddd8d8ddddd8d8l32ddddddddd8d8l16ddddd8d8ddddd8d8ddddd8d8l32ddddddddd8d8l16ddddd8d8ddddd8d8ddddd8d8l32ddddddddd8d8l16ddddd8d8ddddl32ddddddddddddddddd2d8d4.d8d4.ddddddddddddddddd8d4.r1.r1.r1d4ddddddddd8d4.d4ddddddddd8d4.ddddddddddddd16d16ddddddddddddd16d16ddddddddddddddddd2,
,
;
MML@
t120l64o2c&c&c&c&c&c&c&c&c&c&c&c&c&c&c&c&c&c&c&c&c&c&c&c&c&c&c&c&c&c&c&cv0c2r1.v15l4cc2.r1cc1c1cc2c2c1ccccccc2ccccccc2ccccccc2ccccccc2ccccccc2ccccccc2ccccccc2ccccc1c8c.c8c.c2c8c.r1.cc2.r1cc1c1cc2c2c1,
,
;
MML@
t120l64o2a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&a&av0l2ar1.v15a4a.r1a4a1a1a4aaa1aaaraaaraaaraaaraaaraaaraaaraal1ar.r.r2arar4aa4a2a2a,
,
;

入力

MMLに再生できない音階が含まれている場合、ここの色が変化します。

が0で、中央は64、は127になります。

デフォルトは40です。

0は合奏になりません。

Output