sig
  type t
  type samples =
      (int, Stdlib.Bigarray.int16_signed_elt, Stdlib.Bigarray.c_layout)
      Stdlib.Bigarray.Array1.t
  val loadFromFile : filename:string -> SFSoundBuffer.t
  val loadFromMemory : data:string -> SFSoundBuffer.t
  val loadFromSamples :
    samples:SFSoundBuffer.samples ->
    channelCount:int -> sampleRate:int -> SFSoundBuffer.t
  type input =
      [ `File of string
      | `Memory of string
      | `Samples of SFSoundBuffer.samples * int * int ]
  val load : SFSoundBuffer.input -> SFSoundBuffer.t
  val getSampleCount : SFSoundBuffer.t -> int
  val getSampleRate : SFSoundBuffer.t -> int
  val getChannelCount : SFSoundBuffer.t -> int
  val getDuration : SFSoundBuffer.t -> SFTime.t
  val saveToFile : SFSoundBuffer.t -> filename:string -> unit
end