packages feed

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