Desta vez é só o desafio, não há ofertas.
Andava aí a instruir-me um bocado por causa dum projecto que tenho em mãos e encontrei esta topologia de filtro que achei bastante interessante, especialmente para aplicar no domínio digital, e para áudio: o State Variable.
O filtro nasceu no mundo analógico (podem procurar na wikipedia) onde se constitui por 3 ampops e depois também saltou para o mundo digital. Tem algumas particularidades que o tornam muito interessante para audio e implementação em microcontroladores:
1) É relativamente leve de computar (e só precisa de 2 valores anteriores).
2) Os parâmetros são independentes e fáceis de calcular; os dados de entrada são a frequência de corte/central e o "damping" ou Q e saiem o 
kf e o 
kq usados no filtro.
3) É um filtro de 2ª ordem (12dB/oitava em vez dos 6dB/oitava de um filtro de 1ª ordem), portanto já tem um efeito que se nota bem.
4) Da mesma implementação podemos obter um LP (low pass), HP (high pass), ou um BP (band pass), só muda o ponto no cálculo de onde tiramos o output. Supostamente ele também faz um BR (band reject), mas nas experiências que fiz pareceu-me não fazer nada.
Vejam no final desta página uma demo interactiva de um LP com este filtro:
http://worrydream.com/Tangle/Não encontrei nenhum "diagrama de diferença" (acho que é este o nome destes diagramas) que me agradasse por isso peguei no do site acima e modifiquei-o para mostrar aqui:

Baseado no diagrama fiz esta implementação (excerto), que incrivelmente saiu bem logo à 1ª 

 ; não foi difícíl perceber como passar do diagrama para código; reparem que o diagrama está anotado com os nomes das variáveis no código:
    static int16  lp_prev = 0;
    static int16  bp_prev = 0;
    // State variable filter calculation.
    int16  s1 = ISCALE((int32)bp_prev, -kq, 256);
    int16  hp = sample + s1 - lp_prev;                   // high pass
    int16  bp = ISCALE((int32)hp, kf, 256) + bp_prev;    // bandpass
    int16  lp = ISCALE((int32)bp, kf, 256) + lp_prev;    // lowpass
    lp_prev = lp;
    bp_prev = bp;
    sample = lp ou hp ou bp...O sinal de áudio (amostra) entra e sai na variável 
sample, que é de 16 bits. A macro 
ISCALE é uma multiplicação em ponto fixo, podem ignorar o 3º argumento e olhar para ela apenas como multiplicação dos 2 primeiros argumentos. Se quisermos um LP tiramos o sinal da variável 
lp, um HP da variável 
hp, etc.
Com isto acabei também por experimentar um efeito de guitarra que é muito fixe, o 
wah-wah, que consiste na variação periódica (auto-wah) ou consoante o sinal de entrada (wah "normal"), da frequência central de um filtro BP.
Alguém aceita o desafio de implementar isto num Arduino ou microcontrolador que quiserem? 
Portanto o desafio é, e se o aceitares (muahh ahh ahh ahh), fazer uma "caixa" onde entra audio por um lado e sai o áudio com efeitos pelo outro. Os efeitos que podem ser feitos só com este filtro incluem equalização (atenuação e boost) e wah wah. Posso ajudar.