let get_source_state s = match geti s `source_state with
(*  | 0x0000 -> `initial (* <= there is no 0x0000 state but its reported in bytecode !?! *)*)
  | 0x1011 -> `initial
  | 0x1012 -> `playing
  | 0x1013 -> `paused
  | 0x1014 -> `stopped
  | r      -> failwith (Printf.sprintf "unknown source state (0x%04X)" r)