packages feed

pitchtrack 0.1.0.0 → 0.1.0.1

raw patch · 4 files changed

+27/−18 lines, 4 filesdep ~dywapitchtrackPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: dywapitchtrack

API changes (from Hackage documentation)

+ PitchTrack: data PitchTrack a :: * -> *
+ PitchTrack: runPitchTrack :: Int -> PitchTrack a -> IO a
- PitchTrack.Pipes: samplesFromHandle :: Int -> Handle -> Producer ByteString PitchTrack ()
+ PitchTrack.Pipes: samplesFromHandle :: Handle -> Producer ByteString PitchTrack ()
- PitchTrack.Pipes: samplesFromLBS :: Int -> ByteString -> Producer ByteString PitchTrack ()
+ PitchTrack.Pipes: samplesFromLBS :: ByteString -> Producer ByteString PitchTrack ()

Files

pitchtrack.cabal view
@@ -1,5 +1,5 @@ name: pitchtrack-version: 0.1.0.0+version: 0.1.0.1 cabal-version: >=1.10 build-type: Simple license: MIT@@ -11,7 +11,7 @@ description:     Pitch tracking library, based on <http://www.schmittmachine.com/dywapitchtrack.html dywapitchtrack>.     .-    See the "PitchTrack" module for an easy, "ready to use" interface,+    See the "PitchTrack.Track" module for an easy, "ready to use" interface,     or "PitchTrack.Pipes" for Pipes-based components, if you need more flexibility.     .     Note that because all parameters are hard-coded into the C library,@@ -44,7 +44,7 @@     build-depends:         base ==4.8.*,         bytestring >=0.10.6.0 && <0.11,-        dywapitchtrack >=0.1.0.0 && <0.2,+        dywapitchtrack >=0.1.0.1 && <0.2,         pipes >=4.1.6 && <4.2,         pipes-bytestring >=2.1.1 && <2.2,         process >=1.2.3.0 && <1.3,@@ -59,7 +59,7 @@     build-depends:         base ==4.8.*,         bytestring >=0.10.6.0 && <0.11,-        dywapitchtrack >=0.1.0.0 && <0.2,+        dywapitchtrack >=0.1.0.1 && <0.2,         hspec >=2.2.0 && <2.3,         pipes >=4.1.6 && <4.2,         pipes-bytestring >=2.1.1 && <2.2,
src/PitchTrack.hs view
@@ -1,9 +1,14 @@ module PitchTrack (+-- * Base type+    PitchTrack+  , runPitchTrack -- * Re-exported modules-    module PitchTrack.Track+  , module PitchTrack.Track+  , module PitchTrack.Pipes -- * Utilities   , neededSampleNum   ) where -import           DywaPitchTrack   (neededSampleNum)+import           DywaPitchTrack+import           PitchTrack.Pipes import           PitchTrack.Track
src/PitchTrack/Pipes.hs view
@@ -1,9 +1,9 @@ module PitchTrack.Pipes (     samplesFromHandle   , samplesFromLBS+  , getPitch   , forPitch   , forPitch_-  , getPitch   , printPitch   ) where @@ -17,13 +17,21 @@ import           System.IO  -- | Stream chunks of a fixed number of samples from a handle-samplesFromHandle :: Int -> Handle -> Producer ByteString PitchTrack ()-samplesFromHandle sampleNum = PB.hGet (sampleNum * sampleSize)+samplesFromHandle :: Handle -> Producer ByteString PitchTrack ()+samplesFromHandle h = do+    sampleNum <- lift askSampleNum+    PB.hGet (sampleNum * sampleSize) h  -- | Stream chunks of a fixed number of samples from a lazy 'LBS.ByteString'-samplesFromLBS :: Int -> LBS.ByteString -> Producer ByteString PitchTrack ()-samplesFromLBS sampleNum lbs = PB.fromLazy lbs >-> PB.take sampleNum+samplesFromLBS :: LBS.ByteString -> Producer ByteString PitchTrack ()+samplesFromLBS lbs = do+    sampleNum <- lift askSampleNum+    PB.fromLazy lbs >-> PB.take sampleNum +-- | Stream computed pitches+getPitch :: Producer ByteString PitchTrack () -> Producer Double PitchTrack ()+getPitch samplesProducer = samplesProducer >-> P.mapM computePitch+ -- | Apply a function to each pitch forPitch :: Producer ByteString PitchTrack () -> (Double -> PitchTrack a) -> Producer a PitchTrack () forPitch samplesProducer f = getPitch samplesProducer >-> P.mapM f@@ -31,10 +39,6 @@ -- | Consume all pitches, applying a function to each one forPitch_ :: Producer ByteString PitchTrack () -> (Double -> PitchTrack ()) -> Effect PitchTrack () forPitch_ samplesProducer f = getPitch samplesProducer >-> P.mapM_ f---- | Stream computed pitches-getPitch :: Producer ByteString PitchTrack () -> Producer Double PitchTrack ()-getPitch samplesProducer = samplesProducer >-> P.mapM computePitch  -- | Print all pitches printPitch :: Producer ByteString PitchTrack () -> Effect PitchTrack ()
src/PitchTrack/Track.hs view
@@ -59,7 +59,7 @@ -- | Same as 'trackHandle', but takes the number of samples as a first parameter trackHandleN :: Int -> Handle -> (Double -> PitchTrack ()) -> IO () trackHandleN sampleNum h f = runPitchTrack sampleNum $-    runEffect $ forPitch_ (samplesFromHandle sampleNum h) f+    runEffect $ forPitch_ (samplesFromHandle h) f  -- | Track a lazy 'LBS.ByteString' and apply a function to each computed pitch trackLBS :: LBS.ByteString -> (Double -> PitchTrack ()) -> IO ()@@ -68,7 +68,7 @@ -- | Same as 'trackLBS', but takes the number of samples as a first parameter trackLBSN :: Int -> LBS.ByteString -> (Double -> PitchTrack ()) -> IO () trackLBSN sampleNum lbs f = runPitchTrack sampleNum $-    runEffect $ forPitch_ (samplesFromLBS sampleNum lbs) f+    runEffect $ forPitch_ (samplesFromLBS lbs) f  -- | Track a file and return a list of all the computed pitches --@@ -78,7 +78,7 @@  trackFileToListN  :: Int -> FilePath -> IO [Double] trackFileToListN sampleNum file = withFileR file $ \h ->-    runPitchTrack sampleNum $ P.toListM $ forPitch (samplesFromHandle sampleNum h) return+    runPitchTrack sampleNum $ P.toListM $ forPitch (samplesFromHandle h) return  -- | The default number of samples used for each computation (2048) defaultSampleNum :: Int