Web素材/JSMML
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
- FLMMLをr37838相当に更新。
- swfObjectを動的に読み込むように。(定義されていない場合Google CDNから読み込む。dojoの場合、dojox.embed.Flashを使用。)
- dojo&jQuery両対応。各フレームワークが読み込まれていたときに、そのフレームワークのネイティブ命令を使って処理させます。
- setMasterVolumeが正常に動作していなかったバグを修正
- jQueryの$(document).ready()や、dojoのdojo.addOnLoad()が指定されていた場合、正常にJSMMLが起動できないバグを修正。
- サンプルを更新。経過時間、プログレスバー、音量調整などができるようにした。
- 2009/10/12
- 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
- 2009/02/22
- 2008/12/25
- 2008/11/30
- [@Qtime?でゲートタイム絶対指定ができる](http://sketch.txt-nifty.com/blog/2008/09/flmml---52dd.html)
- [@oswitch?,pipes?と@iswitch?,pipes?命令でFM音源をエミュレート](http://sketch.txt-nifty.com/blog/2008/11/flmml---fmfm-ec.html)
- [NSnote?でノートシフト(移調)が可能](http://sketch.txt-nifty.com/blog/2008/09/flmml---df12.html)
- [xvolume?で非線形音量モード](http://sketch.txt-nifty.com/blog/2008/07/the_flash_movie.html)
- [@Fswitch?, amount?, frequency?, resonance?で音にフィルタを入れることができる](http://sketch.txt-nifty.com/blog/2008/06/flmml_lpfhpf_bce3.html)
- #OCTAVE REVERSE命令を入れることでオクターブ記号を反転できる
- マクロ繰り返しバグの修正
- テンポがすべてのトラックと共通]
- [@'note?'で合成音声を出すことができる](http://sketch.txt-nifty.com/blog/2007/10/flmml_3966.html)
- [@Qtime?でゲートタイム絶対指定ができる](http://sketch.txt-nifty.com/blog/2008/09/flmml---52dd.html)
サンプル
同時発色音数MAX9、すべてフィルタを加えているもっとも再生が重いMML。
@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>140v0g2l1.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>140v0g2l1.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;
関連リンク
- Web素材/PukiWiki/mml.inc.php- PukiWiki用MMLプレイヤー(pukiwiki+jQuery)
- マビノギのMMLをJSMMLを用いて再生(cakePHP+dojo+JSMML)
コメント
@pcomment
Last Modified: 2021-11-01 16:33:47