今週の音楽「slow steps」はいかが?
VUメーター
 完成しました。合成音声だけではアレなので、音楽的な「振れ具合」の参考までに既成の曲も入れておきました。
 あ、いくつかお断りを。1kHzでのレベル調整は行ってません。単に「メーター右端 = デジタル0db」です。よって、絶対的な意味での「振れ」としては不正確です。
 それとインタラクティブ性が皆無なので、swf形式ではなくスクリーンキャプチャー(動画)にしました。

 ところでこのVUメーター、ActionScript3の習作としてつくってみたわけですが、実用性はないんですよねえ。拙作のMP3プレイヤーやFLVプレイヤーに組み込みたくても、これらの言語はActionScript2だし(苦笑)
 でもまあ、良い勉強にはなりました。今回は波形データを元にしましたが、次回は周波数スペクトルを利用して何かやってみようと思います。
 と言うわけで、以下は覚え書きです。
・今回はボリュームレベルが取得できれば良かったので、フーリエ変換はせず。
・512バイト分の配列変数に波形データが入る。
・前半の256バイトはLチャンネル、残りの256バイトはRチャンネル。
・256バイト中の最大値を算出し各メーターへ反映。
※最初は平均値を算出したんだけど、音源によっては期待した結果が得られなかった。

 これにて完成。
 ただし、このままではメーターの動きが小刻みすぎるので(ある意味正確ではあるんだけど)、アナログ的な処理を。
・LRそれぞれに16バイト分のバッファを用意。
・バッファには常に最新の最大値が納められ、古い値は心太式に破棄。
・バッファの平均値をメーターに反映。
・メーターの「戻り」については、「メーターの角度 x 0.9」とすることによりイーズアウト。

10/10/2009 22:00 note flash

comments & TB (1)

  • MP3プレイヤーと言うスクリーンキャプチャーが周波数スペクトルを過ぎりましたが、となるとHD丸ごとインタラクティブ性化しないとダメそうですよね。
    MOON@人工無能 10/12/2009 2:00

name

trackback URL