com.frinika.audio.analysis.dft
Class CyclicBufferFFTSpectrogramDataBuilder

java.lang.Object
  extended by com.frinika.audio.analysis.dft.CyclicBufferFFTSpectrogramDataBuilder
All Implemented Interfaces:
CyclicSpectrumDataBuilder

public class CyclicBufferFFTSpectrogramDataBuilder
extends java.lang.Object
implements CyclicSpectrumDataBuilder

Creates a spectrogram from a DoubleDataSource Observers are notified when data changes (during build) SizeObserver are notify when the number of frequency bins is changed.

Author:
pjl

Constructor Summary
CyclicBufferFFTSpectrogramDataBuilder(uk.org.toot.audio.core.AudioProcess reader, int bufferSize, double Fs)
           
 
Method Summary
 void abortConstruction()
           
 void addSizeObserver(CyclicSpectrogramDataListener o)
           
 long chunkStartInSamples(long chunkPtr)
           
protected  void doWork()
           
 int getBinCount()
           
 int getChunkAtFrame(long framePtr)
           
 int getChunkRenderedCount()
           
 float[] getFreqArray()
           
 float[][] getMagnitude()
           
 float[] getMagnitudeAt(long chunkPtr)
           
 double getSampleRate()
           
 int getSizeInChunks()
           
 void setParameters(int chunksize, int fftsize, float Fs)
           
 boolean validAt(long chunkPtr2)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CyclicBufferFFTSpectrogramDataBuilder

public CyclicBufferFFTSpectrogramDataBuilder(uk.org.toot.audio.core.AudioProcess reader,
                                             int bufferSize,
                                             double Fs)
Parameters:
minF -
nOctave -
binsPerOctave -
Method Detail

setParameters

public void setParameters(int chunksize,
                          int fftsize,
                          float Fs)

abortConstruction

public void abortConstruction()

addSizeObserver

public void addSizeObserver(CyclicSpectrogramDataListener o)
Specified by:
addSizeObserver in interface CyclicSpectrumDataBuilder

getSizeInChunks

public int getSizeInChunks()
Specified by:
getSizeInChunks in interface CyclicSpectrumDataBuilder

getChunkRenderedCount

public int getChunkRenderedCount()

doWork

protected void doWork()

getFreqArray

public float[] getFreqArray()

getMagnitudeAt

public float[] getMagnitudeAt(long chunkPtr)

chunkStartInSamples

public long chunkStartInSamples(long chunkPtr)

getChunkAtFrame

public int getChunkAtFrame(long framePtr)

validAt

public boolean validAt(long chunkPtr2)

getSampleRate

public double getSampleRate()

getBinCount

public int getBinCount()
Specified by:
getBinCount in interface CyclicSpectrumDataBuilder

getMagnitude

public float[][] getMagnitude()
Specified by:
getMagnitude in interface CyclicSpectrumDataBuilder