CLAM-Development
1.4.0
|
#include <SegmentSMSMorph.hxx>
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 ProcessingConfig & | GetConfig () 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) |
![]() | |
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. | |
![]() | |
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. |
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 |
![]() | |
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) |
![]() | |
void | AddFramesToOutputIfInputIsLonger (int frameindex, const Segment &in, Segment &out) |
virtual const Frame & | GetCurrentFrame (const Segment &in) |
formerly corresponded to UnwrappedProcessingData | |
virtual Frame & | GetCurrentFrame (Segment &out) |
formerly corresponded to UnwrappedProcessingData | |
![]() | |
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 | |
SDIFIn | mSDIFReader |
SegmentSMSMorphConfig | mConfig |
Internally stored configuration. | |
Segment * | mpInput2 |
Input Port. | |
bool | mHarmSpectralShapeMorph |
bool | mHaveInternalSegment |
Segment | mSegment |
Spectrum | mSpectralShape |
Spectrum | mResSpectralShape |
FrameInterpolator | mPO_FrameInterpolator |
Child processings. | |
![]() | |
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. | |
Segment * | mInput |
Segment * | mOutput |
int | mCurrentInputFrame |
![]() | |
ProcessingComposite * | mpParent |
Pointer to the parent (composite) processing object, or 0. | |
Network * | _network |
The parent network if any. |
Definition at line 37 of file SegmentSMSMorph.hxx.
CLAM::SegmentSMSMorph::SegmentSMSMorph | ( | ) |
Base constructor of class.
Calls Configure method with a SegmentTransformationConfig initialised by default
Definition at line 39 of file SegmentSMSMorph.cxx.
References mHaveInternalSegment, mUseGlobalFactor, mUsePitch, mUseResAmp, mUseResSpectralShape, mUseSinAmp, mUseSinFreq, mUseSinSpectralShape, mUseSynchronizeTime, and CLAM::SegmentTransformation::mUseTemporalBPF.
CLAM::SegmentSMSMorph::SegmentSMSMorph | ( | const SegmentSMSMorphConfig & | c | ) |
Constructor with an object of SegmentTransformationConfig class by parameter.
c | SegmentTransformationConfig object created by the user |
Definition at line 68 of file SegmentSMSMorph.cxx.
References CLAM::Processing::Configure(), mHaveInternalSegment, mUseGlobalFactor, mUsePitch, mUseResAmp, mUseResSpectralShape, mUseSinAmp, mUseSinFreq, mUseSinSpectralShape, mUseSynchronizeTime, and CLAM::SegmentTransformation::mUseTemporalBPF.
|
inline |
Destructor of the class.
Definition at line 62 of file SegmentSMSMorph.hxx.
|
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.
The | ProcessingConfig object |
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().
|
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().
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.
input | the Segment that is input to the transformation |
out | the Segment that is output from the transformation. |
Reimplemented from CLAM::SegmentTransformation.
Definition at line 218 of file SegmentSMSMorph.cxx.
References Do(), and mHaveInternalSegment.
Definition at line 224 of file SegmentSMSMorph.cxx.
References Do(), mHaveInternalSegment, and mpInput2.
Reimplemented from CLAM::SegmentTransformation.
Definition at line 163 of file SegmentSMSMorph.cxx.
References CLAM::FrameInterpolator::Do(), FindInterpolatedFrameFromSegment2Morph(), CLAM::Segment::GetFrame(), CLAM::InControl< ControlDataType >::GetLastValue(), CLAM::Segment::GetnFrames(), mConfig, mpInput2, mPO_FrameInterpolator, mSynchronizeTime, and UpdateFrameInterpolatorFactors().
|
inlinevirtual |
Supervised mode execution method (using ports)
Reimplemented from CLAM::SegmentTransformation.
Definition at line 69 of file SegmentSMSMorph.hxx.
References CLAM_ASSERT.
Referenced by Do().
|
protected |
Definition at line 200 of file SegmentSMSMorph.cxx.
References CLAM::FrameInterpolator::Do(), CLAM::InControl< ControlDataType >::DoControl(), CLAM::Segment::GetFrame(), CLAM::InControl< ControlDataType >::GetLastValue(), CLAM::Segment::GetnFrames(), CLAM::Segment::mCurrentFrameIndex, mHybBPF, mpInput2, mPO_FrameInterpolator, mSynchronizeTime, and UpdateFrameInterpolatorFactors().
Referenced by Do().
|
inlinevirtual |
This method returns the name of the object.
Reimplemented from CLAM::SegmentTransformation.
Definition at line 51 of file SegmentSMSMorph.hxx.
|
inlinevirtual |
Configuration getter.
Gets the configuration parameters used to create the object.
Reimplemented from CLAM::SegmentTransformation.
Definition at line 53 of file SegmentSMSMorph.hxx.
References mConfig.
|
protected |
Definition at line 292 of file SegmentSMSMorph.cxx.
References mConfig, mUseGlobalFactor, mUsePitch, mUseResAmp, mUseResSpectralShape, mUseSinAmp, mUseSinFreq, mUseSinSpectralShape, and mUseSynchronizeTime.
Referenced by ConcreteConfigure().
|
protected |
Definition at line 356 of file SegmentSMSMorph.cxx.
References CLAM::Processing::Configure(), CLAM::SDIFIn::Do(), mSDIFReader, CLAM::Processing::Start(), CLAM::Processing::Stop(), and CLAM::DynamicType::UpdateData().
Referenced by ConcreteConfigure().
void CLAM::SegmentSMSMorph::SetSegmentToMorph | ( | Segment & | segmentToMorph | ) |
Definition at line 379 of file SegmentSMSMorph.cxx.
References mHaveInternalSegment, and mpInput2.
|
virtual |
Method to update the Amount control from an existing BPF configured in the configuration phase.
Reimplemented from CLAM::SegmentTransformation.
Definition at line 232 of file SegmentSMSMorph.cxx.
References CLAM::InControl< ControlDataType >::DoControl(), CLAM::InControl< ControlDataType >::GetLastValue(), mConfig, mHybBPF, mHybPitch, mHybResAmp, mHybResSpectralShape, mHybSinAmp, mHybSinFreq, mHybSinSpectralShape, mResSpectralShape, mSpectralShape, mSynchronizeTime, mUseGlobalFactor, mUsePitch, mUseResAmp, mUseResSpectralShape, mUseSinAmp, mUseSinFreq, mUseSinSpectralShape, mUseSynchronizeTime, and UpdateSpectralShape().
Referenced by ConcreteConfigure().
|
protected |
Definition at line 148 of file SegmentSMSMorph.cxx.
References CLAM::InControl< ControlDataType >::DoControl(), CLAM::InControl< ControlDataType >::GetLastValue(), CLAM::FrameInterpolator::mFrameInterpolationFactorCtl, CLAM::FrameInterpolator::mFreqInterpolationFactorCtl, mHybBPF, mHybPitch, mHybResAmp, mHybSinAmp, mHybSinFreq, CLAM::FrameInterpolator::mMagInterpolationFactorCtl, CLAM::FrameInterpolator::mPitchInterpolationFactorCtl, mPO_FrameInterpolator, and CLAM::FrameInterpolator::mResidualInterpolationFactorCtl.
Referenced by Do(), and FindInterpolatedFrameFromSegment2Morph().
|
protected |
Definition at line 316 of file SegmentSMSMorph.cxx.
References CLAM::BPFTmpl< TX, TY >::GetValue(), CLAM::BPFTmpl< TX, TY >::GetValueFromIndex(), CLAM::BPFTmpl< TX, TY >::GetXValue(), CLAM::BPFTmpl< TX, TY >::Insert(), CLAM::Spectrum::SetSize(), and CLAM::BPFTmpl< TX, TY >::Size().
Referenced by UpdateControlValueFromBPF().
|
protected |
Internally stored configuration.
Reimplemented from CLAM::SegmentTransformation.
Definition at line 117 of file SegmentSMSMorph.hxx.
Referenced by ConcreteConfigure(), Do(), GetConfig(), InitializeFactorsToUse(), and UpdateControlValueFromBPF().
|
protected |
Definition at line 125 of file SegmentSMSMorph.hxx.
|
protected |
Definition at line 126 of file SegmentSMSMorph.hxx.
Referenced by ConcreteConfigure(), Do(), SegmentSMSMorph(), and SetSegmentToMorph().
FloatInControl CLAM::SegmentSMSMorph::mHybBPF |
Definition at line 80 of file SegmentSMSMorph.hxx.
Referenced by FindInterpolatedFrameFromSegment2Morph(), UpdateControlValueFromBPF(), and UpdateFrameInterpolatorFactors().
FloatInControl CLAM::SegmentSMSMorph::mHybPitch |
Definition at line 94 of file SegmentSMSMorph.hxx.
Referenced by UpdateControlValueFromBPF(), and UpdateFrameInterpolatorFactors().
FloatInControl CLAM::SegmentSMSMorph::mHybResAmp |
Definition at line 100 of file SegmentSMSMorph.hxx.
Referenced by UpdateControlValueFromBPF(), and UpdateFrameInterpolatorFactors().
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 |
Definition at line 86 of file SegmentSMSMorph.hxx.
Referenced by UpdateControlValueFromBPF(), and UpdateFrameInterpolatorFactors().
FloatInControl CLAM::SegmentSMSMorph::mHybSinFreq |
Definition at line 97 of file SegmentSMSMorph.hxx.
Referenced by UpdateControlValueFromBPF(), and UpdateFrameInterpolatorFactors().
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().
|
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().
|
protected |
Child processings.
Definition at line 136 of file SegmentSMSMorph.hxx.
Referenced by ConcreteConfigure(), ConcreteStart(), Do(), FindInterpolatedFrameFromSegment2Morph(), and UpdateFrameInterpolatorFactors().
|
protected |
Definition at line 131 of file SegmentSMSMorph.hxx.
Referenced by ConcreteConfigure(), and UpdateControlValueFromBPF().
|
protected |
Definition at line 116 of file SegmentSMSMorph.hxx.
Referenced by LoadSDIF().
|
protected |
Definition at line 128 of file SegmentSMSMorph.hxx.
Referenced by ConcreteConfigure().
|
protected |
Definition at line 130 of file SegmentSMSMorph.hxx.
Referenced by ConcreteConfigure(), and UpdateControlValueFromBPF().
FloatInControl CLAM::SegmentSMSMorph::mSynchronizeTime |
Definition at line 83 of file SegmentSMSMorph.hxx.
Referenced by Do(), FindInterpolatedFrameFromSegment2Morph(), and UpdateControlValueFromBPF().
bool CLAM::SegmentSMSMorph::mUseGlobalFactor |
Definition at line 79 of file SegmentSMSMorph.hxx.
Referenced by InitializeFactorsToUse(), SegmentSMSMorph(), and UpdateControlValueFromBPF().
bool CLAM::SegmentSMSMorph::mUsePitch |
Definition at line 93 of file SegmentSMSMorph.hxx.
Referenced by InitializeFactorsToUse(), SegmentSMSMorph(), and UpdateControlValueFromBPF().
bool CLAM::SegmentSMSMorph::mUseResAmp |
Definition at line 99 of file SegmentSMSMorph.hxx.
Referenced by InitializeFactorsToUse(), SegmentSMSMorph(), and UpdateControlValueFromBPF().
bool CLAM::SegmentSMSMorph::mUseResSpectralShape |
Definition at line 102 of file SegmentSMSMorph.hxx.
Referenced by ConcreteConfigure(), InitializeFactorsToUse(), SegmentSMSMorph(), and UpdateControlValueFromBPF().
bool CLAM::SegmentSMSMorph::mUseSinAmp |
Definition at line 85 of file SegmentSMSMorph.hxx.
Referenced by InitializeFactorsToUse(), SegmentSMSMorph(), and UpdateControlValueFromBPF().
bool CLAM::SegmentSMSMorph::mUseSinFreq |
Definition at line 96 of file SegmentSMSMorph.hxx.
Referenced by InitializeFactorsToUse(), SegmentSMSMorph(), and UpdateControlValueFromBPF().
bool CLAM::SegmentSMSMorph::mUseSinSpectralShape |
Definition at line 88 of file SegmentSMSMorph.hxx.
Referenced by ConcreteConfigure(), InitializeFactorsToUse(), SegmentSMSMorph(), and UpdateControlValueFromBPF().
bool CLAM::SegmentSMSMorph::mUseSynchronizeTime |
Definition at line 82 of file SegmentSMSMorph.hxx.
Referenced by InitializeFactorsToUse(), SegmentSMSMorph(), and UpdateControlValueFromBPF().