mirror of
https://github.com/cookiengineer/audacity
synced 2025-04-30 15:49:41 +02:00
Allows progress bar to show meaningful title when using SBSMS time stretching in Change Pitch/Tempo.
57 lines
1.6 KiB
C++
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
|