vocoder-conduit-0.1.0.0: Phase vocoder for Conduit
Copyright(c) Marek Materzok 2021
LicenseBSD2
Safe HaskellNone
LanguageHaskell2010

Vocoder.Conduit

Description

This module wraps phase vocoder algorithms for use in Conduit. Two variants are provided, one for single channel processing, and another for processing multiple channels synchronously.

Synopsis

Single-channel functions

volumeFix :: Monad m => VocoderParams -> ConduitT STFTFrame STFTFrame m () Source #

Corrects for volume change introduced by STFT processing.

analysis :: Monad m => VocoderParams -> Phase -> ConduitT Frame STFTFrame m Phase Source #

Perform the phase vocoder analysis phase.

synthesis :: Monad m => VocoderParams -> Phase -> ConduitT STFTFrame Frame m Phase Source #

Perform the phase vocoder synthesis phase.

processFrames :: Monad m => VocoderParams -> (Phase, Phase) -> ConduitT STFTFrame STFTFrame m r -> ConduitT Frame Frame m (r, (Phase, Phase)) Source #

Perform frequency domain processing.

Multi-channel functions

volumeFixF :: (Applicative f, Monad m) => VocoderParams -> ConduitT (f STFTFrame) (f STFTFrame) m () Source #

Corrects for volume change introduced by STFT processing.

analysisF :: (Applicative f, Monad m) => VocoderParams -> f Phase -> ConduitT (f Frame) (f STFTFrame) m (f Phase) Source #

Perform the phase vocoder analysis phase.

synthesisF :: (Applicative f, Monad m) => VocoderParams -> f Phase -> ConduitT (f STFTFrame) (f Frame) m (f Phase) Source #

Perform the phase vocoder synthesis phase.

processFramesF :: (Applicative f, Monad m) => VocoderParams -> (f Phase, f Phase) -> ConduitT (f STFTFrame) (f STFTFrame) m r -> ConduitT (f Frame) (f Frame) m (r, (f Phase, f Phase)) Source #

Perform frequency domain processing.