align-audio-0.0.0.1: src/Common.hs
module Common where
import qualified Data.Array.Comfort.Storable as Array
import qualified Data.Array.Comfort.Shape as Shape
import qualified Data.StorableVector.Lazy as SVL
import qualified Data.StorableVector as SV
import Data.Array.Comfort.Storable (Array)
import Foreign.Storable (Storable)
cyclicFromVector :: (Storable a) => SVL.Vector a -> Array (Shape.Cyclic Int) a
cyclicFromVector =
Array.mapShape (\(Shape.ZeroBased n) -> Shape.Cyclic n) .
Array.fromStorableVector . SV.concat . SVL.chunks
pad :: (Storable a, Num a) => Int -> SVL.Vector a -> SVL.Vector a
pad n xs =
SVL.append xs $ SVL.replicate SVL.defaultChunkSize (n - SVL.length xs) 0