ActionScript 3.0 , AIR , FLEXからCocoa, OpenGL
29 Nov
本当にものすごく久々の投稿になってしまいました。
先日、11/26に行われた、Spark勉強会で、Dynamic Sound Generationの発表をしてきたので、その資料をアップします。
(※再生には音楽ファイルを必要なので、各自用意して下さい。)
「フーリエ変換を使わない、エフェクトのかけかた」というタイトル通り、信号処理には本来フーリエ変換は欠かせないものですが、フーリエ変換の話しになると一気に敷居が高くなる(というか自分が今勉強している状態なので、この様な発表になりました。
ただ、やはりフーリエ変換を使えていない&勉強途中での発表になってしまったので、波形が途切れてしまっているところがあるようで、ぷつぷつと途切れる音が結構聴こえてしまいます。。。
あくまでご参考程度にしていただければと思います。
[ファイル構成について]
SoundGeneration.mxml:ラジオボタンやスライダーがついているView + 実際に音を鳴らすファイル
model/SoundObj.as:Dynamic Sound Generationを使って音楽を再生したり、エフェクトをかけたりするスクリプトを記述しているファイル。
SoundObj.asに関しては、mxmlでも使いやすいように、IMXMLObjectインターフェイスを実装しています。
[SoundObj.asの仕組み]
_currentEffectというプロパティを切り替えて、どのエフェクトをかけるのかを選択します。
extractメソッドを呼び出すたびに、bufferプロパティにデータを蓄えています。
これを使って、ディレイや逆再生を実現しています。
なお、逆再生に関しては、こちらが大変参考になります。
25 Jun
またまたDynamic Sound Generationです。
これは、mouseXの値をもとに、音程を変えるというサンプルです。
ちなみに、音のもとになるのはぜんかいのと同じ矩形波を使っています。
ソースは後ほど。
23 Jun
今回は色々とサンプルをつくってみながら書いてみます。
波形には色々とあるようですが、今回は、矩形波をいじってみました。
基本的なのは、これ。
ちなみに、512ってのはおまじないと思って下さい。
※サンプルFlash(音がなります。しかも制御できません。)

で、矩形の周期を半分にすると、こうなります。
※サンプルFlash(こちらも音がなります。もちろん制御はできないです。)

二つを聴き比べると、二つ目(周期が短い方)が音が高いですよね。
どうやら、周期が短いほど音が高くなる、という仕組みらしいです。
と、いうことは、この周期を徐々に短くしていくと、どうなるんでしょう?
※サンプルFlash(音がなり、制御不能。今までと同様ですね。)
うんうん。
ということは、これらをうにょうにょすると、宇宙っぽくできるかな?Perfumeっぽい音が出せるかな?○タヤスタカ的な音をasだけで出す事ができるのかな?
次は他のタイプの波形をいじってみようと思います。
あ、それぞれのサンプルASも.txtとしてリンク貼っておくのでよかったらいじって下さいね。(ごめんなさい。コメントつけれてないです)
13 Jun
またまたですが、Flash Player10 astroのDynamic Sound Generationです。
ボタンを押すと、音が流れます。
パルス波の長さを時間で変えています。
注意:音を止める方法がないので、音を消したい場合はリロードして下さい。
これがasだけでできるってのが素晴らしい!!
今、個人的にはこの辺の機能が楽しいなあ。
コードはこんなです。
main.as
<code>
</code>