トンボ 複音ハーモニカ(木製) - 全音楽譜出版社ド リーダー リード楽器 鍵盤楽器 和楽器 ミュージ ックベル 管楽器 打楽器 (木琴・鉄琴)
Oscillatorで楽器をつくりたい 2
-
Upload
hisashi-oikawa -
Category
Technology
-
view
191 -
download
1
Transcript of Oscillatorで楽器をつくりたい 2
Oscillator で楽器をつくりたい!
2
自己紹介
まっは@mach3ss
前回までのあらすじ
・Web Audio API の Oscillator で楽器をつくってみた
- http://mach3.github.com/oscy.js ( デモ)
- http://github.com/mach3/oscy.js (リポジトリ)
・わりとフリーダムな感じ
・音階を意識して演奏とか無理(幼少からの訓練が必要)
今回は、思い通りの音階で弾けるやつをつくりたい
音階をつけれるようにする
・インターフェースはピアノの鍵盤風の物を採用。
・ただ鍵盤をおして音階を奏でるのでは普通のシンセなので、
弦楽器のように中間音を出せるようにしたい。
A B C
音階の変更のおさらい
周波数(frequency)を指定する事で、音階を変更する事ができる
var ctx = new AudioContext();var osc = ctx.createOscillator();var gain = ctx.createGain();
osc.frequency.value = 440; // A の音
osc.connect(gain);gain.connect(ctx.destination);osc.start(0);
どの音階がどの周波数なのか?
音階と周波数の関係
A0220Hz
A1440Hz
A2880Hz
オクターブ(12音)
オクターブ(12音)
・基本となる A の音が 440Hz
・オクターブ(12音)下がると1/2の 220Hz、上がると2倍の880Hz になる
・あがるごとに2の 12乗根(1.05946309436)が乗算されていく(via 知恵袋)
・初項440、公比1.05946309436の等比数列になる
つまりきっとこんなかんじ
a = arn n-1
周波数 = 440 * Math.pow(1.05946309436, n-1)
実装してみよう
・Canvas で鍵盤を描き、触ったポジ
ションによって周波数を切り替える
・鍵盤の中心がそのキーの音に合うよ
うにし、その周辺は中間音にする
A B C D
A
やってみた結果
・むずかしい
・ちょっとキーの中心からずれると音痴に聞こえる
・訓練が必要(幼少からでなくてもよい)
おまけ
・iOS8になっても、まだ接頭辞をつけなければいけない模様。
( webkitAudioContext)
・ iOS8になっても、やっぱりユーザーアクション(タッチイベント
等)を起点にしないと音を鳴らせない模様。
ご清聴ありがとうございました。