aboutsummaryrefslogtreecommitdiff
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.h52
1 files changed, 21 insertions, 31 deletions
diff --git a/servers/audio/effects/audio_effect_pitch_shift.h b/servers/audio/effects/audio_effect_pitch_shift.h
index 1320976f5..610efdc0e 100644
--- a/servers/audio/effects/audio_effect_pitch_shift.h
+++ b/servers/audio/effects/audio_effect_pitch_shift.h
@@ -29,21 +29,20 @@
#ifndef AUDIO_EFFECT_PITCH_SHIFT_H
#define AUDIO_EFFECT_PITCH_SHIFT_H
-
#include "servers/audio/audio_effect.h"
class SMBPitchShift {
enum {
- MAX_FRAME_LENGTH=8192
+ 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 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];
@@ -51,47 +50,41 @@ class SMBPitchShift {
long gRover;
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));
+ 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;
class AudioEffectPitchShiftInstance : public AudioEffectInstance {
- GDCLASS(AudioEffectPitchShiftInstance,AudioEffectInstance)
-friend class AudioEffectPitchShift;
+ GDCLASS(AudioEffectPitchShiftInstance, AudioEffectInstance)
+ friend class AudioEffectPitchShift;
Ref<AudioEffectPitchShift> base;
SMBPitchShift shift_l;
SMBPitchShift shift_r;
-
public:
-
- virtual void process(const AudioFrame *p_src_frames,AudioFrame *p_dst_frames,int p_frame_count);
-
+ virtual void process(const AudioFrame *p_src_frames, AudioFrame *p_dst_frames, int p_frame_count);
};
-
class AudioEffectPitchShift : public AudioEffect {
- GDCLASS(AudioEffectPitchShift,AudioEffect)
+ GDCLASS(AudioEffectPitchShift, AudioEffect)
-friend class AudioEffectPitchShiftInstance;
+ friend class AudioEffectPitchShiftInstance;
float pitch_scale;
int window_size;
@@ -100,11 +93,9 @@ friend class AudioEffectPitchShiftInstance;
bool filter;
protected:
-
static void _bind_methods();
-public:
-
+public:
Ref<AudioEffectInstance> instance();
void set_pitch_scale(float p_adjust);
@@ -113,5 +104,4 @@ public:
AudioEffectPitchShift();
};
-
#endif // AUDIO_EFFECT_PITCH_SHIFT_H