LMMS
Loading...
Searching...
No Matches
allpass.h
Go to the documentation of this file.
1// Allpass filter declaration
2//
3// Written by Jezar at Dreampoint, June 2000
4// http://www.dreampoint.co.uk
5// This code is public domain
6
7#ifndef _allpass_
8#define _allpass_
9#include "denormals.h"
10
12{
13public:
14 allpass();
15 void setbuffer(float *buf, int size);
16 inline float process(float inp);
17 void mute();
18 void setfeedback(float val);
19 float getfeedback();
20// private:
21 float feedback;
22 float *buffer;
24 int bufidx;
25};
26
27
28// Big to inline - but crucial for speed
29
30inline float allpass::process(float input)
31{
32 float output;
33 float bufout;
34
35 bufout = buffer[bufidx];
36 undenormalise(bufout);
37
38 output = -input + bufout;
39 buffer[bufidx] = input + (bufout*feedback);
40
41 if(++bufidx>=bufsize) bufidx = 0;
42
43 return output;
44}
45
46#endif//_allpass
47
48//ends
int bufsize
Definition allpass.h:23
float getfeedback()
Definition allpass.cpp:31
float feedback
Definition allpass.h:21
int bufidx
Definition allpass.h:24
float process(float inp)
Definition allpass.h:30
float * buffer
Definition allpass.h:22
allpass()
Definition allpass.cpp:9
void setfeedback(float val)
Definition allpass.cpp:26
void setbuffer(float *buf, int size)
Definition allpass.cpp:14
void mute()
Definition allpass.cpp:20
int val
Definition jpeglib.h:956
#define undenormalise(sample)
Definition denormals.h:14
ulg size
Definition extract.c:2350