SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ウェブの最新技術が魅せる「Firefoxの灯」

SVG&CSS&Audio Data API
~ ウェブの最新技術が魅せる「Firefoxの灯」(3)


音高を変えよう

 周波数を変えることで音の高さが変わります(HTMLは、jsの読み込み先を変更しただけなので割愛します)。

JS: sound_2.js
function playSound(freq) {
...
//波形データの生成
var k = 2* Math.PI * freq / SAMPLE_RATE;
for(var i = 0, n = buffer.length; i < n; i++){
    buffer[i] = Math.sin(k * i);
}
...
}

$(document).ready(function(){
$("#e").click(function() {
    playSound(329);
});
$("#g").click(function() {
    playSound(391);
});
$("#c").click(function() {
    playSound(523);
});
});
sound_2.html

 ミ・ソ・ドそれぞれを別DIVで持ち、それぞれがクリックされることで、別の周波数の音を出すようにしています。

音長を変えよう

 音の長さを変えてみます。これはバッファを大きくしたり小さくすることで実装できます(HTMLは、jsの読み込み先を変更しただけなので割愛します)。

JS: sound_3.js
function playSound(freq, second) {
...
//指定秒数分のバッファ SAMPLE_RATE x 2チャネル
var buffer = new Float32Array(SAMPLE_RATE*second);
...
}

$(document).ready(function(){
$("#e").click(function() {
    playSound(329, 0.5);
});
$("#g").click(function() {
    playSound(391, 1.0);
});
$("#c").click(function() {
    playSound(523, 1.5);
});
});
sound_3.html

次のページ
おわりに

この記事は参考になりましたか?

ウェブの最新技術が魅せる「Firefoxの灯」連載記事一覧

もっと読む

この記事の著者

赤塚 大典(アカツカ ダイスケ)

1976年東京生まれ。都立航空工業高等専門学校を卒業後、4輪レーサーを目指すも断念。蕎麦屋、溶接屋を経てプログラマになる。プログラマとしては、京阪奈地区の研究所に7年従事し、その間、2003年IPA未踏ユース、2006年IPA未踏ソフトウェア創造事業に採択される。未踏において、Firefoxの拡張機...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/6136 2011/09/06 13:17

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー