diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2017-03-05 16:44:50 +0100 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2017-03-05 16:44:50 +0100 |
commit | 5dbf1809c6e3e905b94b8764e99491e608122261 (patch) | |
tree | 5e5a5360db15d86d59ec8c6e4f7eb511388c5a9a /servers/audio/effects/audio_effect_distortion.cpp | |
parent | 45438e9918d421b244bfd7776a30e67dc7f2d3e3 (diff) |
A Whole New World (clang-format edition)
I can show you the code
Pretty, with proper whitespace
Tell me, coder, now when did
You last write readable code?
I can open your eyes
Make you see your bad indent
Force you to respect the style
The core devs agreed upon
A whole new world
A new fantastic code format
A de facto standard
With some sugar
Enforced with clang-format
A whole new world
A dazzling style we all dreamed of
And when we read it through
It's crystal clear
That now we're in a whole new world of code
Diffstat (limited to 'servers/audio/effects/audio_effect_distortion.cpp')
-rw-r--r-- | servers/audio/effects/audio_effect_distortion.cpp | 148 |
1 files changed, 67 insertions, 81 deletions
diff --git a/servers/audio/effects/audio_effect_distortion.cpp b/servers/audio/effects/audio_effect_distortion.cpp index b72cd8e0a6..e5430fcd21 100644 --- a/servers/audio/effects/audio_effect_distortion.cpp +++ b/servers/audio/effects/audio_effect_distortion.cpp @@ -27,173 +27,159 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "audio_effect_distortion.h" -#include "servers/audio_server.h" #include "math_funcs.h" +#include "servers/audio_server.h" +void AudioEffectDistortionInstance::process(const AudioFrame *p_src_frames, AudioFrame *p_dst_frames, int p_frame_count) { - -void AudioEffectDistortionInstance::process(const AudioFrame *p_src_frames,AudioFrame *p_dst_frames,int p_frame_count) { - - const float *src = (const float*)p_src_frames; - float *dst = (float*)p_dst_frames; + const float *src = (const float *)p_src_frames; + float *dst = (float *)p_dst_frames; //float lpf_c=expf(-2.0*Math_PI*keep_hf_hz.get()/(mix_rate*(float)OVERSAMPLE)); - float lpf_c=expf(-2.0*Math_PI*base->keep_hf_hz/(AudioServer::get_singleton()->get_mix_rate())); - float lpf_ic=1.0-lpf_c; + float lpf_c = expf(-2.0 * Math_PI * base->keep_hf_hz / (AudioServer::get_singleton()->get_mix_rate())); + float lpf_ic = 1.0 - lpf_c; - float drive_f=base->drive; - float pregain_f=Math::db2linear(base->pre_gain); - float postgain_f=Math::db2linear(base->post_gain); + float drive_f = base->drive; + float pregain_f = Math::db2linear(base->pre_gain); + float postgain_f = Math::db2linear(base->post_gain); - float atan_mult=pow(10,drive_f*drive_f*3.0)-1.0+0.001; - float atan_div=1.0/(atanf(atan_mult)*(1.0+drive_f*8)); + float atan_mult = pow(10, drive_f * drive_f * 3.0) - 1.0 + 0.001; + float atan_div = 1.0 / (atanf(atan_mult) * (1.0 + drive_f * 8)); - float lofi_mult=powf(2.0,2.0+(1.0-drive_f)*14); //goes from 16 to 2 bits + float lofi_mult = powf(2.0, 2.0 + (1.0 - drive_f) * 14); //goes from 16 to 2 bits - for (int i=0;i<p_frame_count*2;i++) { + for (int i = 0; i < p_frame_count * 2; i++) { - float out=undenormalise(src[i]*lpf_ic+lpf_c*h[i&1]); - h[i&1]=out; - float a=out; - float ha=src[i]-out; //high freqs - a*=pregain_f; + float out = undenormalise(src[i] * lpf_ic + lpf_c * h[i & 1]); + h[i & 1] = out; + float a = out; + float ha = src[i] - out; //high freqs + a *= pregain_f; switch (base->mode) { case AudioEffectDistortion::MODE_CLIP: { - a=powf(a,1.0001-drive_f); - if (a>1.0) - a=1.0; - else if (a<(-1.0)) - a=-1.0; + a = powf(a, 1.0001 - drive_f); + if (a > 1.0) + a = 1.0; + else if (a < (-1.0)) + a = -1.0; } break; case AudioEffectDistortion::MODE_ATAN: { - - a=atanf(a*atan_mult)*atan_div; + a = atanf(a * atan_mult) * atan_div; } break; case AudioEffectDistortion::MODE_LOFI: { - a = floorf(a*lofi_mult+0.5)/lofi_mult; + a = floorf(a * lofi_mult + 0.5) / lofi_mult; } break; case AudioEffectDistortion::MODE_OVERDRIVE: { - const double x = a * 0.686306; - const double z = 1 + exp (sqrt (fabs (x)) * -0.75); + const double z = 1 + exp(sqrt(fabs(x)) * -0.75); a = (expf(x) - expf(-x * z)) / (expf(x) + expf(-x)); } break; case AudioEffectDistortion::MODE_WAVESHAPE: { float x = a; - float k= 2*drive_f/(1.00001-drive_f); - - a = (1.0+k)*x/(1.0+k*fabsf(x)); + float k = 2 * drive_f / (1.00001 - drive_f); + a = (1.0 + k) * x / (1.0 + k * fabsf(x)); } break; } - dst[i]=a*postgain_f+ha; - + dst[i] = a * postgain_f + ha; } - - } - Ref<AudioEffectInstance> AudioEffectDistortion::instance() { Ref<AudioEffectDistortionInstance> ins; ins.instance(); - ins->base=Ref<AudioEffectDistortion>(this); - ins->h[0]=0; - ins->h[1]=0; + ins->base = Ref<AudioEffectDistortion>(this); + ins->h[0] = 0; + ins->h[1] = 0; return ins; } - void AudioEffectDistortion::set_mode(Mode p_mode) { - mode=p_mode; + mode = p_mode; } -AudioEffectDistortion::Mode AudioEffectDistortion::get_mode() const{ +AudioEffectDistortion::Mode AudioEffectDistortion::get_mode() const { return mode; } -void AudioEffectDistortion::set_pre_gain(float p_pre_gain){ +void AudioEffectDistortion::set_pre_gain(float p_pre_gain) { - pre_gain=p_pre_gain; + pre_gain = p_pre_gain; } -float AudioEffectDistortion::get_pre_gain() const{ +float AudioEffectDistortion::get_pre_gain() const { return pre_gain; } -void AudioEffectDistortion::set_keep_hf_hz(float p_keep_hf_hz){ +void AudioEffectDistortion::set_keep_hf_hz(float p_keep_hf_hz) { - keep_hf_hz=p_keep_hf_hz; + keep_hf_hz = p_keep_hf_hz; } -float AudioEffectDistortion::get_keep_hf_hz() const{ +float AudioEffectDistortion::get_keep_hf_hz() const { return keep_hf_hz; } -void AudioEffectDistortion::set_drive(float p_drive){ +void AudioEffectDistortion::set_drive(float p_drive) { - drive=p_drive; + drive = p_drive; } -float AudioEffectDistortion::get_drive() const{ +float AudioEffectDistortion::get_drive() const { return drive; } -void AudioEffectDistortion::set_post_gain(float p_post_gain){ +void AudioEffectDistortion::set_post_gain(float p_post_gain) { - post_gain=p_post_gain; + post_gain = p_post_gain; } -float AudioEffectDistortion::get_post_gain() const{ +float AudioEffectDistortion::get_post_gain() const { return post_gain; } - void AudioEffectDistortion::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_mode","mode"),&AudioEffectDistortion::set_mode); - ClassDB::bind_method(D_METHOD("get_mode"),&AudioEffectDistortion::get_mode); - - ClassDB::bind_method(D_METHOD("set_pre_gain","pre_gain"),&AudioEffectDistortion::set_pre_gain); - ClassDB::bind_method(D_METHOD("get_pre_gain"),&AudioEffectDistortion::get_pre_gain); + ClassDB::bind_method(D_METHOD("set_mode", "mode"), &AudioEffectDistortion::set_mode); + ClassDB::bind_method(D_METHOD("get_mode"), &AudioEffectDistortion::get_mode); - ClassDB::bind_method(D_METHOD("set_keep_hf_hz","keep_hf_hz"),&AudioEffectDistortion::set_keep_hf_hz); - ClassDB::bind_method(D_METHOD("get_keep_hf_hz"),&AudioEffectDistortion::get_keep_hf_hz); + ClassDB::bind_method(D_METHOD("set_pre_gain", "pre_gain"), &AudioEffectDistortion::set_pre_gain); + ClassDB::bind_method(D_METHOD("get_pre_gain"), &AudioEffectDistortion::get_pre_gain); - ClassDB::bind_method(D_METHOD("set_drive","drive"),&AudioEffectDistortion::set_drive); - ClassDB::bind_method(D_METHOD("get_drive"),&AudioEffectDistortion::get_drive); + ClassDB::bind_method(D_METHOD("set_keep_hf_hz", "keep_hf_hz"), &AudioEffectDistortion::set_keep_hf_hz); + ClassDB::bind_method(D_METHOD("get_keep_hf_hz"), &AudioEffectDistortion::get_keep_hf_hz); + ClassDB::bind_method(D_METHOD("set_drive", "drive"), &AudioEffectDistortion::set_drive); + ClassDB::bind_method(D_METHOD("get_drive"), &AudioEffectDistortion::get_drive); - ClassDB::bind_method(D_METHOD("set_post_gain","post_gain"),&AudioEffectDistortion::set_post_gain); - ClassDB::bind_method(D_METHOD("get_post_gain"),&AudioEffectDistortion::get_post_gain); + ClassDB::bind_method(D_METHOD("set_post_gain", "post_gain"), &AudioEffectDistortion::set_post_gain); + ClassDB::bind_method(D_METHOD("get_post_gain"), &AudioEffectDistortion::get_post_gain); - ADD_PROPERTY(PropertyInfo(Variant::INT,"mode",PROPERTY_HINT_ENUM,"Clip,ATan,LoFi,Overdrive,WaveShape"),"set_mode","get_mode"); - ADD_PROPERTY(PropertyInfo(Variant::REAL,"pre_gain",PROPERTY_HINT_RANGE,"-60,60,0.01"),"set_pre_gain","get_pre_gain"); - ADD_PROPERTY(PropertyInfo(Variant::REAL,"keep_hf_hz",PROPERTY_HINT_RANGE,"1,20000,1"),"set_keep_hf_hz","get_keep_hf_hz"); - ADD_PROPERTY(PropertyInfo(Variant::REAL,"drive",PROPERTY_HINT_RANGE,"0,1,0.01"),"set_drive","get_drive"); - ADD_PROPERTY(PropertyInfo(Variant::REAL,"post_gain",PROPERTY_HINT_RANGE,"-80,24,0.01"),"set_post_gain","get_post_gain"); + ADD_PROPERTY(PropertyInfo(Variant::INT, "mode", PROPERTY_HINT_ENUM, "Clip,ATan,LoFi,Overdrive,WaveShape"), "set_mode", "get_mode"); + ADD_PROPERTY(PropertyInfo(Variant::REAL, "pre_gain", PROPERTY_HINT_RANGE, "-60,60,0.01"), "set_pre_gain", "get_pre_gain"); + ADD_PROPERTY(PropertyInfo(Variant::REAL, "keep_hf_hz", PROPERTY_HINT_RANGE, "1,20000,1"), "set_keep_hf_hz", "get_keep_hf_hz"); + ADD_PROPERTY(PropertyInfo(Variant::REAL, "drive", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_drive", "get_drive"); + ADD_PROPERTY(PropertyInfo(Variant::REAL, "post_gain", PROPERTY_HINT_RANGE, "-80,24,0.01"), "set_post_gain", "get_post_gain"); } -AudioEffectDistortion::AudioEffectDistortion() -{ - mode=MODE_CLIP; - pre_gain=0; - post_gain=0; - keep_hf_hz=16000; - drive=0; +AudioEffectDistortion::AudioEffectDistortion() { + mode = MODE_CLIP; + pre_gain = 0; + post_gain = 0; + keep_hf_hz = 16000; + drive = 0; } - |