Sí, bueno, cada efecto lleva su análisis. Estos efectos son fáciles:
Para cambiar el volumen basta con hacer una multiplicación y una división (sería como multiplicar por una fracción)
Aprovechando ese sistema de cambiar el volumen puedes hacer un vibrato, mediante un bucle que vaya cambiando el volumen con el tiempo.
Para una distorsión aumentas el volumen, y recortas mediante comparaciones por ejemplo.
Para una reverb ya tienes que tirar de RAM y hacerte un buffer circular (FIFO) de tamaño configurable, en el que vas mezclando lo que ya había con lo que entra. A lo que había en el buffer, antes de la suma hay que atenuarlo un poco (valor configurable).
También se puede hacer un ecualizador. Para cada banda yo aplico un algoritmo en el que me imagino una bola que trata de seguir la onda (como si fuera una pelota en el mar). Pero esta bola tiene una masa y, por tanto, una inercia, así que le cuesta seguir los movimientos de la onda. De esta forma haces un filtro pasabajos que funciona bastante bien. Para un filtro pasaaltos haces exactamente lo mismo, pero al dato inicial le restas el resultado del pasabajos. Y para un pasabanda aplicas los dos.
Partiendo del ecualizador, si en una entrada analógica conectas un pedal analógico, te puedes hacer un wah-wah variando los parámetros del ecualizador.
Un delay sería exactamente igual que la reverb, pero requeriría una memoria externa para hacer un buffer más grande. Esto, con un microprocesador no tiene problema (ya cuentas, quieras o no, con esa memoria RAM externa). Es la mayor limitación que yo le veo a los microcontroladores; tienen muy poca RAM.
En general, creo que hay muchos efectos que se pueden programar con un poco de imaginación. Pero si necesitas un análisis de frecuencias, la cosa efectivamente se complica. Bueno, seguro que hay muchos más trucos.