hmeap 0.10 → 0.11
raw patch · 5 files changed
+26/−5 lines, 5 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- Sound/Analysis/Meapsoft.hs +21/−3
- Sound/Analysis/Meapsoft/Data.hs +1/−0
- Sound/Analysis/Meapsoft/Header.hs +1/−0
- Sound/Analysis/Meapsoft/Measure.hs +1/−0
- hmeap.cabal +2/−2
Sound/Analysis/Meapsoft.hs view
@@ -28,9 +28,12 @@ -- | The analysis data stored in a 'UArray'. -- Indices are of the form (row, column). , uarray_data :: UArray (Int, Int) Double }- + -- | Load a MEAPsoft analysis file, either a segmentation file or a -- feature file.+--+-- > Right m <- read_meap "/home/rohan/data/audio/jonchaies.wav.seg"+-- > map feature_name (features m) == ["onset_time","chunk_length"] read_meap :: FilePath -> IO (Either String MEAP) read_meap fn = do r <- read_header fn@@ -40,11 +43,17 @@ (nf, d) <- read_data fn nc return (Right (MEAP h nf d)) --- | The number of columns at each analysis frame (row).+-- | The number of columns at each analysis frame (row). Segmentation+-- files have two columns, onset time and segment length.+--+-- > n_columns m == 2 n_columns :: MEAP -> Int n_columns = sum . map feature_degree . features --- | Extract the indicated column as a list.+-- | Extract the indicated column as a list. The length of the column+-- is the 'n_frames' of the analysis file.+--+-- > length (column_l m 0) == n_frames m column_l :: MEAP -> Int -> [Double] column_l m j = let d = uarray_data m@@ -52,6 +61,8 @@ in map (\i -> d ! (i, j)) is -- | Extract the indicated frame (row) as a list.+--+-- > length (frame_l m 0) == n_columns m frame_l :: MEAP -> Int -> [Double] frame_l m i = let d = uarray_data m@@ -59,11 +70,16 @@ in map (\j -> d ! (i, j)) js -- | Extract data from the indicated frame and column.+--+-- > position m (0,0) == frame_l m 0 !! 0 position :: MEAP -> (Int, Int) -> Double position m (i, j) = uarray_data m ! (i, j) -- | Extract segmentation data as a list. The segmentation data is -- given by the two columns onset_time and chunk_length.+--+-- > length (segments_l m) == n_frames m+-- > segments_l m !! 0 == (\[i,j] -> (i,j)) (frame_l m 0) segments_l :: MEAP -> [(Double, Double)] segments_l m = let fs = features m@@ -73,6 +89,8 @@ in zip (column_l m o) (column_l m d) -- | The list of feature names generated by MEAPsoft 2.0.+--+-- > map (`elem` feature_names) ["onset_time","chunk_length"] == [True,True] feature_names :: [String] feature_names = ["onset_time"
Sound/Analysis/Meapsoft/Data.hs view
@@ -1,3 +1,4 @@+-- | Meapsoft analysis data input. module Sound.Analysis.Meapsoft.Data ( read_data ) where import Data.Array.Unboxed
Sound/Analysis/Meapsoft/Header.hs view
@@ -1,3 +1,4 @@+-- | Meapsoft analysis data structure. module Sound.Analysis.Meapsoft.Header ( Feature(..) , read_header , find_feature
Sound/Analysis/Meapsoft/Measure.hs view
@@ -1,3 +1,4 @@+-- | Functions related to meapsoft analysis measures. module Sound.Analysis.Meapsoft.Measure where -- | Cycles per second to MEL conversion, see Stevens & Volkman, 1940.
hmeap.cabal view
@@ -1,5 +1,5 @@ Name: hmeap-Version: 0.10+Version: 0.11 Synopsis: Haskell Meapsoft Parser Description: Parser for the anaylsis files produced by the Meapsoft feature extractor.@@ -10,7 +10,7 @@ Maintainer: rd@slavepianos.org Stability: Experimental Homepage: http://slavepianos.org/rd/?t=hmeap-Tested-With: GHC == 6.12.1+Tested-With: GHC == 7.2.2 Build-Type: Simple Cabal-Version: >= 1.8