- ベストアンサー
音を自動で判断するプログラム
PC内の音(流れている音楽)やマイクで週音したものを、高音か低音かを判断して、サウンドカードを使ってもう片方のスピーカーから自動で音を出す、というプログラムを作りたいのですが、一体どのソフトでどういった風につくったらいいのでしょうか。processingとflashはかじってます。 arduinoボードも一応持っています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
判断した情報をどこで使ってるのかわかりませんが、ActionScript 3.0を使うのであれば、 Microphoneクラスを用いて波形データが取得できるようです。 http://suzhiyam.wordpress.com/2011/04/14/as3-microphone-record-and-save-as-wave-file/ import flash.media.*; import flash.events.*; var mic:Microphone = Microphone.getMicrophone(); mic.addEventListener(SampleDataEvent.SAMPLE_DATA, micSampleDataHandler); function micSampleDataHandler(event:SampleDataEvent):void { while (event.data.bytesAvailable) { var sample:Number = event.data.readFloat(); // 波形サンプルを取得できるだけ取得する。必要に応じて保存しておく。 } } 波形データが取得できたら適宜積分したあとでフーリエ変換して、音が低音域と高音域とのどちらに寄っているかを判定することが出来るはずです。 音の出し方は、どんな音を出したいのかにもよります。 既存のmp3を再生したいのであれば http://oneday.ter.jp/actionscript3/122.html 波形データを指定して再生したいのであれば http://sakef.jp/blog/2010/07/play_wav/ が参考になるでしょう。
お礼
サウンドカードとの連動方法がよくわかりませんがフラッシュで取得出来るんですね 試してみます ありがとうございます