aboutsummaryrefslogtreecommitdiff
path: root/backends/midi/mt32
diff options
context:
space:
mode:
authorTorbjörn Andersson2004-10-22 15:59:11 +0000
committerTorbjörn Andersson2004-10-22 15:59:11 +0000
commit1a36eeda0ee85a37c24962be8fd3e94463585175 (patch)
tree5f782735431f6d0151db7d6b22b8c6f964d9fd3c /backends/midi/mt32
parent5c53a3e260e8208cf9917b74f934b01629c47328 (diff)
downloadscummvm-rg350-1a36eeda0ee85a37c24962be8fd3e94463585175.tar.gz
scummvm-rg350-1a36eeda0ee85a37c24962be8fd3e94463585175.tar.bz2
scummvm-rg350-1a36eeda0ee85a37c24962be8fd3e94463585175.zip
ScummVM style (partial)
svn-id: r15653
Diffstat (limited to 'backends/midi/mt32')
-rw-r--r--backends/midi/mt32/freeverb.cpp3
-rw-r--r--backends/midi/mt32/freeverb.h246
2 files changed, 120 insertions, 129 deletions
diff --git a/backends/midi/mt32/freeverb.cpp b/backends/midi/mt32/freeverb.cpp
index 0b6f280660..df3e3bf2a2 100644
--- a/backends/midi/mt32/freeverb.cpp
+++ b/backends/midi/mt32/freeverb.cpp
@@ -310,6 +310,3 @@ float revmodel::getmode() {
else
return 0;
}
-
-//ends
-
diff --git a/backends/midi/mt32/freeverb.h b/backends/midi/mt32/freeverb.h
index b0d32c8f3f..d618f79670 100644
--- a/backends/midi/mt32/freeverb.h
+++ b/backends/midi/mt32/freeverb.h
@@ -31,77 +31,74 @@
// Based on IS_DENORMAL macro by Jon Watte
// This code is public domain
-#ifndef _freeverb_h_
-#define _freeverb_h_
+#ifndef FREEVERB_H
+#define FREEVERB_H
-#define undenormalise(sample) if(((*(unsigned int*)&sample)&0x7f800000)==0) sample=0.0f
+#define undenormalise(sample) if (((*(unsigned int*)&sample) & 0x7f800000) == 0) sample = 0.0f
// Comb filter class declaration
-class comb
-{
+class comb {
public:
- comb();
- void setbuffer(float *buf, int size);
- inline float process(float inp);
- void mute();
- void setdamp(float val);
- float getdamp();
- void setfeedback(float val);
- float getfeedback();
+ comb();
+ void setbuffer(float *buf, int size);
+ inline float process(float inp);
+ void mute();
+ void setdamp(float val);
+ float getdamp();
+ void setfeedback(float val);
+ float getfeedback();
private:
- float feedback;
- float filterstore;
- float damp1;
- float damp2;
- float *buffer;
- int bufsize;
- int bufidx;
+ float feedback;
+ float filterstore;
+ float damp1;
+ float damp2;
+ float *buffer;
+ int bufsize;
+ int bufidx;
};
// Big to inline - but crucial for speed
-inline float comb::process(float input)
-{
+inline float comb::process(float input) {
float output;
output = buffer[bufidx];
undenormalise(output);
- filterstore = (output*damp2) + (filterstore*damp1);
+ filterstore = (output * damp2) + (filterstore * damp1);
undenormalise(filterstore);
- buffer[bufidx] = input + (filterstore*feedback);
+ buffer[bufidx] = input + (filterstore * feedback);
- if(++bufidx>=bufsize) bufidx = 0;
+ if (++bufidx >= bufsize)
+ bufidx = 0;
return output;
}
// Allpass filter declaration
-class allpass
-{
+class allpass {
public:
- allpass();
- void setbuffer(float *buf, int size);
- inline float process(float inp);
- void mute();
- void setfeedback(float val);
- float getfeedback();
-// private:
- float feedback;
- float *buffer;
- int bufsize;
- int bufidx;
+ allpass();
+ void setbuffer(float *buf, int size);
+ inline float process(float inp);
+ void mute();
+ void setfeedback(float val);
+ float getfeedback();
+private:
+ float feedback;
+ float *buffer;
+ int bufsize;
+ int bufidx;
};
// Big to inline - but crucial for speed
-inline float allpass::process(float input)
-{
+inline float allpass::process(float input) {
float output;
float bufout;
@@ -109,9 +106,10 @@ inline float allpass::process(float input)
undenormalise(bufout);
output = -input + bufout;
- buffer[bufidx] = input + (bufout*feedback);
+ buffer[bufidx] = input + (bufout * feedback);
- if(++bufidx>=bufsize) bufidx = 0;
+ if (++bufidx >= bufsize)
+ bufidx = 0;
return output;
}
@@ -119,22 +117,22 @@ inline float allpass::process(float input)
// Reverb model tuning values
-const int numcombs = 8;
+const int numcombs = 8;
const int numallpasses = 4;
-const float muted = 0;
-const float fixedgain = 0.015f;
-const float scalewet = 3;
-const float scaledry = 2;
-const float scaledamp = 0.4f;
-const float scaleroom = 0.28f;
-const float offsetroom = 0.7f;
-const float initialroom = 0.5f;
-const float initialdamp = 0.5f;
-const float initialwet = 1/scalewet;
-const float initialdry = 0;
-const float initialwidth = 1;
-const float initialmode = 0;
-const float freezemode = 0.5f;
+const float muted = 0;
+const float fixedgain = 0.015f;
+const float scalewet = 3;
+const float scaledry = 2;
+const float scaledamp = 0.4f;
+const float scaleroom = 0.28f;
+const float offsetroom = 0.7f;
+const float initialroom = 0.5f;
+const float initialdamp = 0.5f;
+const float initialwet = 1 / scalewet;
+const float initialdry = 0;
+const float initialwidth = 1;
+const float initialmode = 0;
+const float freezemode = 0.5f;
const int stereospread = 23;
// These values assume 44.1KHz sample rate
@@ -142,105 +140,101 @@ const int stereospread = 23;
// but would need scaling for 96KHz (or other) sample rates.
// The values were obtained by listening tests.
const int combtuningL1 = 1116;
-const int combtuningR1 = 1116+stereospread;
+const int combtuningR1 = 1116 + stereospread;
const int combtuningL2 = 1188;
-const int combtuningR2 = 1188+stereospread;
+const int combtuningR2 = 1188 + stereospread;
const int combtuningL3 = 1277;
-const int combtuningR3 = 1277+stereospread;
+const int combtuningR3 = 1277 + stereospread;
const int combtuningL4 = 1356;
-const int combtuningR4 = 1356+stereospread;
+const int combtuningR4 = 1356 + stereospread;
const int combtuningL5 = 1422;
-const int combtuningR5 = 1422+stereospread;
+const int combtuningR5 = 1422 + stereospread;
const int combtuningL6 = 1491;
-const int combtuningR6 = 1491+stereospread;
+const int combtuningR6 = 1491 + stereospread;
const int combtuningL7 = 1557;
-const int combtuningR7 = 1557+stereospread;
+const int combtuningR7 = 1557 + stereospread;
const int combtuningL8 = 1617;
-const int combtuningR8 = 1617+stereospread;
+const int combtuningR8 = 1617 + stereospread;
const int allpasstuningL1 = 556;
-const int allpasstuningR1 = 556+stereospread;
+const int allpasstuningR1 = 556 + stereospread;
const int allpasstuningL2 = 441;
-const int allpasstuningR2 = 441+stereospread;
+const int allpasstuningR2 = 441 + stereospread;
const int allpasstuningL3 = 341;
-const int allpasstuningR3 = 341+stereospread;
+const int allpasstuningR3 = 341 + stereospread;
const int allpasstuningL4 = 225;
-const int allpasstuningR4 = 225+stereospread;
+const int allpasstuningR4 = 225 + stereospread;
// Reverb model declaration
-class revmodel
-{
+class revmodel {
public:
- revmodel();
- void mute();
- void processmix(float *inputL, float *inputR, float *outputL, float *outputR, long numsamples, int skip);
- void processreplace(float *inputL, float *inputR, float *outputL, float *outputR, long numsamples, int skip);
- void setroomsize(float value);
- float getroomsize();
- void setdamp(float value);
- float getdamp();
- void setwet(float value);
- float getwet();
- void setdry(float value);
- float getdry();
- void setwidth(float value);
- float getwidth();
- void setmode(float value);
- float getmode();
-private:
- void update();
+ revmodel();
+ void mute();
+ void processmix(float *inputL, float *inputR, float *outputL, float *outputR, long numsamples, int skip);
+ void processreplace(float *inputL, float *inputR, float *outputL, float *outputR, long numsamples, int skip);
+ void setroomsize(float value);
+ float getroomsize();
+ void setdamp(float value);
+ float getdamp();
+ void setwet(float value);
+ float getwet();
+ void setdry(float value);
+ float getdry();
+ void setwidth(float value);
+ float getwidth();
+ void setmode(float value);
+ float getmode();
private:
- float gain;
- float roomsize,roomsize1;
- float damp,damp1;
- float wet,wet1,wet2;
- float dry;
- float width;
- float mode;
+ void update();
+
+ float gain;
+ float roomsize, roomsize1;
+ float damp, damp1;
+ float wet, wet1, wet2;
+ float dry;
+ float width;
+ float mode;
// The following are all declared inline
// to remove the need for dynamic allocation
// with its subsequent error-checking messiness
// Comb filters
- comb combL[numcombs];
- comb combR[numcombs];
+ comb combL[numcombs];
+ comb combR[numcombs];
// Allpass filters
allpass allpassL[numallpasses];
allpass allpassR[numallpasses];
// Buffers for the combs
- float bufcombL1[combtuningL1];
- float bufcombR1[combtuningR1];
- float bufcombL2[combtuningL2];
- float bufcombR2[combtuningR2];
- float bufcombL3[combtuningL3];
- float bufcombR3[combtuningR3];
- float bufcombL4[combtuningL4];
- float bufcombR4[combtuningR4];
- float bufcombL5[combtuningL5];
- float bufcombR5[combtuningR5];
- float bufcombL6[combtuningL6];
- float bufcombR6[combtuningR6];
- float bufcombL7[combtuningL7];
- float bufcombR7[combtuningR7];
- float bufcombL8[combtuningL8];
- float bufcombR8[combtuningR8];
+ float bufcombL1[combtuningL1];
+ float bufcombR1[combtuningR1];
+ float bufcombL2[combtuningL2];
+ float bufcombR2[combtuningR2];
+ float bufcombL3[combtuningL3];
+ float bufcombR3[combtuningR3];
+ float bufcombL4[combtuningL4];
+ float bufcombR4[combtuningR4];
+ float bufcombL5[combtuningL5];
+ float bufcombR5[combtuningR5];
+ float bufcombL6[combtuningL6];
+ float bufcombR6[combtuningR6];
+ float bufcombL7[combtuningL7];
+ float bufcombR7[combtuningR7];
+ float bufcombL8[combtuningL8];
+ float bufcombR8[combtuningR8];
// Buffers for the allpasses
- float bufallpassL1[allpasstuningL1];
- float bufallpassR1[allpasstuningR1];
- float bufallpassL2[allpasstuningL2];
- float bufallpassR2[allpasstuningR2];
- float bufallpassL3[allpasstuningL3];
- float bufallpassR3[allpasstuningR3];
- float bufallpassL4[allpasstuningL4];
- float bufallpassR4[allpasstuningR4];
+ float bufallpassL1[allpasstuningL1];
+ float bufallpassR1[allpasstuningR1];
+ float bufallpassL2[allpasstuningL2];
+ float bufallpassR2[allpasstuningR2];
+ float bufallpassL3[allpasstuningL3];
+ float bufallpassR3[allpasstuningR3];
+ float bufallpassL4[allpasstuningL4];
+ float bufallpassR4[allpasstuningR4];
};
-#endif//_freeverb_h_
-
-//ends
-
+#endif