Copyright | (c) Marek Materzok 2021 |
---|---|
License | BSD2 |
Safe Haskell | None |
Language | Haskell2010 |
This module wraps phase vocoder algorithms for use in Dunai and Rhine.
Synopsis
- volumeFix :: Monad m => VocoderParams -> MSF m Frame Frame
- analysis :: (Traversable t, Monad m) => VocoderParams -> Phase -> MSF m (t Frame) (t STFTFrame)
- synthesis :: (Traversable t, Monad m) => VocoderParams -> Phase -> MSF m (t STFTFrame) (t Frame)
- processFrames :: (Traversable t, Monad m) => VocoderParams -> MSF m (t STFTFrame) (t STFTFrame) -> MSF m (t Frame) (t Frame)
- process :: Monad m => VocoderParams -> MSF m [STFTFrame] [STFTFrame] -> MSF m Frame Frame
- framesOfS :: forall a m. (Storable a, Num a, Monad m) => Length -> HopSize -> MSF m (Vector a) [Vector a]
- sumFramesS :: forall a m. (Storable a, Num a, Monad m) => Length -> HopSize -> MSF m [Vector a] (Vector a)
- sumFramesWithLengthS :: forall a m. (Storable a, Num a, Monad m) => HopSize -> MSF m ([Vector a], Length) (Vector a)
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.