うむるむ

うむるむ はユーザー様にとって中途半端に役に立ち、また、ほとんど身の無い話題、情報を提供することがまれにあります。



[ AS3 ] 音の波形をいじってみる - 08/05/29 23:41

(´・ω・`) flash表示できんよ。


800KBくらいあるからちょっと待って。始まると音出るよ。
SoundMixer.computeSpectrumで波形が取れるのでAS3で遊んでみた。
ついでにフーリエ変換をちょっと復習した。学生の頃よりは理解した、と思う。どうでもいい話だ。
左のスライダーを下げるとモロに処理落ちするので注意ね。

流れを書いてみる。
SoundMixer.computeSpectrumでとったByteArrayのデータを左チャンネル、右チャンネルくっつけて、HSV色データにしてぐるっと1周並べる。
HSVデータのHはループのインデックス(512段階)を色角度(360段階)に縮めてセット。
Sは(byteArray.readFloat()+1)*50 のような感じで0〜100に変換。
Vは基本100。これ後でちょっといじる。

次に、中心から放射線状に512本線を引く。線の長さはSの値をそのまま使用。なので、音全開だと半径100の正円になるハズ。
ここで、線の長さが一定以上の時は線の先にムービークリップを生成する。
この時の条件に左のスライダーの値を使用。スライダーを上げる程、条件が厳しくなるのでムービークリップが出来ない。逆に、一番下だと長さ0以上なら生成なので最大512個のムービークリップを一度にnewしてフリーズ。

長さが達していても、さっき作ったムービークリップが残ってた場合は新たに作らず、Vを下げて線を描画。
そもそも長さが達していなかったら描画なし。

作られたムービークリップはsinで揺れながらeaseInCubicで昇天するだけ。場外でremoveChild。
とこんな感じ。

外部サウンドを読み込むswfを置いておきます。
解凍して出来たswfと同階層に sound.mp3 って名前のmp3を置くと見れます。
曲によって色々あるけど、スライダーをいじってみていい感じのところを見っけてみてください。
60まで落とすと処理落ちすると思う。上のサンプルは71。ダウンロードするswfは初期値90にしてあります。

« [ 雑記 ] 世界一でかい嘘だった | ブログトップ | [ AS3 ] 音の波形をパンしてみる »

トラックバックURL :

コメント投稿

名前:
コメント:



管理人 um(うむ)@web界の名もなき底辺労働者
サイト うむるむ http://umroom.com/
連絡先 umroom@gmail.com