sig
  type t
  val make : int -> int -> Soundtouch.t
  val get_version_string : Soundtouch.t -> string
  val get_version_id : Soundtouch.t -> int
  val set_rate : Soundtouch.t -> float -> unit
  val set_tempo : Soundtouch.t -> float -> unit
  val set_pitch : Soundtouch.t -> float -> unit
  val put_samples_ni :
    Soundtouch.t -> float array array -> int -> int -> unit
  val get_available_samples : Soundtouch.t -> int
  val get_samples_ni : Soundtouch.t -> float array array -> int -> int -> int
  val flush : Soundtouch.t -> unit
  val clear : Soundtouch.t -> unit
  module BPM :
    sig
      type t
      val make : int -> int -> Soundtouch.BPM.t
      val put_samples_ni :
        Soundtouch.BPM.t -> float array array -> int -> int -> unit
      val get_bpm : Soundtouch.BPM.t -> float
    end
end