module Sound.Data.Stream where

-- | Contains data relating to the inital input 
-- parameters provided to generate the stream.
-- This is useful to derive many other values from.
-- For example
-- @
--      FreqData Periocidy = fftWindow/sampleRate 
--      FluxData Periocidy = (fftWindow/sampleRate)*2
--      OnsetData Periocidy = (fftWindow/sampleRate)*2
-- @
data StreamInfo = StreamInfo {  -- | Contains the size of the fft window
                                -- must be N^2 1024 is a good size.
                                fftWindow   :: !Int,
                                -- | Sample rate of the stream in Hz
                                sampleRate  :: !Int,
                                -- | Number of channels in sample 
                                channels    :: !Int
                             } deriving (Show)


