|
CLAM-Development
1.4.0
|
Implementation of the FFT using the algorithm from Takuya OOURA in C. More...
#include <FFT_ooura.hxx>
Public Member Functions | |
| FFT_ooura () | |
| FFT_ooura (const FFTConfig &c) throw (ErrDynamicType) | |
| ~FFT_ooura () | |
| const char * | GetClassName () const |
| Override it in every subclass and retur the name of that class. | |
| bool | Do () |
| Supervised-mode Do function. | |
| bool | Do (const Audio &in, Spectrum &out) |
| Standard FFT Do function, with storage class references as arguments. | |
| bool | MayDisableExecution () const |
Public Member Functions inherited from CLAM::FFT_base | |
| FFT_base () | |
| virtual | ~FFT_base () |
| const ProcessingConfig & | GetConfig () const |
| Configuration access: | |
| bool | SetPrototypes (const Audio &in, const Spectrum &out) |
| FFT non-supervised mode SetPrototypes function. | |
| bool | SetPrototypes () |
| Standard supervised-mode SetPrototypes function. | |
| bool | UnsetPrototypes () |
| Standard UnsetPrototypes function. | |
| void | CheckTypes (const Audio &in, const Spectrum &out) const |
| virtual bool | DisableExecution () |
| virtual bool | EnableExecution () |
Public Member Functions inherited from CLAM::Processing | |
| bool | Configure (const ProcessingConfig &config) |
| Configuration change method. | |
| void | Start (void) |
| Method to turn the object into running state. | |
| void | Stop (void) |
| Method to put the object out of running state When in execution mode, this method must be called before any further call to Configure() methods. | |
| Processing () | |
| virtual | ~Processing () |
| virtual bool | CanProcessInplace () |
| Override this method if your processing cannot process inplace. | |
| bool | CanConsumeAndProduce () |
| Check that Supervised Do() can be safely called. | |
| void | ConsumeAndProduce () |
| Acknoledges data tokens in published ports as read/writen by calling Produce() for all registered OutPorts and Consume() to all registered InPorts. | |
| std::string | GetExecStateString () const |
| bool | IsConfigured () const |
| bool | IsRunning () const |
| void | RegisterOutPort (OutPortBase *out) |
| void | RegisterInPort (InPortBase *in) |
| void | RegisterOutControl (OutControlBase *out) |
| void | RegisterInControl (InControlBase *in) |
| void | SetParent (Processing *p) |
| void | SetNetworkBackLink (Network *network) |
| virtual bool | ModifiesPortsAndControlsAtConfiguration () |
| This method is used to determine if a given processing can change its interface of ports/controls after its construction (i.e. | |
| bool | HasInPort (const std::string &name) |
| bool | HasOutPort (const std::string &name) |
| bool | HasInControl (const std::string &name) |
| bool | HasOutControl (const std::string &name) |
| InPortBase & | GetInPort (const std::string &name) |
| OutPortBase & | GetOutPort (const std::string &name) |
| InControlBase & | GetInControl (const std::string &name) |
| OutControlBase & | GetOutControl (const std::string &name) |
| InPortBase & | GetInPort (unsigned index) |
| OutPortBase & | GetOutPort (unsigned index) |
| InControlBase & | GetInControl (unsigned index) |
| OutControlBase & | GetOutControl (unsigned index) |
| unsigned | GetNInPorts () const |
| unsigned | GetNOutPorts () const |
| unsigned | GetNInControls () const |
| unsigned | GetNOutControls () const |
| const std::string & | GetConfigErrorMessage () const |
| Returns a string describing configuration errors if any. | |
| virtual bool | IsSyncSource () const |
| Wether the processing is a sync source such as audio i/o device, or an audio callback hook (i.e. | |
| virtual bool | SupportsVariableAudioSize () const |
| This method reports whether the processing supports dynamic buffer-size host. | |
Static Public Member Functions | |
| static void | rdft (int n, int isgn, TData *a, int *ip, TData *w) |
| static void | makewt (int nw, int *ip, TData *w) |
| static void | makect (int nc, int *ip, TData *c) |
| static void | bitrv2 (int n, int *ip, TData *a) |
| static void | cftfsub (int n, TData *a, TData *w) |
| static void | cftbsub (int n, TData *a, TData *w) |
| static void | rftfsub (int n, TData *a, int nc, TData *c) |
| static void | rftbsub (int n, TData *a, int nc, TData *c) |
| static void | cft1st (int n, TData *a, TData *w) |
| static void | cftmdl (int n, int l, TData *a, TData *w) |
Additional Inherited Members | |
Protected Types inherited from CLAM::FFT_base | |
| enum | FFTState { sComplex, sComplexSync, sOther } |
Protected Member Functions inherited from CLAM::FFT_base | |
| void | ChangeSize (int n) |
| int | GetSize () |
Protected Member Functions inherited from CLAM::Processing | |
| virtual bool | ConcreteStart () |
| Processing objects have to redefine this method when starting them implies some internal changes. | |
| virtual bool | ConcreteStop () |
| Processing objects have to redefine this method when stoping them implies some internal changes. | |
| unsigned | BackendBufferSize () |
| Given by the NetworkPlayer (backend) if exists. | |
| unsigned | BackendSampleRate () |
| Given by the NetworkPlayer (backend) if exists. | |
| InControlRegistry & | GetInControls () |
| Accessor to published Controls manager. | |
| OutControlRegistry & | GetOutControls () |
| Accessor to published Controls manager. | |
| InPortRegistry & | GetInPorts () |
| Accessor to published Ports manager. | |
| OutPortRegistry & | GetOutPorts () |
| Accessor to published Portss manager. | |
| bool | AddConfigErrorMessage (const std::string &msg) |
| Use this method to append a configuration errors to the processing when implementing ConcreteConfigure. | |
| bool | AbleToExecute (void) const |
| In debug-mode checks that the processing is configured and started. | |
| template<typename ConcreteConfig > | |
| void | CopyAsConcreteConfig (ConcreteConfig &concrete, const ProcessingConfig &abstract) const |
| Helper template to convert a reference to a ProcessingConfig to the concrete ProcessingConfig specified on the first parameter. | |
| void | SetExecState (ExecState state) |
Protected Attributes inherited from CLAM::FFT_base | |
| Spectrum | mComplexSpectrum |
| Auxiliary spectrum used if output spectrum does not have complex array. | |
| FFTConfig | mConfig |
| FFT Configuration. | |
| int | mSize |
| FFT size. | |
| FFTState | mState |
| I/O Prototype state of the FFT object. | |
| FFTState | mBackupState |
| When the object enters "Disabled" mode, it stores the previoius state here. | |
| AudioInPort | mInput |
| OutPort< Spectrum > | mOutput |
| TData * | fftbuffer |
| Internal output buffer. | |
Protected Attributes inherited from CLAM::Processing | |
| ProcessingComposite * | mpParent |
| Pointer to the parent (composite) processing object, or 0. | |
| Network * | _network |
| The parent network if any. | |
Static Protected Attributes inherited from CLAM::FFT_base | |
| static SpecTypeFlags | mComplexflags |
| Auxiliary flags structure, used to add the complex attribute. | |
Implementation of the FFT using the algorithm from Takuya OOURA in C.
Definition at line 44 of file FFT_ooura.hxx.
| CLAM::FFT_ooura::FFT_ooura | ( | ) |
Definition at line 80 of file FFT_ooura.cxx.
References CLAM::Processing::Configure().
| CLAM::FFT_ooura::FFT_ooura | ( | const FFTConfig & | c | ) | throw (ErrDynamicType) |
Definition at line 86 of file FFT_ooura.cxx.
| CLAM::FFT_ooura::~FFT_ooura | ( | ) |
Definition at line 92 of file FFT_ooura.cxx.
Definition at line 282 of file FFT_ooura.cxx.
Definition at line 479 of file FFT_ooura.cxx.
Definition at line 430 of file FFT_ooura.cxx.
References cft1st(), and cftmdl().
Referenced by rdft().
Definition at line 381 of file FFT_ooura.cxx.
References cft1st(), and cftmdl().
Referenced by rdft().
Definition at line 584 of file FFT_ooura.cxx.
|
virtual |
Supervised-mode Do function.
Implements CLAM::FFT_base.
Definition at line 97 of file FFT_ooura.cxx.
References CLAM::InPort< Token >::Consume(), CLAM::AudioInPort::GetAudio(), CLAM::OutPort< Token >::GetData(), CLAM::InPort< Token >::GetSize(), CLAM::FFT_base::mInput, CLAM::FFT_base::mOutput, CLAM::OutPort< Token >::Produce(), and CLAM::Spectrum::SetSize().
Standard FFT Do function, with storage class references as arguments.
This method implements the old conversor routines. The resulting spectrum will be of input audio size / 2 + 1. Input audio must be a power-of-two.
Implements CLAM::FFT_base.
Definition at line 106 of file FFT_ooura.cxx.
References CLAM::FFT_base::CheckTypes(), CLAM_ASSERT, CLAM_DEBUG_ASSERT, CLAM::FFT_base::fftbuffer, isPowerOfTwo(), CLAM::Processing::IsRunning(), CLAM::FFT_base::mComplexflags, CLAM::FFT_base::mSize, CLAM::FFT_base::mState, rdft(), CLAM::FFT_base::sComplex, CLAM::FFT_base::sComplexSync, CLAM::FFT_base::sOther, and CLAM::Spectrum::SynchronizeTo().
|
inlinevirtual |
Override it in every subclass and retur the name of that class.
Implements CLAM::Processing.
Definition at line 90 of file FFT_ooura.hxx.
Definition at line 264 of file FFT_ooura.cxx.
References CLAM_atan(), CLAM_cos(), and CLAM_sin().
Referenced by rdft().
Definition at line 235 of file FFT_ooura.cxx.
References bitrv2(), CLAM_atan(), CLAM_cos(), and CLAM_sin().
Referenced by rdft().
|
inlinevirtual |
Reimplemented from CLAM::FFT_base.
Definition at line 99 of file FFT_ooura.hxx.
Definition at line 736 of file FFT_ooura.cxx.
Referenced by rdft().
Definition at line 711 of file FFT_ooura.cxx.
Referenced by rdft().
1.8.1