feb19.jp blog - life is creative!

A Flash Polyphonic Synthesizer

ブックマークに追加する tags:      

A Flash Polyphonic Synthesizer

Flash Player 10の機能「Dynamic Sound Generate」を使って、ポリフォニックシンセサイザーを作ってみました。画面をクリックすると、FlashPlayerがアクティブになり、キーボードで演奏できるようになります。

こちらから演奏できます。

VCAのADSRエンヴェロープと、オシレーター(波形)選択ぐらいしか機能はないですが、これでも十分アナログシンセサイザー?

音程→周波数に変換するところは、すべての音程を定数で持っておいてもいいのだけど、A4(=440Hz、オーケストラ、クラシックとかだと442Hzですが)の音を基準に考えてオクターブ番号と、一番近いAの音からの音階をパラメータで持てば、どの音でも計算で出せるのでそのようにしてみました。

具体的には以下のような式になります。

frequency = A4 * 2 ^ (オクターブ番号-4) * 2 ^ (Aの音からの差 / 12)
 
※ただし、Aの音からの差が+3以上の時は、表記上番号が増えるので、「オクターブ番号 - 1」をする必要がある。

ActionScriptにするとこんな感じ。

function getFrequency(octave:Number, note:Number):Number
{
	var basisNote:Number = 440.000;	//A4
	if(note>2)
		octave--;
	
	var frequency:Number = basisNote * Math.pow(2, octave - 4) * Math.pow(2, note / 12);
	return frequency;
}

例えば、C5(A4から3度上の音)の周波数を求めるのならば、

440 * 2 ^ (5-1-4) * 2 ^ (3 / 12) = 523.2511306011972 (Hz)

になります。

ちなみに、A4 = 440Hz というのは1939年に国際的に決められた周波数の表記ですが、YAMAHAの電子機器の分野では(MIDIとか)、A3 = 440Hz としているようです。
電子楽器用語集 : ヤマハ マニュアルライブラリー


以上の説明の補足として、このあたりのページが参考になります。
音名・階名表記 - Wikipedia
音程について

2008年12月06日14:20

Webデザインブログ

「A Flash Polyphonic Synthesizer」の関連エントリー

 iTunes Store(Japan)

コメントを投稿

トラックバック

このエントリーのトラックバックURL:
http://feb19.jp/mt/mt-tb.cgi/163

この一覧は、次のエントリーを参照しています: A Flash Polyphonic Synthesizer:

» Adobe CS4予約受付開始 送信元 feb19.jp blog
Flash CS4含め、Adobe CS4の予約が開始されてますね。... [詳しくはこちら]

» loader.unload と addChild/removeChild に関する、Flash Player 9 と 10 の微妙な差異 送信元 feb19.jp blog
Flash CS4 Professional で開発を行っていると、... [詳しくはこちら]

Navigation

古:AS3でPHPと通信する
新:Adobe CS4予約受付開始
トップページ

Recently Entries
AS3 で Flash コンテンツに YouTube Player を埋め込む
AS3 用の Google 公式 YouTube 埋め込みプレイヤー...
AS3 で SWFAddress 2.4 を使う ( Flash でブラウザの戻るボタン、パーマリンクに対応する )
Flash サイトのページ内で移動すると、ブラウザの戻るボタンが聞か...
SWFAddress 2.4 リリース
SWFAddress が 2.4 にバージョンアップしていました。主...
AS3 の FileReference.upload() の使い方と注意すべき点
ユーザー参加コンテンツで「ユーザーが自由にファイルをアップロードした...
Flash CS5 Professional で iPhone アプリを作れるように
アメリカで開催されている Adobe MAX 2009 にて CS5...
Flash Develop に見切りを付けて Flex/Flash Builder Eclipse plugin を入れるプレイ
もうここ最近 Windows 環境で ActionScript を書...
loader.unload と addChild/removeChild に関する、Flash Player 9 と 10 の微妙な差異
Flash CS4 Professional で開発を行っていると、...
ありがとう Tweener/最終版 Tweener 1.33.74 小技
Flash のトゥイーン系ライブラリのスタンダードとも言える Twe...
Flash CS4 の新モーショントゥイーンは「ピクッ」ってならない
「回転したムービークリップ」(特に写真とかを含むムービークリップだと...
iPhone アプリ開発に効く8冊の本/iPhone SDKオススメ書籍
Mac なソフトウェアを作るのに興味があったのと、iPhone SD...