« FlashDevelopの最新ビルドでFP10をサポート | メイン | FP10-サウンド関連のリンクをまとめてみる(メモ) »

ピッチテーブルを作ってみる

Flash Player 10 でサウンド生成が可能になりましたが実際これを利用する場合は「音階と周波数」の関係を多少なりとも知っておくと後々役立ちます。

と言うことで、簡単なピッチ(周波数)計算機(SWF)を作ってみました。
(たまにはコードもアップしないとね・・・)

■ 表示内容は:


  • 「Keyb. Note =」は、キーボード(鍵盤)での呼び名です。(例えばA4とか)

  • 「MIDI Note =」は、MIDIのノートナンバーです。

  • 「Freq =」は、対応する周波数値(Hz)です。

計算方法は以下のスクリプトです。(メイン部分のみ)
基準となる値は、MIDIノートナンバー69(鍵盤でA4)=440Hzです。
これらを基準として半音の平均率を求める公式を利用して周波数の配列を生成します。
配列のインデックスとMIDIノートナンバーが同じになるように周波数値を代入します。
そうすることで、周波数配列[ノートナンバー]ですぐ目的の周波数値が引き出せます。

function create_fs_array():Array {
	var fs_array:Array = [];
	var max_notes:int = 120;
	for (var i:int = 0; i<max_notes ; i++) {
		fs_array[i] = Math.floor(440*Math.pow(2, (i-69)/12));
	}
	return fs_array;
}

以下、デモサンプルです。
※注)上のサンプルスクリプトでは整数値のみを取り出していますがデモSWFでは小数点下三桁までを求めていますのであしからず・・です。





  • このエントリーをdel.icio.usに追加する
  • このエントリをニフティクリップに追加
  • POOKMARK Airlinesへ追加
  • このエントリをLivedoor クリップに追加
  • このエントリーをはてなブックマークする
スポンサード リンク


トラックバック

このエントリーのトラックバックURL:
http://www.logicalyze.com/as2app/mt-tb.cgi/163

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

認証キー を入力してください: