[01;34mwith[m Interfaces[31m.[mC[31m;[m                      [01;34muse[m Interfaces[31m;[m
[01;34mpackage[m Libsens[31m.[mMIDI[31m.[mMessages [01;34mis[m
   
   
   [01;34msubtype[m Channel_Type [01;34mis[m Interfaces[31m.[mC[31m.[mLong [01;34mrange[m [35m0[m[31m..[m[35m15[m[31m;[m
   [31m-- valeurs admises pour le spécification des cannaux MIDI.   [m
   
   [01;34msubtype[m Value_Type [01;34mis[m Interfaces[31m.[mC[31m.[mLong [01;34mrange[m [35m0[m[31m..[m[35m127[m[31m;[m
   [31m-- Valeurs admises dans pour les paramettres du type notes et quelque construction de message.[m
   
   [01;34msubtype[m Bank_Type [01;34mis[m Interfaces[31m.[mC[31m.[mLong [01;34mrange[m [35m0[m[31m..[m[35m127[m[31m;[m
   [31m-- Valeurs admises pour les changements de banque.[m
   
   [01;34msubtype[m Program_Type [01;34mis[m Interfaces[31m.[mC[31m.[mLong [01;34mrange[m [35m0[m[31m..[m[35m127[m[31m;[m
   [31m-- Valeurs admises pour les changements de programme.[m
   
   
   [01;34mtype[m Message_Type [01;34mis[m
      [01;34mrecord[m
         Status [31m:[m Interfaces[31m.[mC[31m.[mLong [31m:=[m [35m0[m[31m;[m
         Data1 [31m:[m Interfaces[31m.[mC[31m.[mLong [31m:=[m [35m0[m[31m;[m
         Data2 [31m:[m Interfaces[31m.[mC[31m.[mLong [31m:=[m [35m0[m[31m;[m
      [01;34mend[m [01;34mrecord[m[31m;[m
   [31m-- Définit un message sous forme de 3 octets.[m
   
   [01;34mfunction[m [01;30mTo_Long[m[31m([mMessage [31m:[m [01;34min[m Message_Type[31m)[m [01;34mreturn[m C[31m.[mLong[31m;[m
   [31m-- Transforme un message sous forme de 3 octets en un Long.   [m
   
   [01;34mfunction[m [01;30mMessage[m[31m([mStatus[31m,[m Data1[31m,[m data2 [31m:[m [01;34min[m C[31m.[mLong[31m)[m [01;34mreturn[m Message_Type[31m;[m
   [31m-- Construit un message de 3 octets.[m
   
   [01;34mfunction[m [01;30mNote_On[m[31m([mChannel [31m:[m [01;34min[m Channel_Type[31m;[m
                    Note [31m:[m [01;34min[m Value_Type[31m;[m
                    Sens [31m:[m [01;34min[m Value_Type[31m)[m [01;34mreturn[m Message_Type[31m;[m
   [31m-- Construit un message "note_on".[m

   [01;34mfunction[m [01;30mNote_Off[m [31m([mChannel [31m:[m [01;34min[m Channel_Type[31m;[m
                      Note [31m:[m [01;34min[m Value_Type[31m)[m [01;34mreturn[m Message_Type[31m;[m
   [31m-- Construit un message "note_off".[m

   [01;34mfunction[m [01;30mAll_Note_Off[m[31m([mChannel [31m:[m [01;34min[m Channel_Type[31m)[m [01;34mreturn[m Message_Type[31m;[m
   [31m-- Construit un message "all_note_off".[m

   [01;34mfunction[m [01;30mBank_Select_MSB[m[31m([mChannel [31m:[m [01;34min[m Channel_Type[31m;[m
                            Bank [31m:[m [01;34min[m Bank_Type[31m)[m [01;34mreturn[m Message_Type[31m;[m
   [31m-- Construit un message de selection de banque MSB.[m

   [01;34mfunction[m [01;30mBank_Select_LSB[m[31m([mChannel [31m:[m [01;34min[m Channel_Type[31m;[m
                            Bank [31m:[m [01;34min[m Bank_Type[31m)[m [01;34mreturn[m Message_Type[31m;[m
   [31m-- Construit un message de selection de banque LSB.[m
   
   [01;34mfunction[m [01;30mProgram_Change[m[31m([mChannel [31m:[m [01;34min[m Channel_Type[31m;[m
			   Program [31m:[m [01;34min[m Program_Type[31m)[m [01;34mreturn[m Message_Type[31m;[m
   [31m-- Construit un message de changement de programme.[m
   
   [01;34mfunction[m [01;30mNRPM_MSB[m [31m([mChannel [31m:[m [01;34min[m Channel_Type[31m;[m
                      Value [31m:[m [01;34min[m Value_Type[31m)[m [01;34mreturn[m Message_Type[31m;[m
   [31m-- Construit un message NRPM MSB.[m
   
   [01;34mfunction[m [01;30mNRPM_LSB[m [31m([mChannel [31m:[m [01;34min[m Channel_Type[31m;[m
                      Value [31m:[m [01;34min[m Value_Type[31m)[m [01;34mreturn[m Message_Type[31m;[m
   [31m-- Construit un message NRPM LSB.[m
   
   [01;34mfunction[m [01;30mData_Entry_MSB[m [31m([mChannel [31m:[m [01;34min[m Channel_Type[31m;[m
                            Value [31m:[m [01;34min[m Value_Type[31m)[m [01;34mreturn[m Message_Type[31m;[m
   [31m-- Construit un message Data Entry MSB.   [m

   [01;34mfunction[m [01;30mAftertouch[m[31m([mChannel [31m:[m [01;34min[m Channel_Type[31m;[m
                       Value [31m:[m [01;34min[m Value_Type[31m)[m [01;34mreturn[m Message_Type[31m;[m
   [31m-- Construit un message Aftertouch.[m
   
   [01;34mfunction[m [01;30mPitchBend[m[31m([mChannel [31m:[m [01;34min[m Channel_Type[31m;[m
                      Data1 [31m:[m [01;34min[m Value_Type[31m;[m
                      Data2 [31m:[m [01;34min[m Value_Type[31m)[m [01;34mreturn[m Message_Type[31m;[m
   [31m-- Construit un message PitchBend.[m
   
   [01;34mfunction[m [01;30mControlCommand[m[31m([mChannel [31m:[m [01;34min[m Channel_Type[31m;[m
                           Data1 [31m:[m [01;34min[m Value_Type[31m;[m
                           Data2 [31m:[m [01;34min[m Value_Type[31m)[m [01;34mreturn[m Message_Type[31m;[m
   [31m-- Construit un message de commande de contrôle.[m
   

   [31m-- The next function are not implemented.[m
   Arp_Type_up [31m:[m [01;34mconstant[m Natural [31m:=[m [35m16[m#[35m0[m#[31m;[m
   Arp_Type_down [31m:[m [01;34mconstant[m Natural [31m:=[m [35m16[m#[35m15[m#[31m;[m
   Arp_Type_alt1 [31m:[m [01;34mconstant[m Natural [31m:=[m [35m16[m#2A#[31m;[m
   Arp_Type_alt2 [31m:[m [01;34mconstant[m Natural [31m:=[m [35m16[m#3F#[31m;[m
   Arp_Type_random [31m:[m [01;34mconstant[m Natural [31m:=[m [35m16[m#[35m54[m#[31m;[m
   Arp_Type_trigger [31m:[m [01;34mconstant[m Natural [31m:=[m [35m16[m#[35m69[m#[31m;[m
   [01;34mfunction[m [01;30mArp_Type_Switch[m[31m([mChannel [31m:[m [01;34min[m Channel_Type[31m;[m
                            Switch [31m:[m [01;34min[m Natural[31m)[m [01;34mreturn[m Message_Type[31m;[m

   [01;34msubtype[m T_Arp_Gate [01;34mis[m Natural [01;34mrange[m [35m0[m[31m..[m[35m127[m[31m;[m
   [01;34mfunction[m [01;30mArp_Gate[m[31m([mChannel [31m:[m [01;34min[m Channel_Type[31m;[m
                     Gate [31m:[m [01;34min[m T_Arp_Gate[31m)[m [01;34mreturn[m Message_Type[31m;[m

   Arp_Select_Off [31m:[m [01;34mconstant[m Natural [31m:=[m [35m0[m[31m;[m
   Arp_Select_arp [31m:[m [01;34mconstant[m Natural [31m:=[m [35m1[m[31m;[m
   Arp_Select_Step_Seq_1 [31m:[m [01;34mconstant[m Natural [31m:=[m [35m2[m[31m;[m
   Arp_Select_Step_Seq_2 [31m:[m [01;34mconstant[m Natural [31m:=[m [35m3[m[31m;[m

   [01;34mfunction[m [01;30mArp_Select[m[31m([mChannel [31m:[m [01;34min[m Channel_Type[31m;[m
                       Switch [31m:[m [01;34min[m Natural[31m)[m [01;34mreturn[m Message_Type[31m;[m

   [01;34mfunction[m Step_Seq_1_Latch_Off [01;34mreturn[m Message_Type[31m;[m
   [01;34mfunction[m Step_Seq_1_Latch_On [01;34mreturn[m Message_Type[31m;[m

   [01;34msubtype[m T_Step_Seq_1_Gate [01;34mis[m Natural [01;34mrange[m [35m0[m[31m..[m[35m127[m[31m;[m
   [01;34mfunction[m [01;30mStep_Seq_1_Gate[m[31m([mGate [31m:[m [01;34min[m T_Step_Seq_1_Gate[31m)[m [01;34mreturn[m Message_Type[31m;[m

   Step_Seq_2_Latch_off [31m:[m [01;34mconstant[m Natural [31m:=[m [35m0[m[31m;[m
   Step_Seq_2_Latch_on  [31m:[m [01;34mconstant[m Natural [31m:=[m [35m127[m[31m;[m

   [01;34msubtype[m T_Step_Seq_2_Gate [01;34mis[m Natural [01;34mrange[m [35m0[m[31m..[m[35m127[m[31m;[m
   [01;34mfunction[m [01;30mStep_Seq_2_Gate[m[31m([mGate [31m:[m [01;34min[m T_Step_Seq_2_Gate[31m)[m [01;34mreturn[m Message_Type[31m;[m
   
[01;34mend[m Libsens[31m.[mMIDI[31m.[mMessages[31m;[m
