summaryrefslogtreecommitdiff
path: root/sw/Core/Src/lfo.h
blob: 74b4b1234a294d73291ab85d951a2c86fcabd611 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
typedef struct lfo {
	float r, i, a;
} lfo;
#define LFOINIT(f) {1.f,0.f,(f)+(f)}
__STATIC_FORCEINLINE void lfo_setfreq(lfo *l, float f) {
	l->a = f + f;
}
__STATIC_FORCEINLINE float lfo_next(lfo *l) {
	l->r -= l->a * l->i;
	l->i += l->a * l->r;
	return l->r;
}