synthesizer-core- Audio signal processing coded in Haskell: Low level part

Portabilityrequires multi-parameter type classes



Comb filters, useful for emphasis of tones with harmonics and for repeated echos.



karplusStrong :: (C a, C a v) => Parameter a -> T v -> T vSource

The most simple version of the Karplus-Strong algorithm which is suitable to simulate a plucked string. It is similar to the runProc function.

run :: C a v => Int -> a -> T v -> T vSource

Infinitely many equi-delayed exponentially decaying echos. The echos are clipped to the input length. We think it is easier (and simpler to do efficiently) to pad the input with zeros or whatever instead of cutting the result according to the input length.

runMulti :: (C a, C a v) => [Int] -> a -> T v -> T vSource

Echos of different delays.

runProc :: C v => Int -> (T v -> T v) -> T v -> T vSource

Echos can be piped through an arbitrary signal processor.