struct

(**

Liste de claviers testés

  1. M-audio Oxygen 49
    Détection sous FreeBSD :
    ugen0.2: <M-Audio> at usbus0
    uaudio0: <M-Audio Oxygen 49, class 0/0, rev 1.00/1.00, addr 1> on usbus0
    uaudio0: No playback.
    uaudio0: No recording.
    uaudio0: MIDI sequencer.
    uaudio0: No HID volume keys found.
  2. M-audio Axiom 61
    Détection sous FreeBSD :
    ugen0.2: <M-Audio> at usbus0
    uaudio0: <M-Audio Axiom 61, class 0/0, rev 1.00/1.26, addr 1> on usbus0
    uaudio0: No playback.
    uaudio0: No recording.
    uaudio0: MIDI sequencer.
    uaudio0: No HID volume keys found.
Copyright Stéphane Grognet
IREM des Pays de la Loire - Université de Nantes
Laboratoire de mathématiques Jean Leray UMR 6629 CNRS
version 0.8
@version 0.8 @author Stéphane Grognet @since 2014 *)


let nom_clavier = "CLAVIERm" ;;

let tenue = true ;;

let curseur_1 = 0x4A ;;
let curseur_2 = 0x47 ;;
let curseur_3 = 0x5B ;;
let curseur_4 = 0x5D ;;
let curseur_5 = 0x49 ;;
let curseur_6 = 0x48 ;;
let curseur_7 = 0x05 ;;
let curseur_8 = 0x54 ;;
let curseur_9 = 0x07 ;;

let bouton_1 = 0x4B ;;
let bouton_2 = 0x4C ;;
let bouton_3 = 0x5C ;;
let bouton_4 = 0x5F ;;
let bouton_5 = 0x0A ;;
let bouton_6 = 0x4D ;;
let bouton_7 = 0x4E ;;
let bouton_8 = 0x4F ;;

let alter_swell = 0x01 ;;
let alter_modulation = 0x01 ;;

(** Les boutons-poussoirs sont branchés sur le dernier canal MIDI par défaut (mode 0xBF). Les valeurs des boutons-poussoirs prennent les valeurs 127 à l'enfoncement et 0 au relâchement. *)


let poussoir_boucle = 0x71 ;;
let poussoir_rembobine = 0x72 ;;
let poussoir_avance_rapide = 0x73 ;;
let poussoir_arret = 0x74 ;;
let poussoir_lecture = 0x75 ;;
let poussoir_enregistrement = 0x76 ;;


(** Oxygen 49 : les boutons TRACK < et > donnent des contrôleurs sur le dernier canal midi avec la valeur 127 à l'enfoncement et 0 eu relâchement. *)


let track_moins = 0x6E ;;
let track_plus = 0x6F ;;

let poussoir_debut = track_moins ;;
let poussoir_fin = track_plus ;;

(** Contrôleur particulier : voir plus bas. *)


let vers_instru = 0x20 ;;

(** Valeurs absentes *)


let curseur_0 = 0xFF ;;
let bouton_8bis = 0xFF ;;
let bouton_p1 = 0xFF ;;
let bouton_p2 = 0xFF ;;
let bouton_p3 = 0xFF ;;
let bouton_p4 = 0xFF ;;
let bouton_p5 = 0xFF ;;
let bouton_p6 = 0xFF ;;
let bouton_p7 = 0xFF ;;
let bouton_p8 = 0xFF ;;
let bouton_p9 = 0xFF ;;
let bouton_p10 = 0xFF ;;
let poussoir_1 = 0xFF ;;
let poussoir_2 = 0xFF ;;
let poussoir_3 = 0xFF ;;
let poussoir_4 = 0xFF ;;
let poussoir_5 = 0xFF ;;
let poussoir_6 = 0xFF ;;
let poussoir_7 = 0xFF ;;
let poussoir_8 = 0xFF ;;
let poussoir_9 = 0xFF ;;
let poussoir_10 = 0xFF ;;
let poussoir_11 = 0xFF ;;
let poussoir_12 = 0xFF ;;
let pad_5 = 0xFF ;;
let pad_6 = 0xFF ;;
let pad_7 = 0xFF ;;
let pad_8 = 0xFF ;;


(** Poussoirs particuliers. Les neuf boutons poussoirs situés sous les curseurs envoient les signaux MIDI suivants : b0 00 00 b0 20 00 c0 0X

avec X = 0 à 8.

Ces signaux sont envoyés seulement à l'enfoncement et rien n'est envoyé au relâchement.*)



let instru_0 = 0x00 ;;
let instru_1 = 0x01 ;;
let instru_2 = 0x02 ;;
let instru_3 = 0x03 ;;
let instru_4 = 0x04 ;;
let instru_5 = 0x05 ;;
let instru_6 = 0x06 ;;
let instru_7 = 0x07 ;;
let instru_8 = 0x08 ;;

(** Coussinets percussifs. Par défaut ce sont des notes envoyées sur le canal MIDI 0x09. *)


let pad1 = 0x24 ;;
let pad2 = 0x26 ;;
let pad3 = 0x2a ;;
let pad4 = 0x2e ;;
let pad5 = 0x32 ;;
let pad6 = 0x2d ;;
let pad7 = 0x33 ;;
let pad8 = 0x31 ;;


end