sig
  val version : unit -> string
  val version_major : unit -> int
  val version_minor : unit -> int
  module Plugin :
    sig
      type t
      exception Not_a_plugin
      val load : string -> Ladspa.Plugin.t
      val unload : Ladspa.Plugin.t -> unit
    end
  module Descriptor :
    sig
      type t
      val descriptor : Ladspa.Plugin.t -> int -> Ladspa.Descriptor.t
      val descriptors : Ladspa.Plugin.t -> Ladspa.Descriptor.t array
      val unique_id : Ladspa.Descriptor.t -> int
      val label : Ladspa.Descriptor.t -> string
      val name : Ladspa.Descriptor.t -> string
      val maker : Ladspa.Descriptor.t -> string
      val copyright : Ladspa.Descriptor.t -> string option
      val port_count : Ladspa.Descriptor.t -> int
      val port_name : Ladspa.Descriptor.t -> int -> string
      val port_is_input : Ladspa.Descriptor.t -> int -> bool
      val port_is_output : Ladspa.Descriptor.t -> int -> bool
      val port_is_audio : Ladspa.Descriptor.t -> int -> bool
      val port_is_control : Ladspa.Descriptor.t -> int -> bool
      val port_is_integer : Ladspa.Descriptor.t -> int -> bool
      val port_is_boolean : Ladspa.Descriptor.t -> int -> bool
      val port_is_logarithmic : Ladspa.Descriptor.t -> int -> bool
      val port_get_default :
        Ladspa.Descriptor.t -> ?samplerate:int -> int -> float option
      val port_get_min :
        Ladspa.Descriptor.t -> ?samplerate:int -> int -> float option
      val port_get_max :
        Ladspa.Descriptor.t -> ?samplerate:int -> int -> float option
      type instance
      val instantiate :
        Ladspa.Descriptor.t -> int -> int -> Ladspa.Descriptor.instance
      val set_samples : Ladspa.Descriptor.instance -> int -> unit
      val connect_audio_port :
        Ladspa.Descriptor.instance -> int -> float array -> int -> unit
      val connect_control_port_in :
        Ladspa.Descriptor.instance -> int -> float -> unit
      val connect_control_port_out :
        Ladspa.Descriptor.instance -> int -> float Stdlib.ref -> unit
      val activate : Ladspa.Descriptor.instance -> unit
      val deactivate : Ladspa.Descriptor.instance -> unit
      exception Input_port_not_connected of int
      val run : Ladspa.Descriptor.instance -> unit
      val pre_run : Ladspa.Descriptor.instance -> unit
      val post_run : Ladspa.Descriptor.instance -> unit
      val post_run_adding : Ladspa.Descriptor.instance -> unit
    end
end