#navi(../)
*mabimml.inc.php [#name]

|SIZE(12):RIGHT:100|LEFT:360|c
|~サマリ|[[Mabinogi>http://mabinogi.jp/]]用MML再生プラグイン|
|~リビジョン|0.8|
|~対応バージョン|Plus! 1.4.x / Adv.1.0以上|
|~投稿者|[[Logue]]|
|~投稿日|&new{2006-12-23(土) 03:08:30};|

*概要 [#description]
COLOR(RED):※QuickTimeでMIDI再生ができなくなったため、このプラグインは使用できません。[[MabiMmlEmu>http://logue.github.io/MabiMmlEmu/]]を参考に自分で組んでください。

Mabinogi用のMMLを再生、コピペ、合奏シュミレーションするプラグインです。IE以外のブラウザはそのまま再生できます。※IEはChrome Frameによる動作です。

MIDIファイルをサーバー側で生成したりダウンロードして鳴らしているわけではないため、JASRACの定める著作物使用料規定の対象になりません。
*インストール [#wa48a1c4]
%%mabimml.inc.phpをプラグインフォルダにいれ、スキンディレクトリにmabimml.jsを入れます。[[PSGConverter>../../PSGConverter]]の位置は、適当に指定してください。デフォルトでは、公式のものになっています。%%

%%なお、kanzaki.jsを使用しないスキンでは、正常に再生できない場合があります。(Plus!デフォルト、[[Logue Standardスキン>PukiWiki/カスタマイズ]]を使用する上では問題ありません)%%

0.8よりスタンドアローンで動くようにしました。

*使用方法 [#sfae5a01]
現在のところこのようになっています。
:基本|
 #mabimml(タイトル,楽器名){{
 MML@
 チャンネル1,
 チャンネル2,
 チャンネル3,
 ;
 }}
:合奏時|
同じ合奏IDの場合、グループとみなされます。
 #mabimml(タイトル,楽器名,合奏ID){{
 MML@
 チャンネル1,
 チャンネル2,
 チャンネル3,
 ;
 }}
 #mabimml(タイトル,楽器名,合奏ID){{
 MML@
 チャンネル1,
 チャンネル2,
 チャンネル3,
 ;
 }}

*サンプル [#wffbdbf1]
え?なんでQuickTimeかって?そりゃ、<param>要素が少なくて済むから。
 #mabimml(アレフガルドのテーマ,Lute){{
 MML@v15l8dafadbgbdb+ab+da+fgeb+ab+daf+adaf+aga+ab+db+ab+dbgbdbgbda+g+a+c+aeadaeac+aeac-ac+adafadbgbdb+ab+da+gf<a>ecedaf+adaf+adaf+a<dal4>d<adrgg8>d8<gd8a8>d<adrgg8>d8<gd8a8>d<adrgg8>d8<gd8a8>d<adrgg8>d8<g,
 v15>dag2.l8fed4c<a+b+a>e4d1.a4b+4b2.gfe4fga1&a1d4a4g2.fed4c<a+b+al4>ed1.<a.a8rbb1>c.c8r<bb1a.a8rbb1>c.c8r<bb1,
 l1.rrrrrrrrv15l4f.f8rgg1a.a8rgg1f.f8rgg1a.a8rgg1;
 }}

#mabimml(アレフガルドのテーマ,Lute){{
MML@v15l8dafadbgbdb+ab+da+fgeb+ab+daf+adaf+aga+ab+db+ab+dbgbdbgbda+g+a+c+aeadaeac+aeac-ac+adafadbgbdb+ab+da+gf<a>ecedaf+adaf+adaf+a<dal4>d<adrgg8>d8<gd8a8>d<adrgg8>d8<gd8a8>d<adrgg8>d8<gd8a8>d<adrgg8>d8<g,
v15>dag2.l8fed4c<a+b+a>e4d1.a4b+4b2.gfe4fga1&a1d4a4g2.fed4c<a+b+al4>ed1.<a.a8rbb1>c.c8r<bb1a.a8rbb1>c.c8r<bb1,
l1.rrrrrrrrv15l4f.f8rgg1a.a8rgg1f.f8rgg1a.a8rgg1;
}}

 #mabimml(Mountaip,Mandorin){{
 MML@rv15l8o2ce<g>f+gg+a16.a+32bb+bb+ag16.f+32fel16crcrl8e<g>f+gg+a+16r32a+32bgf+cel16d.c+32crl8<bgb>d<g>f16.f+32gg+l16arb8f8e8d+.d32c+rc8<a+8a8frf8>e8<g8>f+rl8dd+efb+b<g>ag+16.g32gel16crcrc8<g8b+8f+8>frfrfrcrcrererfrfrgrgrcrcr<g8b+8f+8>frfrfrgr<grbrbr>crcrdrdrc8cr <g8>crc8<g8b+8g8frf8d+8a8g+8a+ra+ra+8gr>e8d+8c-8frfrergrc8c8ere8frfrgrgr>c8r4.<c4,
 v15l8<ev15g>cl16crc8rcl8<ageg>c2&crcdel16ere8rel8ggged2&drgfel16ere8red8c8c8crc8crc8rcl8fffreeer16e16ddedc2&cr<eg>crcr<ageg>cr2rcdererl16grgrl8gedr2rgfererdcr4crcrf16r16fr4ererd16r16dedc,
 l4.re8r2.r8e8r1re8rg8r2.r8c8re8re8rc8rc8re8rl8er2.rer2.rer2.rer2.rgr2.rel4.re8rf8rc8re8re8re8;
 }}
#mabimml(Mountaip,Mandorin){{
MML@rv15l8o2ce<g>f+gg+a16.a+32bb+bb+ag16.f+32fel16crcrl8e<g>f+gg+a+16r32a+32bgf+cel16d.c+32crl8<bgb>d<g>f16.f+32gg+l16arb8f8e8d+.d32c+rc8<a+8a8frf8>e8<g8>f+rl8dd+efb+b<g>ag+16.g32gel16crcrc8<g8b+8f+8>frfrfrcrcrererfrfrgrgrcrcr<g8b+8f+8>frfrfrgr<grbrbr>crcrdrdrc8cr<g8>crc8<g8b+8g8frf8d+8a8g+8a+ra+ra+8gr>e8d+8c-8frfrergrc8c8ere8frfrgrgr>c8r4.<c4,
v15l8<ev15g>cl16crc8rcl8<ageg>c2&crcdel16ere8rel8ggged2&drgfel16ere8red8c8c8crc8crc8rcl8fffreeer16e16ddedc2&cr<eg>crcr<ageg>cr2rcdererl16grgrl8gedr2rgfererdcr4crcrf16r16fr4ererd16r16dedc,
l4.re8r2.r8e8r1re8rg8r2.r8c8re8re8rc8rc8re8rl8er2.rer2.rer2.rer2.rgr2.rel4.re8rf8rc8re8re8re8;
}}
**合奏サンプル [#bfbfd0f3]
 #mabimml(ハトと少年(ウクレレ),Ukulele,1,48){{
 MML@v15l64>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&c&cv0c4v15l4.c<bgc8l16rderl4.df4g8ec4r8b+bgc8l16rderl8<gb>dfgfedec4.al16efgra8g8f8g8rcc8cdefl8gafrfafg4.g4.ededed<a4rl16ab>cdl8edrdad<ar>gdl4.<g>b+bgl16b+gecl8<g>d<gb>fede4.c4<gb+g16r16>cdr<g>el16rdefl8grefrffl16gfede8r8d8<g8r4c8.>g2&go2g8.o4g2&go2g+8.o4g+2&g+o2g8.o4g2&go2g+8.o4g+2&g+o2g8.o4g2&go2f8.o4f2&fo2g8.o4g2&g<c8.>g2&go2g8.o4g2&go2g+8.o4g+2&g+o2g8.o4g2&go2g+8.o4g+2&g+o2a+8.o4g2&go2a8.o4f2&f<c8.o5c2&cl4.c<bgc8l16rderd4.f4g8l4.ecb+bgc8l16rderl8<gb>dfgfedec4.al16efgra8g8f8g8rcc8cdefl8gafrfafg4.g4.ededed<a4rl16ab>cdl8edrdad<ag>gdl4.<g>b+bgl16b+gecl8<g>d<gb>fede4<gt80>c4.t120v0c4,r2.v15l4.gger8v10c8r16d16v15<bbv10>g8r4e4c8v15gger8v10c8r16d16v15br4c8b+ec2.c2.c4c2cc<e2.<a2.>a8a2r8<g2.o4gf<cr8v10l16>b+gecv15o2g2.>c2.r8v10b+8gr>c8d4<g8>e8rdefg4e8f8r4frgfrdl8.er16d8<g8rv15g2&gr16g2&gr16g+2&g+r16g2&gr16g+2&g+r16g2&gr16f2&fr16g2&gr16g2&gr16g2&gr16g+2&g+r16g2&gr16g+2&g+r16a2&ar16f2&fr16>d+2&d+l4.gger8v10c8.d16v15<bbge>gger8v10c8.d16v15br4c-8b+el2.ccc4c2c4.c4.<e<a>a8a2r8<go4g4.f4.<c<g>c,r2.v15l4.edcr<ggge>edcrgr1r8<f1.l2.fcaedl4.grc2.r1.r2.c<gb+2.ggr2.l8ro4d+2&d+rd2&drd+2&d+r<a+2&a+r>c2&crc2&cr<a2&ar>c2&crd+2&d+rd2&drd+2&d+r<a+2&a+r>c2&crd+2&d+r<a2&ar>g2&gl4.edcr<ggr2.>edcrgr1r8<f1.l2.fcaedrc;
 }}
 
 #mabimml(ハトと少年(チューバ),Tuba,1,80){{
 MML@v15l64<g&g&g&g&g&g&g&g&g&g&g&g&g&g&g&g&g&g&g&g&g&g&g&g&g&g&g&g&g&g&g&gv0l8gv15g>cr16<g16>cdr<g>el16rfgrg8r8v8g8v15f8r8f8f8red8e8r8v8e8v15c8r8<g8>c8r<g>c8d8r8<g8>e8l16rfgrg8r8v8g8v15f8r8f8f8red8c8r8e8c8r8c8a8r8a8a8l16rgf8g8rcc8c8r8l8caraal16rgf8g4.r4.e8rel8efedcre<a4r>dr16d16ddc+dg4.r4<g>cr16<g16>cdr<g>el16rfgrg4r8f8r8f8f8red8c8r8e8c8r1.r1.c8d8d+8l16rdd+dd+8r8g8d4.r4<g8>c8r<a+b+a+l8>crd+<a+4.r4gg+r16g16g+>d+4<g+gr16f+16g>d+4rdr<aar>dd4.rcdd+l16rdd+dd+8r8g8d4.r4<g8>c8r<a+b+a+l8>crd+<a+4.r4gg+.r16>d+d+r16d16d+frgd+4rd+r16d16cdrc-c4.r4<g>cr16<g16>cdr<g>el16rfgrg4l8rfrffr16e16de4rc4<g>cr16<g16>cdr<g>el16rfgrg4l8rfrffr16e16dcrecrcaraal16rgf8g8rcl8ccrcaraal16rgf8g4.r4.e8rel8efedcre<ar4>dr16d16ddc+dg4.r4<g>cr16<g16>cdr<g>el16rfgrg4.f8r8f8f8red8t96c8r8e8t80c4.t120v0e4,r2.v10l8<g>cr16<g16>cd4<g>er16f16rgr4fr4fr16e16der4c4<g>cr16<g16>cd4<g>er16f16rgr4fr4fr16e16dc4ecrcar4al16rgf8g8r4c8.rc8a8r4a8rgf8r4g4r4er8.l8efedc.r16er<a4>d16r4r16dc+dr4g4r<g>cr16<g16>cd4<g>er16f16r4grfr4fr16e16dcrecr1.r1.cdd+r.d16d+rgr4d4r<g>cr.<a+16>crd+r4<a+4rgg+r16g16g+r>d+<g+gr16f+16gr>d+rdr4<a4r4.>d4cdd+r.d16d+4gr4d4r<g>cr.<a+16>c.r16d+r4<a+4rgg+.r.>d+r16d16d+frgrd+rd+r16d16cd4<br4>c4r<g>cr16<g16>cd4<g>er16f16r4grfr4fr16e16dre4rc<g>c,l1.rrrrrrrrrrrrrrrrrrrrrrr1v10l16<gr>c8d4<g8>e8rfr4l8grfr4fr16e16dcrecrcar4ar16g16fgr4crcar4ar16g16fr4g4r4erefedcre<a4r>dr4dc+dr4g4r<g>cl16r<g>c8d4<g8>e8rfr2f8r4f8rel8dcrer4c4;
 }}

#mabimml(ハトと少年(ウクレレ),Ukulele,1,48){{
MML@v15l64>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&c&cv0c4v15l4.c<bgc8l16rderl4.df4g8ec4r8b+bgc8l16rderl8<gb>dfgfedec4.al16efgra8g8f8g8rcc8cdefl8gafrfafg4.g4.ededed<a4rl16ab>cdl8edrdad<ar>gdl4.<g>b+bgl16b+gecl8<g>d<gb>fede4.c4<gb+g16r16>cdr<g>el16rdefl8grefrffl16gfede8r8d8<g8r4c8.>g2&go2g8.o4g2&go2g+8.o4g+2&g+o2g8.o4g2&go2g+8.o4g+2&g+o2g8.o4g2&go2f8.o4f2&fo2g8.o4g2&g<c8.>g2&go2g8.o4g2&go2g+8.o4g+2&g+o2g8.o4g2&go2g+8.o4g+2&g+o2a+8.o4g2&go2a8.o4f2&f<c8.o5c2&cl4.c<bgc8l16rderd4.f4g8l4.ecb+bgc8l16rderl8<gb>dfgfedec4.al16efgra8g8f8g8rcc8cdefl8gafrfafg4.g4.ededed<a4rl16ab>cdl8edrdad<ag>gdl4.<g>b+bgl16b+gecl8<g>d<gb>fede4<gt80>c4.t120v0c4,r2.v15l4.gger8v10c8r16d16v15<bbv10>g8r4e4c8v15gger8v10c8r16d16v15br4c8b+ec2.c2.c4c2cc<e2.<a2.>a8a2r8<g2.o4gf<cr8v10l16>b+gecv15o2g2.>c2.r8v10b+8gr>c8d4<g8>e8rdefg4e8f8r4frgfrdl8.er16d8<g8rv15g2&gr16g2&gr16g+2&g+r16g2&gr16g+2&g+r16g2&gr16f2&fr16g2&gr16g2&gr16g2&gr16g+2&g+r16g2&gr16g+2&g+r16a2&ar16f2&fr16>d+2&d+l4.gger8v10c8.d16v15<bbge>gger8v10c8.d16v15br4c-8b+el2.ccc4c2c4.c4.<e<a>a8a2r8<go4g4.f4.<c<g>c,r2.v15l4.edcr<ggge>edcrgr1r8<f1.l2.fcaedl4.grc2.r1.r2.c<gb+2.ggr2.l8ro4d+2&d+rd2&drd+2&d+r<a+2&a+r>c2&crc2&cr<a2&ar>c2&crd+2&d+rd2&drd+2&d+r<a+2&a+r>c2&crd+2&d+r<a2&ar>g2&gl4.edcr<ggr2.>edcrgr1r8<f1.l2.fcaedrc;
}}
#mabimml(ハトと少年(チューバ),Tuba,1,80){{
MML@v15l64<g&g&g&g&g&g&g&g&g&g&g&g&g&g&g&g&g&g&g&g&g&g&g&g&g&g&g&g&g&g&g&gv0l8gv15g>cr16<g16>cdr<g>el16rfgrg8r8v8g8v15f8r8f8f8red8e8r8v8e8v15c8r8<g8>c8r<g>c8d8r8<g8>e8l16rfgrg8r8v8g8v15f8r8f8f8red8c8r8e8c8r8c8a8r8a8a8l16rgf8g8rcc8c8r8l8caraal16rgf8g4.r4.e8rel8efedcre<a4r>dr16d16ddc+dg4.r4<g>cr16<g16>cdr<g>el16rfgrg4r8f8r8f8f8red8c8r8e8c8r1.r1.c8d8d+8l16rdd+dd+8r8g8d4.r4<g8>c8r<a+b+a+l8>crd+<a+4.r4gg+r16g16g+>d+4<g+gr16f+16g>d+4rdr<aar>dd4.rcdd+l16rdd+dd+8r8g8d4.r4<g8>c8r<a+b+a+l8>crd+<a+4.r4gg+.r16>d+d+r16d16d+frgd+4rd+r16d16cdrc-c4.r4<g>cr16<g16>cdr<g>el16rfgrg4l8rfrffr16e16de4rc4<g>cr16<g16>cdr<g>el16rfgrg4l8rfrffr16e16dcrecrcaraal16rgf8g8rcl8ccrcaraal16rgf8g4.r4.e8rel8efedcre<ar4>dr16d16ddc+dg4.r4<g>cr16<g16>cdr<g>el16rfgrg4.f8r8f8f8red8t96c8r8e8t80c4.t120v0e4,r2.v10l8<g>cr16<g16>cd4<g>er16f16rgr4fr4fr16e16der4c4<g>cr16<g16>cd4<g>er16f16rgr4fr4fr16e16dc4ecrcar4al16rgf8g8r4c8.rc8a8r4a8rgf8r4g4r4er8.l8efedc.r16er<a4>d16r4r16dc+dr4g4r<g>cr16<g16>cd4<g>er16f16r4grfr4fr16e16dcrecr1.r1.cdd+r.d16d+rgr4d4r<g>cr.<a+16>crd+r4<a+4rgg+r16g16g+r>d+<g+gr16f+16gr>d+rdr4<a4r4.>d4cdd+r.d16d+4gr4d4r<g>cr.<a+16>c.r16d+r4<a+4rgg+.r.>d+r16d16d+frgrd+rd+r16d16cd4<br4>c4r<g>cr16<g16>cd4<g>er16f16r4grfr4fr16e16dre4rc<g>c,l1.rrrrrrrrrrrrrrrrrrrrrrr1v10l16<gr>c8d4<g8>e8rfr4l8grfr4fr16e16dcrecrcar4ar16g16fgr4crcar4ar16g16fr4g4r4erefedcre<a4r>dr4dc+dr4g4r<g>cl16r<g>c8d4<g8>e8rfr2f8r4f8rel8dcrer4c4;
}}
*更新履歴/ダウンロード [#y676c076]
**プラグイン本体 [#nb8b5dd5]
|~ver|~変更点|~ファイル|
|0.8|[[PSGConverter.js>http://logue.github.com/PSGConverter]]準拠にした。|&ref(mabimml.inc.php.8);|
|0.6|・楽器が入力されてなかったり、曲名が入力されてなかった場合の挙動のバグを修正|&ref(mabimml.inc.php.4);|
|0.5|・仕様を変更。&br;・楽器指定が必修に|&ref(mabimml.inc.php.3);|
|0.2|・MML一括コピーを実装。IEではプラグインを呼び出し、それ以外はdataスキーマーで生成。&br;・|&ref(mabimml.inc.php.2);|
|0.1alpha2|・デザインを若干見やすくした。&br;・XSSの脆弱性を修正。ただし完璧なものではない。|&ref(mabimml.inc.php.a1);|
|0.1alpha|初回リリース|&ref(mabimml.inc.php);|

**プラグイン用JavaScript [#f32eb3f2]
0.8からは不要になりました。

自分で言うのも難だが、絡まりまくったスパゲティーと化している。用途の割にダウンロード回数が異様に多いが、たぶん流用できるような改造しやすいソースじゃないぞ。(環境依存多いし)
|~ver|~変更点|~ファイル|
|0.8.1|・kanzaki.js依存をやめた。Plus!でなくても使用可能に。&br;・コピーするときにクリップボード上書きの確認画面を表示するようにした。|&ref(mabimml.js.4.tgz);|
|0.8d|・シャルーモをシャリュモーに変更&br;・曲名のコピーに対応。&br;・コピーするときに警告を出すようにした。|&ref(mabimml.js.3);|
|0.8b|・合奏に対応&br;・PSGConverter.phpに対応|&ref(mabimml.js.2);|
|0.6|・仕様変更に伴うバージョンアップ|&ref(mabimml.js.1);|
|0.3a|・Firefoxで再生されなかったバグを修正&br;・非IEではJavaScriptによるMML変換と再生をデフォルトにした。&br;・音量のデフォルトを100に設定||
|0.3|・QuickTimeがインストールされていない場合、警告がでなかったバグを修正&br;・停止ボタンを追加&br;・MIDI変換ロジックにJavaScriptを設定するとIEで再生できなくなるバグを修正||
|0.2|・プレーヤー描画ロジックを一部変更&br;・Mozilla系ブラウザ使用時に、[[まきまびしーく>http://www.geocities.jp/makimabi/]]用ファイルおよび、MMLをダウンロードできるようにした&br;・しっぽのうたのJavaScript版PSGConverterをマージ||
|0.1|とりあえずリリース|&ref(mabimml.js);|


*関連サイト [#e02aefd4]
-[[マビノギ/MML]] - 自前のコンテンツ。trackerなどの使用例含む。
-[[PSGConverter.js>http://logue.github.com/PSGConverter]] - 0.8以降再生エンジンとして使っているプログラム。
-[[PSGConverter.php>http://www.annie.ne.jp/~tamanegi/]]
-[[まきまびしーく>http://www.geocities.jp/makimabi/]]
*コメント [#r2a2ca2f]
#pcomment