hmeap-0.14: Haskell Meapsoft Parser

Safe HaskellNone



Data representation and parser for MEAPsoft analysis frames.



data MEAP t Source

Data type representing a MEAPsoft anaylsis file.

read_meap :: Meap_Data t => FilePath -> IO (Either String (MEAP t))Source

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"]

features :: MEAP t -> [Feature]Source

The list of Features contained in the analysis file.

n_frames :: MEAP t -> IntSource

The number of frames (rows) contained in the analysis file.

uarray_data :: MEAP t -> UArray (Int, Int) tSource

The analysis data stored in a UArray. Indices are of the form (row, column).

n_columns :: MEAP t -> IntSource

The number of columns at each analysis frame (row). Segmentation files have two columns, onset time and segment length.

 n_columns m == 2

frame_l :: Meap_Data t => MEAP t -> Int -> [t]Source

Extract the indicated frame (row) as a list.

 length (frame_l m 0) == n_columns m

column_l :: Meap_Data t => MEAP t -> Int -> [t]Source

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

position :: Meap_Data t => MEAP t -> (Int, Int) -> tSource

Extract data from the indicated frame and column.

 position m (0,0) == frame_l m 0 !! 0

segments_l :: Meap_Data t => MEAP t -> [(t, t)]Source

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)

feature_names :: [String]Source

The list of feature names generated by MEAPsoft 2.0.

 map (`elem` feature_names) ["onset_time","chunk_length"] == [True,True]