fantastic - thanks very much

a

On 23 November 2011 14:33, Gerry Beauregard
<[email protected]>wrote:

> My real-time spectrum analyzer code would be a good place to start.
> http://www.audiostretch.com/spectrum/
>
> It grabs audio from the mic, applies a Hanning analysis window, does an
> FFT, converts to a log-magnitude (dB scale) spectrum, and plots the
> spectrum at regular time intervals.  It doesn't go quite so far as
> extracting the pitch/note, but that's mostly a matter of finding the first
> big peak in the spectrum, and doing a bit of interpolation around the peak
> to get sub-FFT-bin accuracy.
>
> Code can be found here:
>
> http://gerrybeauregard.wordpress.com/2010/08/06/real-time-spectrum-analysis/
>
> It relies on my FFT which can be found here:
> http://gerrybeauregard.wordpress.com/2010/08/03/an-even-faster-as3-fft/
>
> -Gerry
>
>
>
> On 2011-11-23  , at 22:11 , allandt bik-elliott wrote:
>
> > hey guys
> >
> > does anyone have any references / links to help me understand how to
> > extract the note / tone / pitch from a sound captured from a mic
> >
> > i have a view to deal with the mic and i am capturing the output
> correctly
> > but i need to understand how to check it for specific pitch ranges
> >
> > here is my class so far - i'd like the controller to be able to apply
> some
> > logic to decide how the app should respond from there (using
> > controller.updateAudioSample(audioChunk);)
> >
> > [CODE]
> > package uk.co.publicis.toothbrushdetectorapp.views
> > {
> > // imports
> >        ...
> > public class MicView extends View implements IView
> > {
> > private var _mic : Microphone;
> > public function MicView(model:Model, controller:Controller=null)
> > {
> > super(model, controller);
> > init();
> > }
> > private function init():void
> > {
> > if (Microphone.isSupported)
> > {
> > _mic = Microphone.getMicrophone();
> > _mic.enableVAD = true;
> > _mic.encodeQuality = 0;
> > _mic.rate = 8;
> > }
> > }
> > /* INTERFACE uk.co.publicis.toothbrushdetectorapp.views.IView */
> > public function destroy():Boolean
> > {
> > disable();
> > _mic = null;
> > return true;
> > }
> > public function enable():Boolean
> > {
> > if (Microphone.isSupported)
> > {
> > _mic.addEventListener(ActivityEvent.ACTIVITY, handleActivity);
> > // odd behaviour - if this is not added here, no ActivityEvent.ACTIVITY
> > will be captured either.
> > // makes it impossible to start / stop capturing the SAMPLE_DATA on
> > ACTIVITY events
> > _mic.addEventListener(SampleDataEvent.SAMPLE_DATA, handleSampleData);
> > }
> > return true;
> > }
> > public function disable():Boolean
> > {
> > if (Microphone.isSupported)
> > {
> > _mic.removeEventListener(ActivityEvent.ACTIVITY, handleActivity);
> > _mic.removeEventListener(SampleDataEvent.SAMPLE_DATA, handleSampleData);
> > }
> > return true;
> > }
> > private function handleActivity(e:ActivityEvent):void
> > {
> > if (e.activating)
> > {
> > controller.activate();
> > }
> > else
> > {
> > controller.deactivate();
> > }
> > }
> > private function handleSampleData(e:SampleDataEvent):void
> > {
> > var audioChunk:ByteArray = e.data as ByteArray;
> > controller.updateAudioSample(audioChunk);
> > }
> > public function get model():TBDModel
> > {
> > return _model as TBDModel;
> > }
> > public function get controller():TBDController
> > {
> > return _controller as TBDController;
> > }
> > }
> > }
> > [/CODE]
> >
> > thanks in advance
> > a
> > _______________________________________________
> > Flashcoders mailing list
> > [email protected]
> > http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>
>
> _______________________________________________
> Flashcoders mailing list
> [email protected]
> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Reply via email to