hsdif-0.12: Help/hsdif.hs
import qualified Data.ByteString.Lazy as B
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