音の鳴るブログ

鳴らないこともある

はてなブログに音の鳴る機能をつけるモジュール

このブログで使っていたものを整理したので公開します。サイドバーの一番上に出ているやつがそれで、マウスを動かすとシャーシャーなっているのもそれです。簡単に使えるように MML とモールス信号のプラグインも作ってみたので適当に組み込んでもらえるとうれしいです。

 

ソース
https://github.com/mohayonao/otononarumodule

使い方

  1. otononarumodule.js を Dropbox の Public フォルダに入れる等して読み込めるようにしておく
  2. はてなブログ > 管理 > デザイン > カスタマイズ > サイドバー > 「+モジュールを追加」
<script type="text/javascript" src="http://dl.dropbox.com/u/645229/cdn/otononarumodule/otononarumodule.min.js" charset="utf-8"></script>
(function() {
    var sys = otononarumodule.getSoundSystem({mastervolume:0.5});
        
    // マウスを動かすと音が鳴るようにする
    // 1. 音を鳴らすためのオブジェクト(Generator)を生成して
    var mousenoise = sys.make(otononarumodule.gens.MouseNoise);
    
    // 2. sys.play する
    sys.play(mousenoise);
        
    // ブログのエントリ内でも使いたいのならグローバルに呼べるようにしておく
    window.sys = sys;
}());

getSoundSystem の引数で以下のオプションを指定できる。

  • mastervolume: 全体の音量 (0.0-1.0, default=0.75)
  • forecolor: 波形表示の色
  • backcolor: 波形表示の背景色

 

クリックすると音が鳴るやつ 

sys.make の2番目の引数で音量を指定したりできる。
sys.play の2番目の引数で再生終了時のコールバックを指定できる。

 

簡単なMMLを再生する

plugins 以下の gens-mmlsequencer.js が必要

使える記法は一般的なもの

基本的なコマンド
cdefgab 音程
r 休符
o オクターブ
< オクターブ上げる
> オクターブ下げる
l 音長
v 音の大きさ
t テンポ(全トラック共通)
; 次のトラックへ

 

ループ関係 
[ | ] ループ
$ 最後まで再生した後、ここに戻る

 

 音色
   音色 FIMMLモード
@0 サイン波 サイン波
@1 のこぎり波 のこぎり波
@2 逆のこぎり波 ファミコン三角波
@3 ファミコン三角波 矩形波
@4 三角波 *
@5 矩形波 キラキラした音
@6 * 三角波
@7 キラキラした音 逆のこぎり波

 

init の引数で type:FIMML を指定した場合は FIMML のループ記法が使える。
現状はこれ以外のコマンドは使えないけど、今後増やすかも知れない。MMLは小文字を推奨。

 
モールス信号を打つ

 

plugins 以下の gens-mousenoise.js が必要

 

自分で音を鳴らす部品を作りたい

こんど書きます。