CLAM-Development  1.4.0
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes
CLAM::SegmentSMSMorph Class Reference

#include <SegmentSMSMorph.hxx>

List of all members.

Public Member Functions

 SegmentSMSMorph ()
 Base constructor of class.
 SegmentSMSMorph (const SegmentSMSMorphConfig &c)
 Constructor with an object of SegmentTransformationConfig class by parameter.
const char * GetClassName () const
 This method returns the name of the object.
const ProcessingConfigGetConfig () const
 Configuration getter.
bool ConcreteConfigure (const ProcessingConfig &c)
 Configuration change method.
bool ConcreteStart ()
 Overriding default method to initialize input frame counter.
 ~SegmentSMSMorph ()
 Destructor of the class.
bool Do (const Segment &in1, Segment &out)
 Unsupervised Do function, receives a Segment as input and output.
bool Do (const Segment &in1, Segment &in2, Segment &out)
bool Do (const Frame &in1, Frame &out)
bool Do ()
 Supervised mode execution method (using ports)
virtual bool UpdateControlValueFromBPF (TData pos)
 Method to update the Amount control from an existing BPF configured in the configuration phase.
void SetSegmentToMorph (Segment &segmentToMorph)
- Public Member Functions inherited from CLAM::SegmentTransformation
void AttachIn (Segment &data)
void AttachOut (Segment &data)
void WrapFrameTransformation (FrameTransformation *)
 SegmentTransformation ()
 Base constructor of class.
 SegmentTransformation (const SegmentTransformationConfig &c)
 Constructor with an object of SegmentTransformationConfig class by parameter.
virtual ~SegmentTransformation ()
virtual bool DoWithSegments (void)
 Supervised Do() function.
virtual bool IsLastFrame ()
 Returns true if there are no more frames to read from input.
- 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)
InPortBaseGetInPort (const std::string &name)
OutPortBaseGetOutPort (const std::string &name)
InControlBaseGetInControl (const std::string &name)
OutControlBaseGetOutControl (const std::string &name)
InPortBaseGetInPort (unsigned index)
OutPortBaseGetOutPort (unsigned index)
InControlBaseGetInControl (unsigned index)
OutControlBaseGetOutControl (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.

Public Attributes

bool mUseGlobalFactor
FloatInControl mHybBPF
bool mUseSynchronizeTime
FloatInControl mSynchronizeTime
bool mUseSinAmp
FloatInControl mHybSinAmp
bool mUseSinSpectralShape
FloatInControl mHybSinSpectralShape
FloatInControl mHybSinShapeW1
FloatInControl mHybSinShapeW2
bool mUsePitch
FloatInControl mHybPitch
bool mUseSinFreq
FloatInControl mHybSinFreq
bool mUseResAmp
FloatInControl mHybResAmp
bool mUseResSpectralShape
FloatInControl mHybResSpectralShape
FloatInControl mHybResShapeW1
FloatInControl mHybResShapeW2
- Public Attributes inherited from CLAM::SegmentTransformation
InControlPublisher mAmountCtrl
 Control for the amount of the concrete transformation that will be applied.

Protected Member Functions

void UpdateFrameInterpolatorFactors (bool useFrameFactor)
bool FindInterpolatedFrameFromSegment2Morph (Frame &interpolatedFrame)
void UpdateSpectralShape (const BPF &weightBPF1, const BPF &weightBPF2, TData interpFactor, Spectrum &spectralShape)
void InitializeFactorsToUse ()
bool LoadSDIF (std::string fileName, Segment &segment)
- Protected Member Functions inherited from CLAM::SegmentTransformation
void AddFramesToOutputIfInputIsLonger (int frameindex, const Segment &in, Segment &out)
virtual const FrameGetCurrentFrame (const Segment &in)
 formerly corresponded to UnwrappedProcessingData
virtual FrameGetCurrentFrame (Segment &out)
 formerly corresponded to UnwrappedProcessingData
- Protected Member Functions inherited from CLAM::Processing
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.
InControlRegistryGetInControls ()
 Accessor to published Controls manager.
OutControlRegistryGetOutControls ()
 Accessor to published Controls manager.
InPortRegistryGetInPorts ()
 Accessor to published Ports manager.
OutPortRegistryGetOutPorts ()
 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

SDIFIn mSDIFReader
SegmentSMSMorphConfig mConfig
 Internally stored configuration.
SegmentmpInput2
 Input Port.
bool mHarmSpectralShapeMorph
bool mHaveInternalSegment
Segment mSegment
Spectrum mSpectralShape
Spectrum mResSpectralShape
FrameInterpolator mPO_FrameInterpolator
 Child processings.
- Protected Attributes inherited from CLAM::SegmentTransformation
bool mUseTemporalBPF
 Boolean member that indicates whether BPF or single value is to be used.
FloatInControl mOnCtrl
 Control to state whether a particular transformation is on or off.
SegmentmInput
SegmentmOutput
int mCurrentInputFrame
- Protected Attributes inherited from CLAM::Processing
ProcessingCompositempParent
 Pointer to the parent (composite) processing object, or 0.
Network_network
 The parent network if any.

Detailed Description

Todo:
: introduce interpolation of spectral shapes, before that, interpolations may be extracted to external Processing's

Definition at line 37 of file SegmentSMSMorph.hxx.


Constructor & Destructor Documentation

CLAM::SegmentSMSMorph::SegmentSMSMorph ( )
CLAM::SegmentSMSMorph::SegmentSMSMorph ( const SegmentSMSMorphConfig c)
CLAM::SegmentSMSMorph::~SegmentSMSMorph ( )
inline

Destructor of the class.

Definition at line 62 of file SegmentSMSMorph.hxx.


Member Function Documentation

bool CLAM::SegmentSMSMorph::ConcreteConfigure ( const ProcessingConfig c)
virtual

Configuration change method.

Note that the Amount Control is initialized from the the values in the configuration. Appart from that the member boolean variable that indicates whether a BPF is used is also initialized and the On/Off control also.

Parameters:
TheProcessingConfig object
Returns:
True if the cast has been commited correctly

Reimplemented from CLAM::SegmentTransformation.

Definition at line 99 of file SegmentSMSMorph.cxx.

References CLAM::FrameInterpolator::AttachSpectralShape(), CLAM::SpecTypeFlags::bMagPhase, CLAM::SpecTypeFlags::bMagPhaseBPF, CLAM_ASSERT, CLAM::Spectrum::Configure(), CLAM::Processing::Configure(), CLAM::Processing::CopyAsConcreteConfig(), InitializeFactorsToUse(), LoadSDIF(), mConfig, mHaveInternalSegment, mpInput2, mPO_FrameInterpolator, mResSpectralShape, mSegment, mSpectralShape, mUseResSpectralShape, mUseSinSpectralShape, and UpdateControlValueFromBPF().

bool CLAM::SegmentSMSMorph::ConcreteStart ( void  )
virtual

Overriding default method to initialize input frame counter.

Reimplemented from CLAM::SegmentTransformation.

Definition at line 142 of file SegmentSMSMorph.cxx.

References mPO_FrameInterpolator, and CLAM::Processing::Start().

bool CLAM::SegmentSMSMorph::Do ( const Segment in,
Segment out 
)
virtual

Unsupervised Do function, receives a Segment as input and output.

This overload is the one called from the supervised Do(). Note that if BPF parameter is used, the Amount control is also updated.

Parameters:
inputthe Segment that is input to the transformation
outthe Segment that is output from the transformation.
Returns:
Boolean value, whether the process has finished successfully or not.

Reimplemented from CLAM::SegmentTransformation.

Definition at line 218 of file SegmentSMSMorph.cxx.

References Do(), and mHaveInternalSegment.

bool CLAM::SegmentSMSMorph::Do ( const Segment in1,
Segment in2,
Segment out 
)

Definition at line 224 of file SegmentSMSMorph.cxx.

References Do(), mHaveInternalSegment, and mpInput2.

bool CLAM::SegmentSMSMorph::Do ( const Frame in1,
Frame out 
)
virtual
bool CLAM::SegmentSMSMorph::Do ( )
inlinevirtual

Supervised mode execution method (using ports)

Returns:
A boolean telling whether it has been output

Reimplemented from CLAM::SegmentTransformation.

Definition at line 69 of file SegmentSMSMorph.hxx.

References CLAM_ASSERT.

Referenced by Do().

bool CLAM::SegmentSMSMorph::FindInterpolatedFrameFromSegment2Morph ( Frame interpolatedFrame)
protected
const char* CLAM::SegmentSMSMorph::GetClassName ( ) const
inlinevirtual

This method returns the name of the object.

Returns:
Char pointer with the name of object

Reimplemented from CLAM::SegmentTransformation.

Definition at line 51 of file SegmentSMSMorph.hxx.

const ProcessingConfig& CLAM::SegmentSMSMorph::GetConfig ( ) const
inlinevirtual

Configuration getter.

Gets the configuration parameters used to create the object.

Returns:
Const reference to the configuration object. The usual way to perform a configuration change in the processing object is to take a copy of this reference, to change it and to send it with the Configure method. If not overriden, it returns a NullProcessingConfig.

Reimplemented from CLAM::SegmentTransformation.

Definition at line 53 of file SegmentSMSMorph.hxx.

References mConfig.

void CLAM::SegmentSMSMorph::InitializeFactorsToUse ( )
protected
bool CLAM::SegmentSMSMorph::LoadSDIF ( std::string  fileName,
Segment segment 
)
protected
void CLAM::SegmentSMSMorph::SetSegmentToMorph ( Segment segmentToMorph)

Definition at line 379 of file SegmentSMSMorph.cxx.

References mHaveInternalSegment, and mpInput2.

bool CLAM::SegmentSMSMorph::UpdateControlValueFromBPF ( TData  pos)
virtual
void CLAM::SegmentSMSMorph::UpdateFrameInterpolatorFactors ( bool  useFrameFactor = false)
protected
void CLAM::SegmentSMSMorph::UpdateSpectralShape ( const BPF weightBPF1,
const BPF weightBPF2,
TData  interpFactor,
Spectrum spectralShape 
)
protected

Member Data Documentation

SegmentSMSMorphConfig CLAM::SegmentSMSMorph::mConfig
protected

Internally stored configuration.

Reimplemented from CLAM::SegmentTransformation.

Definition at line 117 of file SegmentSMSMorph.hxx.

Referenced by ConcreteConfigure(), Do(), GetConfig(), InitializeFactorsToUse(), and UpdateControlValueFromBPF().

bool CLAM::SegmentSMSMorph::mHarmSpectralShapeMorph
protected

Definition at line 125 of file SegmentSMSMorph.hxx.

bool CLAM::SegmentSMSMorph::mHaveInternalSegment
protected

Definition at line 126 of file SegmentSMSMorph.hxx.

Referenced by ConcreteConfigure(), Do(), SegmentSMSMorph(), and SetSegmentToMorph().

FloatInControl CLAM::SegmentSMSMorph::mHybBPF
FloatInControl CLAM::SegmentSMSMorph::mHybPitch
FloatInControl CLAM::SegmentSMSMorph::mHybResAmp
FloatInControl CLAM::SegmentSMSMorph::mHybResShapeW1

Definition at line 104 of file SegmentSMSMorph.hxx.

FloatInControl CLAM::SegmentSMSMorph::mHybResShapeW2

Definition at line 105 of file SegmentSMSMorph.hxx.

FloatInControl CLAM::SegmentSMSMorph::mHybResSpectralShape

Definition at line 103 of file SegmentSMSMorph.hxx.

Referenced by UpdateControlValueFromBPF().

FloatInControl CLAM::SegmentSMSMorph::mHybSinAmp
FloatInControl CLAM::SegmentSMSMorph::mHybSinFreq
FloatInControl CLAM::SegmentSMSMorph::mHybSinShapeW1

Definition at line 90 of file SegmentSMSMorph.hxx.

FloatInControl CLAM::SegmentSMSMorph::mHybSinShapeW2

Definition at line 91 of file SegmentSMSMorph.hxx.

FloatInControl CLAM::SegmentSMSMorph::mHybSinSpectralShape

Definition at line 89 of file SegmentSMSMorph.hxx.

Referenced by UpdateControlValueFromBPF().

Segment* CLAM::SegmentSMSMorph::mpInput2
protected

Input Port.

Note that all SegmentTransformations will have segment as input and output, regartheless on what particular "unwrapped" Processing Data they implement the transformation. Here we add a second segment for the sound to morph.

Definition at line 123 of file SegmentSMSMorph.hxx.

Referenced by ConcreteConfigure(), Do(), FindInterpolatedFrameFromSegment2Morph(), and SetSegmentToMorph().

FrameInterpolator CLAM::SegmentSMSMorph::mPO_FrameInterpolator
protected
Spectrum CLAM::SegmentSMSMorph::mResSpectralShape
protected

Definition at line 131 of file SegmentSMSMorph.hxx.

Referenced by ConcreteConfigure(), and UpdateControlValueFromBPF().

SDIFIn CLAM::SegmentSMSMorph::mSDIFReader
protected

Definition at line 116 of file SegmentSMSMorph.hxx.

Referenced by LoadSDIF().

Segment CLAM::SegmentSMSMorph::mSegment
protected

Definition at line 128 of file SegmentSMSMorph.hxx.

Referenced by ConcreteConfigure().

Spectrum CLAM::SegmentSMSMorph::mSpectralShape
protected

Definition at line 130 of file SegmentSMSMorph.hxx.

Referenced by ConcreteConfigure(), and UpdateControlValueFromBPF().

FloatInControl CLAM::SegmentSMSMorph::mSynchronizeTime
bool CLAM::SegmentSMSMorph::mUseGlobalFactor
bool CLAM::SegmentSMSMorph::mUsePitch
bool CLAM::SegmentSMSMorph::mUseResAmp
bool CLAM::SegmentSMSMorph::mUseResSpectralShape
bool CLAM::SegmentSMSMorph::mUseSinAmp
bool CLAM::SegmentSMSMorph::mUseSinFreq
bool CLAM::SegmentSMSMorph::mUseSinSpectralShape
bool CLAM::SegmentSMSMorph::mUseSynchronizeTime

The documentation for this class was generated from the following files: