vocoder-dunai-0.1.0.0: Phase vocoder for Dunai and Rhine
Copyright(c) Marek Materzok 2021
LicenseBSD2
Safe HaskellNone
LanguageHaskell2010

Vocoder.Dunai

Description

This module wraps phase vocoder algorithms for use in Dunai and Rhine.

Synopsis

Documentation

volumeFix :: Monad m => VocoderParams -> MSF m Frame Frame Source #

Corrects for volume change introduced by STFT processing.

analysis :: (Traversable t, Monad m) => VocoderParams -> Phase -> MSF m (t Frame) (t STFTFrame) Source #

Perform the phase vocoder analysis phase.

synthesis :: (Traversable t, Monad m) => VocoderParams -> Phase -> MSF m (t STFTFrame) (t Frame) Source #

Perform the phase vocoder synthesis phase.

processFrames :: (Traversable t, Monad m) => VocoderParams -> MSF m (t STFTFrame) (t STFTFrame) -> MSF m (t Frame) (t Frame) Source #

Perform frequency domain processing on overlapping frames.

process :: Monad m => VocoderParams -> MSF m [STFTFrame] [STFTFrame] -> MSF m Frame Frame Source #

Perform frequency domain processing on a chunked stream. The chunks' size must be a multiple of the vocoder's hop size.

framesOfS :: forall a m. (Storable a, Num a, Monad m) => Length -> HopSize -> MSF m (Vector a) [Vector a] Source #

Splits a chunked input stream into overlapping frames of constant size suitable for STFT processing. The input and output chunks' size must be a multiple of the vocoder's hop size.

sumFramesS :: forall a m. (Storable a, Num a, Monad m) => Length -> HopSize -> MSF m [Vector a] (Vector a) Source #

Builds a chunked output stream from a stream of overlapping frames. The input and output chunks's size must be a multiple of the vocoder's hop size.

sumFramesWithLengthS :: forall a m. (Storable a, Num a, Monad m) => HopSize -> MSF m ([Vector a], Length) (Vector a) Source #