summaryrefslogtreecommitdiffstats
path: root/servers/audio/effects/audio_effect_pitch_shift.h
diff options
context:
space:
mode:
Diffstat (limited to 'servers/audio/effects/audio_effect_pitch_shift.h')
-rw-r--r--servers/audio/effects/audio_effect_pitch_shift.h50
1 files changed, 18 insertions, 32 deletions
diff --git a/servers/audio/effects/audio_effect_pitch_shift.h b/servers/audio/effects/audio_effect_pitch_shift.h
index f372cc2124..949ce96057 100644
--- a/servers/audio/effects/audio_effect_pitch_shift.h
+++ b/servers/audio/effects/audio_effect_pitch_shift.h
@@ -38,34 +38,22 @@ class SMBPitchShift {
MAX_FRAME_LENGTH = 8192
};
- float gInFIFO[MAX_FRAME_LENGTH];
- float gOutFIFO[MAX_FRAME_LENGTH];
- float gFFTworksp[2 * MAX_FRAME_LENGTH];
- float gLastPhase[MAX_FRAME_LENGTH / 2 + 1];
- float gSumPhase[MAX_FRAME_LENGTH / 2 + 1];
- float gOutputAccum[2 * MAX_FRAME_LENGTH];
- float gAnaFreq[MAX_FRAME_LENGTH];
- float gAnaMagn[MAX_FRAME_LENGTH];
- float gSynFreq[MAX_FRAME_LENGTH];
- float gSynMagn[MAX_FRAME_LENGTH];
- long gRover;
+ float gInFIFO[MAX_FRAME_LENGTH] = {};
+ float gOutFIFO[MAX_FRAME_LENGTH] = {};
+ float gFFTworksp[2 * MAX_FRAME_LENGTH] = {};
+ float gLastPhase[MAX_FRAME_LENGTH / 2 + 1] = {};
+ float gSumPhase[MAX_FRAME_LENGTH / 2 + 1] = {};
+ float gOutputAccum[2 * MAX_FRAME_LENGTH] = {};
+ float gAnaFreq[MAX_FRAME_LENGTH] = {};
+ float gAnaMagn[MAX_FRAME_LENGTH] = {};
+ float gSynFreq[MAX_FRAME_LENGTH] = {};
+ float gSynMagn[MAX_FRAME_LENGTH] = {};
+ long gRover = 0;
void smbFft(float *fftBuffer, long fftFrameSize, long sign);
public:
void PitchShift(float pitchShift, long numSampsToProcess, long fftFrameSize, long osamp, float sampleRate, float *indata, float *outdata, int stride);
-
- SMBPitchShift() {
- gRover = 0;
- memset(gInFIFO, 0, MAX_FRAME_LENGTH * sizeof(float));
- memset(gOutFIFO, 0, MAX_FRAME_LENGTH * sizeof(float));
- memset(gFFTworksp, 0, 2 * MAX_FRAME_LENGTH * sizeof(float));
- memset(gLastPhase, 0, (MAX_FRAME_LENGTH / 2 + 1) * sizeof(float));
- memset(gSumPhase, 0, (MAX_FRAME_LENGTH / 2 + 1) * sizeof(float));
- memset(gOutputAccum, 0, 2 * MAX_FRAME_LENGTH * sizeof(float));
- memset(gAnaFreq, 0, MAX_FRAME_LENGTH * sizeof(float));
- memset(gAnaMagn, 0, MAX_FRAME_LENGTH * sizeof(float));
- }
};
class AudioEffectPitchShift;
@@ -75,7 +63,7 @@ class AudioEffectPitchShiftInstance : public AudioEffectInstance {
friend class AudioEffectPitchShift;
Ref<AudioEffectPitchShift> base;
- int fft_size;
+ int fft_size = 0;
SMBPitchShift shift_l;
SMBPitchShift shift_r;
@@ -98,12 +86,12 @@ public:
FFT_SIZE_MAX
};
- float pitch_scale;
- int oversampling;
- FFTSize fft_size;
- float wet;
- float dry;
- bool filter;
+ float pitch_scale = 1.0;
+ int oversampling = 4;
+ FFTSize fft_size = FFT_SIZE_2048;
+ float wet = 0.0;
+ float dry = 0.0;
+ bool filter = false;
protected:
static void _bind_methods();
@@ -119,8 +107,6 @@ public:
void set_fft_size(FFTSize);
FFTSize get_fft_size() const;
-
- AudioEffectPitchShift();
};
VARIANT_ENUM_CAST(AudioEffectPitchShift::FFTSize);