[01;34mwith[m Ada[31m.[mUnchecked_Deallocation[31m;[m
[01;34mwith[m Libsens[31m.[mMIDI[31m.[mMessages[31m;[m             [01;34muse[m Libsens[31m.[mMIDI[31m.[mMessages[31m;[m
[01;34mpackage[m Libsens[31m.[mCommon [01;34mis[m
   
   [01;34mtype[m String_Access [01;34mis[m [01;34maccess[m [01;34mall[m [32mString[m[31m;[m
   [01;34mprocedure[m Free [01;34mis[m [01;34mnew[m Ada[31m.[m[01;30mUnchecked_Deallocation[m[31m([m[32mString[m[31m,[m String_Access[31m);[m
   
   
   Time_Unit_Max [31m:[m [01;34mconstant[m Positive [31m:=[m [35m64[m[31m;[m
   
   Time_Number_Max [31m:[m [01;34mconstant[m Positive [31m:=[m [35m32[m[31m;[m
   
   Time_Index_Max [31m:[m [01;34mconstant[m Positive [31m:=[m Time_Unit_Max [31m*[m Time_Number_Max[31m;[m
   
   [01;34msubtype[m Time_Index_Type [01;34mis[m
     Positive [01;34mrange[m Positive'First [31m..[m Time_Index_Max[31m;[m
   
   [01;34msubtype[m Extended_Time_Index_Type [01;34mis[m
     Natural [01;34mrange[m [35m0[m [31m..[m Time_Index_Max[31m;[m
   
   [01;34msubtype[m Time_Unit_Type [01;34mis[m
     Time_Index_Type [01;34mrange[m Time_Index_Type'First [31m..[m Time_Unit_Max[31m;[m
   
   Unit_Default [31m:[m [01;34mconstant[m Time_Unit_Type [31m:=[m Time_Unit_Type'Last [31m/[m [35m4[m[31m;[m
   
   [01;34msubtype[m Time_Number_Type [01;34mis[m
     Time_Index_Type [01;34mrange[m Time_Index_Type'First[31m..[mTime_Number_Max[31m;[m
   
   Number_Default [31m:[m [01;34mconstant[m Time_Number_Type [31m:=[m Time_Number_Type'Last [31m/[m [35m2[m[31m;[m
   
   
   [01;34mtype[m Time_Signature_Type [01;34mis[m
      [01;34mrecord[m
	 Number   [31m:[m Time_Number_Type[31m;[m
	 Unit     [31m:[m Time_Unit_Type[31m;[m
      [01;34mend[m [01;34mrecord[m[31m;[m
   
   [01;34mfunction[m [01;30mimage[m[31m([mSignature [31m:[m [01;34min[m Time_Signature_Type[31m)[m [01;34mreturn[m [32mString[m[31m;[m
   
   [01;34mtype[m Bar_Beat_Type [01;34mis[m
     [01;34mtagged[m [01;34mrecord[m
      Bar         [31m:[m Positive [31m:=[m Positive'First[31m;[m
      Time_Number [31m:[m Time_Number_Type [31m:=[m Time_Number_Type'First[31m;[m
      Time_Unit   [31m:[m Time_Unit_Type [31m:=[m Time_Unit_Type'First[31m;[m
   [01;34mend[m [01;34mrecord[m[31m;[m
   
   [01;34mfunction[m [01;30mImage[m[31m([mBar_Beat [31m:[m [01;34min[m Bar_Beat_Type[31m)[m [01;34mreturn[m [32mString[m[31m;[m
   
   [01;34mprocedure[m [01;30mNext[m[31m([mBar_Beat    [31m:[m [01;34min[m [01;34mout[m Bar_Beat_Type[31m;[m
		  Bar         [31m:[m [01;34min[m Natural[31m;[m
		  Number      [31m:[m [01;34min[m Time_Number_Type[31m;[m
		  Unit        [31m:[m [01;34min[m Time_Unit_Type[31m);[m
   
   [01;34mtype[m Tempo_Type [01;34mis[m [01;34mdelta[m [35m0.1[m [01;34mdigits[m [35m4[m [01;34mrange[m [35m1.0[m[31m..[m[35m240.0[m[31m;[m
   
   
      [01;34msubtype[m Den_Type [01;34mis[m natural [01;34mrange[m [35m0[m[31m..[m[35m6[m[31m;[m      
   
   [01;34msubtype[m Step_Beat_Type [01;34mis[m Positive [01;34mrange[m [35m1[m[31m..[m[35m2[m[31m**[m[35m6[m [31m+[m [35m1[m[31m;[m
  
   [01;34msubtype[m Numerator_Type [01;34mis[m Positive [01;34mrange[m [35m1[m[31m..[m[35m32[m[31m;[m    
   
   [01;34mtype[m Form_Type [01;34mis[m [31m([mMinimal[31m,[m  
		      HardTech[31m,[m 
		      Acid[31m,[m
		      Trance[31m,[m Techno[31m,[m Tribe[31m,[m DnB[31m,[m
		      HardCore[31m);[m

   
   [01;34mtype[m Category_Type [01;34mis[m [31m([mNull_Cat[31m,[m Lead[31m,[m Bass[31m,[m Strings_N_Pads[31m,[m Guitare_N_Pluck[31m,[m
			  S_E[31m,[m Synth_Hard[31m,[m Synth_Soft[31m,[m
			  Keyboard[31m,[m Hit_N_Drum[31m,[m Drums_Kit[31m,[m Audio_In[31m,[m Motion[31m,[m Bell_N_Decay[31m,[m User[31m,[m
			  Arp_Seq[31m,[m Vocoder[31m,[m Split[31m);[m
			  

   
   
   
   [01;34mtype[m T_Note [01;34mis[m [01;34mtagged[m
      [01;34mrecord[m
         key [31m:[m Value_Type [31m:=[m [35m64[m[31m;[m
         Vel  [31m:[m Value_Type [31m:=[m [35m64[m[31m;[m
	 Len  [31m:[m Value_Type [31m:=[m [35m8[m[31m;[m
      [01;34mend[m [01;34mrecord[m[31m;[m
   [01;34mtype[m Note_Access [01;34mis[m [01;34maccess[m [01;34mall[m T_Note[31m;[m
   
   [01;34mtype[m T_Max_Chord_Length [01;34mis[m [01;34mrange[m [35m1[m[31m..[m[35m2[m[31m;[m
   [01;34mtype[m T_Chord [01;34mis[m [01;34marray[m [31m([mpositive [01;34mrange[m [31m<>)[m [01;34mof[m Note_access[31m;[m
   [01;34mtype[m Chord_Access [01;34mis[m [01;34maccess[m [01;34mall[m T_Chord[31m;[m
   
   [01;34mtype[m T_Figure [01;34mis[m [31m([mQuadruple[31m,[m Triple[31m,[m Double[31m,[m Simple[31m,[m Noire[31m,[m Blanche[31m,[m Ronde[31m);[m
   [01;34mfunction[m [01;30mBpm_To_Duration[m[31m([mBpm [31m:[m Tempo_Type[31m;[m
                            figure [31m:[m T_figure[31m)[m [01;34mreturn[m [32mDuration[m[31m;[m
   [01;34mfunction[m [01;30mTo_Figure[m[31m([mValue [31m:[m [01;34min[m Value_Type[31m)[m [01;34mreturn[m T_Figure[31m;[m

   
   
   
[01;34mend[m Libsens[31m.[mCommon[31m;[m
