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