JSMML

JSMMLとは、おー氏のFlashでアナログシンセサイザ+MMLプレイヤーを実現したFLMMLのJavaScript版のスクリプトです。2nd life氏のJavaScript から MML を再生する - JSMMLを改良したもので、ローパスフィルタなどの様々な命令に対応しています。

こちらに移転しました
http://logue.github.io/JSMML/

基本的な使い方

JSMML-125.7zを解凍すると以下のファイルが展開されます。

  • JSMML.js
  • JSMML.min.js - ソース軽量化版
  • JSMML.swf
  • textarea_play.html - JSMMLのAPIすべてを使ったサンプルです。

Flashのセキュリティの仕様上、必ず同一ドメインに設置してください。同一の問題でhttp:プロトコルで無い環境(ダブルクリックで開くなど)では動作しません。

1.2では、swfobject2を用いてflashを生成しています。

更新履歴/ダウンロード

2010/06/15
jsmml-125.7z
  • FLMMLをr37838相当に更新。
  • swfObjectを動的に読み込むように。(定義されていない場合Google CDNから読み込む。dojoの場合、dojox.embed.Flashを使用。)
  • dojo&jQuery両対応。各フレームワークが読み込まれていたときに、そのフレームワークのネイティブ命令を使って処理させます。
  • setMasterVolumeが正常に動作していなかったバグを修正
  • jQueryの$(document).ready()や、dojoのdojo.addOnLoad()が指定されていた場合、正常にJSMMLが起動できないバグを修正。
  • サンプルを更新。経過時間、プログレスバー、音量調整などができるようにした。
2009/10/12
JSMML-1.2.7z
  • JSMML.jsにswfObjects2.5を内蔵。ページを閉じた時ののメモリーリークなどが緩和されます
  • JSMMLのonLoadイベントをFastinitで行うようにした。安定化
  • ローカルで動かしたとき警告を出すようにした。(セキュリティ上JSMMLはローカル(http://で始まらないアドレス)で動作しない)
  • FLMML r344575相当。JSMML.jsも書き換えています。以下のオプションを追加。
    • setMasterVolume(volume) - マスターボリュームを指定
    • getWarnings() - 警告を取得
    • isPlaying() - 再生中かどうかを検出
    • isPaused() - 一時停止状態かどうかを検出
    • getTotalMSec() - MMLのトータルの長さをmsで返す
    • getTotalTimeStr() - MMLの時間を返す
    • getNowMSec() - MMLの現在の再生時間をmsで返す
    • getNowTimeStr() - MMLの現在の再生時間を返す
  • リングモジュレーターとSync
  • ファミコンDPCM
  • エクスプレッション
  • 引数付きマクロ
2009/03/20
JSMML090320.7z
2009/02/22
JSMML090222.7z
2008/12/25
JSMML.swf.tgz
2008/11/30
JSMML081130.swf.tgz

サンプル

同時発色音数MAX9、すべてフィルタを加えているもっとも再生が重いMML。

New Holizon
/** Chalumeau  **/
$conf0=@1 @w50 @E1,4,24,64,16 @F1,24,80,48 @L8,36,0,128 @P32 v8l4o5;
$conf0 l64c&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&ct140v0c2v8c2.l8cdc2.cdc2.cdl4r>baba2<e1&ed8e8d2.d8e8dcc-dc2>fef2.g8a8b2d+2.f+b+bv10l1b.&b.&b<c&c>b&b<c&c>b&bl1.rrrrrrl2<c.c8>b8a<ed.c8d8>a1<c.c8>b8a<egdd1c.c8>b8a<ed.c8d8>a1<c.c8>b8a<e>aaa1<c.c8>b8a<ed.c8d8>a1<c.c8>b8a<egdd1c.c8>b8a<ed.c8d8>a1<c.c8>b8gbaa<ccl1>g<cde2g2b+.a2g+grraa4g4l2eagfee1.&e1.&egl1a&ag&ga&aa&aa.l4gfe8c8c1&cegb+1.bab1&b1b+1.bb+b8g8e1&eegl1.<c&c&c1>g+&g+&g+1;
$conf0 l1rv12>c>bagf+fed<cc>bf+e<dc-ea&ag+&g+a&ag+&g+r>g&gf+&f+f&ff+&f+g&gf+&f+f&ff+&f+g&gf+&f+f&ff+&f+g&gf+&f+f&ff+&f+g&gf+&f+fe<d2e2f+2f2c>ba.g2f+.f+2fed+&d+db+b<e>agf+&f+f<fe>a<d&d>g&gf&f<c&c>f&f<c&c>f&f<c&c>a+&a+a+a+a&aa&a;
$conf0 l1rv10>eeeb+2e2edcd+d&dd+2r2caf+>g+&g+<d&de&eg&ge&el1.rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrl1r<f+&f+f.r.ra.&a.&a2b2<c&c>b&b<c&cc.>b2rrb+8l1.e1&e4.g4b4ag4e4g1&g1ag4a4g8e8c1&c4c4e4a&a&a1e&e&e1;

/** Flute **/
$conf1=@2 @w52 @E1,8,48,80,24 @F1,36,80,18 @L8,36,0,128 @P96 v8l4o5;
$conf1 l64<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&ct140v0c2v15c2.l8cdc2.cdc2.cdl4r>baba2<e1&ed8e8d2.d8e8dcc-dl2c>ff.g8a8bf+.l4gb+bb1.&b1.&b1<e1&edcd>b1&b.r8b2<d1&dc>bal16bb+bab1.&b4l1.rrrrrrl2<c.c8>b8a<ed.c8d8>a1<c.c8>b8a<egdd1c.c8>b8a<ed.c8d8>a1<c.c8>b8a<e>aaa1<c.c8>b8a<ed.c8d8>a1<c.c8>b8a<egdd1c.c8>b8a<ed.c8d8>a1<c.c8>b8gbaaa1o7c.l8cdc2.cdc2.cdl4c>baba2<e1&ed8e8d2.d8e8dcc-dl2cr>d.b+8b8b+f.g4a4b+4bd+a4g+4b<c.l8cdc2.cdc2.cdl4c>baga2<c1&cc-8c8>b2.b8b+8bge>a<f2<g1fee2a1ge>a1.brb8g8e1&edee1.dcl8gde1&e4ab<cdl1.ed4c4>b8g8e1&e4g4e4<c&c&c2>b4a4e8c+8>b&b&b2.;
$conf1 l1r.r.rv15<c2rv13>a2g+gf+f2r.r.r2af+g+&g+r.r.rg&gg+&g+l1.rrrrrrrrrrrrrrrrr1v15l2<e.e8d8cgf+.e8f+8d1e.e8d8cgbaa1e.e8d8cgf+.e8f+8d1e.e8d8c-ddcc>bl1g<cde2g2b+.a2g+gf2f.c&c4>b4a2b.a8b8<c8d8e&e<e&e4l4dcc-c2g1&gg8a8g2.g8a8gedc-c2b+1ba>a2<e1dc-l1.c&c4c&c2.>ag4e4b8g8e&e4ag4e4d8>b8g1&g4g4b4<a&a&a2g4f4l1r.r4a8f+8c+&c+;
$conf1 l1.rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr1v15l2<a.a8g8eb+b.a8b8f+1a.a8g8egf+eedl1.rrrrrr2c1&c1rrl2rdr1a1.&a.l4gede2<e1&ed8e8d2.d8e8d>bgra2<e1r2>f2b+1d2e1.>bal1.rrrr<b+b4a4rrr2.<c8d8ed4c4>b8g+8e&e&e2.;

/** Mandolin **/
$conf2=@1 @w20 @E1,0,48,36,12 @F1,32,72,64 @P1 v8l4o5;
$conf2 l64g&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&gt140v0g2l1.rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr1v13l8<dc>af<dc>af<dc>af+<dc>af+<dc>af+<dc>ae<ec>ae<ec>ae<ec>ae<ec>ae<ec>ae<ec>ae<ec>ae<ec>ae<ec>af<ec>af<ec>af<ec>af<e>bge<e>bge<e>bge<e>bge<ec>ad<ec>ad<ec>ad<ec>ad<fc>af<fc>af<fc>af<fc>af<ec>af<ec>af<ec>af<ec>af<ec>ge<ec>ge<ec>ge<ec>ge<ec>af<ec>af<ec>af<ec>af<e>bge<e>bge<e>bge<e>bge<ec>af<ec>af<ec>af<ec>af<e>bge<e>bge<e>bge<e>bge<fc>af<fc>af<fc>af<fc>af<fc>af<fc>af<fc>af<fc>af<ed+>bf+<ed+>bf+<ed+>bf+<ed+>bf+<ed+>bf+<ed+>bf+<ed+>bf+<ed+>bf+>b1;
$conf2 l1.rrrrrrrrrrrrrrrr2v13l8g+e>bg+<g+e>bg+<g+e>bg+<g+e>bg+l1.rrrrrrrrrrrrrrrrrrrrrrrrrrrr2l8o6dc>ge<dc>ge<dc>ge<dc>ge<dc>ge<dc>ge<dc>ge<dc>ge<dc>af+<dc>af+<dc>af+<dc>af+<dc>g+f<dc>g+f<dc>ge<dc>ge<dc>f+d<dc>f+d<dc>f+d<dc>f+d<dc>af<dc>af;
$conf2 l1.rrrrrrrrr1v10l8>e>ab<ec-deabc-ef+b<df+av12bc-eg+b<ef+g+v13beg+b<e2>c>afdb+afdb+afdb+afdbg+ec-bg+ec-bg+ec-bg+ec-afc>a<afc>a<afc>a<afc>al1rre;

/** Lute **/
$conf3=@3 @w12 @E1,0,24,80,16 @F1,32,72,24 @P127 v8l4o5;
$conf3 l64>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&gt140v0g2l1.rrrrrrrrrrrrrrrrr1v13l8ga<ce>ga<ce>ga<ce>ga<ce>f+a<ce>f+a<ce>f+a<ce>f+a<ce>fa<ce>fa<ce>fa<ce>fa<ce>f+a<ce>f+a<ce>f+a<ce>f+a<ce>ga<ce>ga<ce>ga<ce>ga<ce>f+a<ce>f+a<ce>f+a<ce>f+a<ce>fa<ce>fa<ce>fa<ce>fa<ce>f+a<ce>f+a<ce>f+a<ce>f+a<ce>ga<ce>ga<ce>ga<ce>ga<ce>f+a<ce>f+a<ce>f+a<ce>f+a<ce>fa<ce>fa<ce>fa<ce>fa<ce>f+a<ce>f+a<ce>f+a<ce>f+a<ce>ga<ce>ga<ce>ga<ce>ga<ce>f+a<ce>f+a<ce>f+a<ce>f+a<ce>fa<ce>fa<ce>fa<ce>fa<ce>f+a<ce>f+a<ce>f+a<ce>f+a<ce>ga<ce>ga<ce>ga<ce>ga<ce>f+a<ce>f+a<ce>f+a<ce>f+a<ce>fa<ce>fa<ce>eab<e>eab<e>f+a<ce>f+a<ce>f+a<ce>f+a<ce>g<cde>g<cde>g<cde>g<cde>g<cde>g<cde>g<cde>g<cde>f+a<cf+>f+a<cf+>f+a<cf+>f+a<cf+>fg+<cf>fg+<cf>eg<ce>eg<ce>f+<cf+d>f+<cf+d>f+<cf+d>f+<cf+d>a<cef>a<cef>a<cef>a<cef>a<gf+a>a<gf+a>a<g;
$conf3 l1.rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr1r4v13l8f+a>a<gf+a>ea<ce>ea<ce>ea<ce>ea<ce>ea<ce>ea<ce>ea<ce>ea<ce>fa<cf>fa<cf>fa<cf>fa<cf>egb<e>egb<e>egb<e>egb<e>dab<d>dab<d>dab<d>dab<d>fa<cf>fa<cf>fa<cf>fa<cf>fa<cf>fa<cf>fa<cf>fab<f>eg<ce>eg<ce>eg<ce>eg<ce>fa<cf>fa<cf>fa<cf>fa<cf>eg<ce>eg<ce>eg<ce>eg<ce>fa<cf>fa<cf>fa<cf>fa<cf>eg<ce>eg<ce;
$conf3 l1.rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr1v13l8>eg<ce>eg<ce>fa<cf>fa<cf>fa<cf>fa<cf>fa<cf>fa<cf>fa<cf>fa<cfc-eg+f+c-eg+f+c-eg+f+c-eg+f+c-eg+f+c-eg+f+c-eg+f+c-eg+f+e1;

/** Ukulele **/
$conf4=@3 @w12 @E1,0,24,80,16 @F1,24,80,48 @P64 v8l4o5;
$conf4 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&et140v0e2l1.rrrrrrrrrrrrrrrrr1l4rv13a8aa8ara8aa8ara8aa8arl8aagal4<cr>a8aa8ara8aa8ara8aa8ar<d8edc8r>a8aa8ara8aa8ara8aa8arl8aagal4<cr>a8aa8ara8aa8ara8aa8ar<d8edc8r>a8aa8ara8aa8arl8aaraar4.aagal4<cr>a8aa8ara8aa8ara8aa8a8r.<d8edc8r>a8aa8ara8aa8ara8aa8ara8a8g8a8<cr>a8aa8ara8aa8ara8aa8ar<d8edc8r>a8aa8ara8aa8ara8aa8ara8a8g8a8<cr>a8aa8ara8aa8ara8aa8ar<d8edc8l1.rrrrrrrrrr2.>e8l4ee8ere8ee8ere8ee8ere8ee8erl8ff4ffr4.ffrffr4.ggrggr4.ggrggl4r.a8aa8ar<c8cc8cr>a8aa8ar<c8cd8dr>a8aa8ara8aa8arg8gg8grg8gg8gra8aa8ara8aa8arb8bb8brb8bb8bra8aa8ara8aa8arg8gg8grg8gg8gra8aa8ara8aa8ara8aa8ara8aa8arg+8g+g+8g+rg+8g+g+8g+rg+8g+g+8g+rg+8g+g+8g+g+1;
$conf4 l1.rrrrrrrrrrrrrrrrrr2.v13l4.eer4eer4eel4red8e8gre.e.re.e.re.e.ra8bag8re.e.re.e.re.e.red8e8gre.e.re.e.re.e.ra8bag8re.e.re.e.re.e.red8e8gre.e.re.e8ere.e.ra8bag8re.e.re.e.re.e.red8e8gre.e.re.e.re.e.ra8bag8re.e.re.e.re.e.red8e8gre.e.re.e.re.e.ra8bag8;
$conf4 l1.rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr2.v13l4.>aar4aar4aar4abr4<ccr4ccr4ddr4eer4ffr4aar4ffr4aar4ffr4ffr4eer4eer4ffr4ffr4ggr4ggr4ffr4ffr4eer4eer4ffr4ffr4ffr4ffr4eer4eer4eer4ee;

関連リンク

コメント

コメントはありません。 Comments/Web素材/JSMML?