sig
  type select =
      Vide
    | Rappel
    | Rappel_boutons
    | Sauvegarde
    | Sauvegarde_boutons
    | Forme
    | Percussion
    | Vibrato
    | Filtrage
    | Reverb
    | Special
    | Rembobine
    | Avance_rapide
    | Arret
    | Lecture
  val vide : int
  val plein : int
  val milieu : int
  val haut : int
  val bas : int
  val pourcent_cpu : unit -> string
  val detricote : int -> int -> int * int
  val aux : string -> int -> int -> unit
  val rappel_boutons :
    int Pervasives.ref -> int -> int -> int array -> int -> unit
  val sauvegarde_boutons :
    int Pervasives.ref -> int -> int -> int array -> int -> unit
  val demande_rappel_boutons : Doc.Clavier.select Pervasives.ref -> unit
  val demande_sauvegarde_boutons : Doc.Clavier.select Pervasives.ref -> unit
  val vc : int Pervasives.ref -> int array -> unit
  val pouss_mono : int Pervasives.ref -> int array -> int -> unit
  val frein :
    Doc.Clavier.select Pervasives.ref ->
    int Pervasives.ref -> int Pervasives.ref -> int array -> unit
  val lent :
    Doc.Clavier.select Pervasives.ref ->
    int Pervasives.ref -> int Pervasives.ref -> int array -> unit
  val rapide :
    Doc.Clavier.select Pervasives.ref ->
    int Pervasives.ref -> int Pervasives.ref -> int array -> unit
  val mono :
    Doc.Clavier.select Pervasives.ref ->
    int Pervasives.ref -> int Pervasives.ref -> int array -> unit
  val clic : int Pervasives.ref -> int array -> int array -> unit
  val percu : int Pervasives.ref -> int array -> int array -> unit
  val reverb : int Pervasives.ref -> int array -> int array -> unit
  val forme : int Pervasives.ref -> int array -> int array -> unit
  module type Type_clavier =
    sig
      val nom_clavier : string
      val tenue : bool
      val alter_swell : int
      val alter_modulation : int
      val curseur_0 : int
      val curseur_1 : int
      val curseur_2 : int
      val curseur_3 : int
      val curseur_4 : int
      val curseur_5 : int
      val curseur_6 : int
      val curseur_7 : int
      val curseur_8 : int
      val curseur_9 : int
      val bouton_1 : int
      val bouton_2 : int
      val bouton_3 : int
      val bouton_4 : int
      val bouton_5 : int
      val bouton_6 : int
      val bouton_7 : int
      val bouton_8 : int
      val bouton_8bis : int
      val bouton_p1 : int
      val bouton_p2 : int
      val bouton_p3 : int
      val bouton_p4 : int
      val bouton_p5 : int
      val bouton_p6 : int
      val bouton_p7 : int
      val bouton_p8 : int
      val bouton_p9 : int
      val bouton_p10 : int
      val poussoir_boucle : int
      val poussoir_rembobine : int
      val poussoir_avance_rapide : int
      val poussoir_arret : int
      val poussoir_lecture : int
      val poussoir_enregistrement : int
      val poussoir_debut : int
      val poussoir_fin : int
      val poussoir_1 : int
      val poussoir_2 : int
      val poussoir_3 : int
      val poussoir_4 : int
      val poussoir_5 : int
      val poussoir_6 : int
      val poussoir_7 : int
      val poussoir_8 : int
      val poussoir_9 : int
      val poussoir_10 : int
      val poussoir_11 : int
      val poussoir_12 : int
      val pad_5 : int
      val pad_6 : int
      val pad_7 : int
      val pad_8 : int
      val vers_instru : int
      val pad1 : int
      val pad2 : int
      val pad3 : int
      val pad4 : int
      val pad5 : int
      val pad6 : int
      val pad7 : int
      val pad8 : int
    end
  module Make :
    functor (C : Type_clavier->
      sig
        val masque_entete : int
        val numero_de_canal : int
        val touche_relachee : int
        val touche_appuyee : int
        val poly_press : int
        val mode : int
        val instru : int
        val can_press : int
        val pitch : int
        val pitch_mot_vide : int
        val sys : int
        val modulation : int
        val swell : int
        val sustain_pedal : int
        val all_notes_off : unit -> unit
        val scrute : Pervasives.in_channel -> unit
      end
end