sig
  type t = Frame.t
  val is_partial : MFrame.t -> bool
  val size : unit -> int
  val position : MFrame.t -> int
  val add_break : MFrame.t -> int -> unit
  type metadata = (string, string) Hashtbl.t
  val set_metadata : MFrame.t -> int -> MFrame.metadata -> unit
  val get_metadata : MFrame.t -> int -> MFrame.metadata option
  val get_all_metadata : MFrame.t -> (int * MFrame.metadata) list
  val content : MFrame.t -> int -> Frame.midi_t array
  val content_of_type : channels:int -> MFrame.t -> int -> Frame.midi_t array
end