import qualified Data.ByteString.Lazy as B {- bytestring -} import Sound.SDIF.Byte.Frame import Sound.SDIF.Byte.Matrix import Sound.SDIF.Byte.SDIF import Sound.SDIF.Frame import Sound.SDIF.Matrix import Sound.SDIF.Type import Sound.SDIF matrix_info :: Matrix -> IO () matrix_info m = print (matrix_type m ,data_type_string (matrix_data_type m) ,matrix_rows m ,matrix_columns m) frame_info :: Frame -> IO () frame_info f = do print (frame_type f ,frame_time f ,frame_id f ,frame_matrices f) mapM_ matrix_info (frame_matrix_c f) -- > hsdif_info "/home/rohan/cvs/uc/uc-53/sdif/i/82.4.sdif" -- > hsdif_info "/home/rohan/cvs/uc/uc-53/sdif/i/164.8.sdif" hsdif_info :: FilePath -> IO () hsdif_info fn = do s <- sdif_read_file fn print (sdif_frames s) mapM_ frame_info (sdif_frame_c s) crotale_info :: IO () crotale_info = do let fn = "crotale.sdif" b <- B.readFile fn -- (856,True,2) print (show (B.length b,is_sdif_b b,sdif_b_frames b)) s <- sdif_read_file fn -- (2,[(0,16),(16,856)]) print (sdif_frames s,sdif_frame_i s) let fb = sdif_frame_b s 1 -- ("1RES",832,0.0,2,1,[(24,840)]) print (frame_b_type fb ,frame_b_size fb ,frame_b_time fb ,frame_b_id fb ,frame_b_matrices fb ,frame_b_matrix_i fb) let mb = frame_b_data fb -- ("1RES",4,50,4,200,800,816) print (matrix_b_type mb ,matrix_b_data_type mb ,matrix_b_rows mb ,matrix_b_columns mb ,matrix_b_elements mb ,matrix_b_data_size mb ,matrix_b_storage_size mb) let f = sdif_frame s 1 -- ("1RES",832,0.0,2,1,[(24,840)]) print (frame_type f ,frame_size f ,frame_time f ,frame_id f ,frame_matrices f ,frame_matrix_i f) let m = frame_matrix f 0 -- ("1RES",4,50,4,200,800,816) print (matrix_type m ,matrix_data_type m ,matrix_rows m ,matrix_columns m ,matrix_elements m ,matrix_data_size m ,matrix_storage_size m) -- ~ [F32 35.45,F32 1.28e-3,F32 5.20,F32 0.0] print (matrix_row m 0) -- ~ [F32 35.45,F32 128.59,F32 346.97] print (take 3 (matrix_column m 0)) main :: IO () main = hsdif_info "crotale.sdif" >> crotale_info