add a bunch of files

This commit is contained in:
cnlohr 2015-01-06 22:51:39 -05:00
parent 27b65f10dc
commit 13d0f17b11
38 changed files with 5048 additions and 0 deletions

57
filter.c Normal file
View file

@ -0,0 +1,57 @@
#include "filter.h"
#include <math.h>
#include <string.h>
void FilterFoldedBinsIIRTWOPASS( float * folded, int bins, float iir )
{
int i;
float inv = 1.0 - iir;
float v = 0.0;
//Go through the data once, forward.
for( i = 0; i < bins; i++ )
{
v = v * iir + folded[i] * inv;
}
//Start applying filter on second pass.
for( i = 0; i < bins; i++ )
{
folded[i] = v * iir + folded[i] * inv;
}
//Go backwards.
v = 0;
for( i = bins-1; i >= 0; i-- )
{
v = v * iir + folded[i] * inv;
}
//Start applying filter on second pass.
for( i = bins-1; i >= 0; i-- )
{
folded[i] = v * iir + folded[i] * inv;
}
}
void FilterFoldedBinsBlob( float * folded, int bins, float strength, int iter )
{
float tmp[bins];
int i;
int j;
for( j = 0; j < iter; j++ )
{
memcpy( tmp, folded, sizeof( tmp ) );
for( i = 0; i < bins; i++ )
{
float left = tmp[(i-1+bins)%bins];
float right = tmp[(i-1+bins)%bins];
folded[i] = folded[i] * (1.-strength) + (left + right) * strength * 0.5;
}
}
}