Skip to content

Instantly share code, notes, and snippets.

@triss
Created November 5, 2014 17:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save triss/7745352d350a733e9f78 to your computer and use it in GitHub Desktop.
Save triss/7745352d350a733e9f78 to your computer and use it in GitHub Desktop.
damon
(
var bandwidth = 0.1;
var lowKernel;
var highKernel;
var bandKernel;
var maxValue = 0;
var ratio;
var normalize = 1;
m = 4/bandwidth; //length of filter kernel
// newClear creates a new empty array with the size you specify
lowKernel = Array.newClear(m+1); //initialising a low pass filter kernel
for(0, m, {|i|
if(i != m, {
lowKernel[i] = ((sin(2pi*150*(i - m/2)))/(i- m/2))*(0.42 - 0.5*cos(2pi*i/m) + 0.08*cos(4pi*i/m));
},
{
lowKernel[i] = 2pi*150;
});
lowKernel[i].value.postln;
});
lowKernel = lowKernel.normalizeSum;
highKernel = Array.newClear(m+1);
for(0, m, {|i|
if(i % 2 == 0,{
highKernel[i] = lowKernel[i].value*(-1);
},
{
highKernel[i] = lowKernel[i].value;
});
});
bandKernel = Array.newClear(m+1);
for(0, m, {|i|
bandKernel[i] = lowKernel[i].value * highKernel[i].value;
});
bandKernel.plot;
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment