1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-04-30 15:49:41 +02:00
audacity/src/effects/SBSMSEffect.h
Steve Daulton 7b14e68b37 Pass name of proxy effect to EffectSBSMS
Allows progress bar to show meaningful title when using SBSMS
time stretching in Change Pitch/Tempo.
2016-08-16 14:54:34 +01:00

57 lines
1.6 KiB
C++

/**********************************************************************
Audacity: A Digital Audio Editor
SBSMSEffect.h
ClaytonOtey
This abstract class contains all of the common code for an
effect that uses SBSMS to do its processing (TimeScale)
**********************************************************************/
#if USE_SBSMS
#ifndef __AUDACITY_EFFECT_SBSMS__
#define __AUDACITY_EFFECT_SBSMS__
#include "Effect.h"
#include "sbsms.h"
using namespace _sbsms_;
class EffectSBSMS /* not final */ : public Effect
{
public:
bool Process() override;
void setParameters(double rateStart, double rateEnd, double pitchStart, double pitchEnd,
SlideType rateSlideType, SlideType pitchSlideType,
bool bLinkRatePitch, bool bRateReferenceInput, bool bPitchReferenceInput);
void setParameters(double tempoRatio, double pitchRatio); // Constant ratio (tempoRatio, pitchRatio)
static double getInvertedStretchedTime(double rateStart, double rateEnd, SlideType slideType, double outputTime);
static double getRate(double rateStart, double rateEnd, SlideType slideType, double t);
protected:
wxString mProxyEffectName { XO("SBSMS Time / Pitch Stretch") };
wxString GetName() override { return mProxyEffectName; };
private:
bool ProcessLabelTrack(Track *track);
double rateStart, rateEnd, pitchStart, pitchEnd;
bool bLinkRatePitch, bRateReferenceInput, bPitchReferenceInput;
SlideType rateSlideType;
SlideType pitchSlideType;
int mCurTrackNum;
double mCurT0;
double mCurT1;
float mTotalStretch;
friend class EffectChangeTempo;
friend class EffectChangePitch;
};
#endif
#endif