[01;34mwith[m Ada[31m.[mNumerics[31m.[mDiscrete_Random[31m;[m

[01;34mwith[m Text_Io[31m;[m                           [01;34muse[m Text_Io[31m;[m

[01;34mpackage[m [01;34mbody[m Libsens[31m.[mData[31m.[mBassDrum [01;34mis[m
   
   [01;34mpackage[m Bool_Rand [01;34mis[m [01;34mnew[m Ada[31m.[mNumerics[31m.[m[01;30mDiscrete_Random[m[31m([m[32mBoolean[m[31m);[m   
   
   Bool_Gen [31m:[m Bool_Rand[31m.[mGenerator[31m;[m
   
   
   
   [01;34mfunction[m [01;30mTribe[m[31m([mDen [31m:[m [01;34min[m Den_Type[31m)[m [01;34mreturn[m Word16_Type [01;34mis[m
      
      Resolution [31m:[m Positive [31m:=[m [35m2[m[31m**[mDen[31m;[m
      Word16     [31m:[m Word16_Type [31m:=[m [35m0[m[31m;[m
   [01;34mbegin[m
      
      [01;34mfor[m I [01;34min[m [35m0[m[31m..([mWord16_Type'Size[31m-[m[35m1[m[31m)[m [01;34mloop[m
	 [01;34mif[m I [01;34mmod[m Resolution [31m=[m [35m0[m [01;34mthen[m
	    Word16 [31m:=[m Word16 [31m+[m [35m2[m[31m**[mI[31m;[m
	 [01;34mend[m [01;34mif[m[31m;[m
      [01;34mend[m [01;34mloop[m[31m;[m
      [01;34mreturn[m Word16[31m;[m
   [01;34mend[m Tribe[31m;[m
   
   
   [01;34mfunction[m [01;30mRand[m[31m([mDen [31m:[m [01;34min[m Den_Type[31m;[m Length [31m:[m [01;34min[m Positive[31m)[m [01;34mreturn[m Word16_Type [01;34mis[m
      
      Resolution [31m:[m Positive [31m:=[m [35m2[m[31m**[mDen[31m;[m
      Word16     [31m:[m Word16_Type [31m:=[m [35m0[m[31m;[m
   [01;34mbegin[m
      
      [01;34mfor[m I [01;34min[m [31m([mWord16_Type[31m'Size-1)-Length..Word16_Type'[mSize[31m-[m[35m1[m [01;34mloop[m
	 [01;34mif[m I [01;34mmod[m [31m([m[35m64[m[31m/[mResolution[31m)[m [31m=[m [35m0[m [01;34mthen[m
	    [01;34mif[m Bool_Rand[31m.[m[01;30mRandom[m[31m([mBool_Gen[31m)[m [01;34mthen[m
	       Word16 [31m:=[m Word16 [31m+[m [35m2[m[31m**[mI[31m;[m
	       
	    [01;34mend[m [01;34mif[m[31m;[m
	 [01;34mend[m [01;34mif[m[31m;[m
      [01;34mend[m [01;34mloop[m[31m;[m         
      [01;34mreturn[m Word16[31m;[m
   [01;34mend[m Rand[31m;[m
   
   [01;34mtask[m [01;34mbody[m BassDrum_Gen [01;34mis[m
      End_Of_Task [31m:[m [32mBoolean[m [31m:=[m False[31m;[m
      

      
      
      BassDrum_sentence [31m:[m BassDrum_Sentence_Type[31m;[m
      
      Foot [31m:[m [01;34mconstant[m bassdrum_Value_type [31m:=[m [35m36[m[31m;[m

      
      Power_count [31m:[m Natural [31m:=[m [35m0[m[31m;[m
   [01;34mbegin[m
      
      [01;30mBassdrum_sentence[m[31m([mfoot[31m).[mKey [31m:=[m Foot[31m;[m
      [01;30mBassDrum_sentence[m[31m([mfoot[31m).[mSens [31m:=[m [35m100[m[31m;[m
      
      
      [01;34mwhile[m [01;34mnot[m End_Of_Task [01;34mloop[m

	 
	 [01;34mselect[m	       

	       
	    [01;34maccept[m Halt [01;34mdo[m
	       End_Of_Task [31m:=[m True[31m;[m
	    [01;34mend[m Halt[31m;[m
	    [01;34mexit[m[31m;[m

	 [01;34mor[m
	    
	    [01;34maccept[m [01;30mRespond[m[31m([mFilename [31m:[m [01;34min[m [32mString[m[31m;[m Channel [31m:[m [01;34min[m Channel_Type[31m;[m Seq [31m:[m [01;34min[m [01;34mout[m Seq_Vectors[31m.[mVector[31m)[m [01;34mdo[m
	       
	       
	       [01;34mif[m Power_count [31m=[m [35m3[m [01;34mthen[m		  

		  [01;30mBassDrum_sentence[m[31m([mfoot[31m).[mSentence [31m:=[m [01;30mTribe[m[31m([m[35m4[m[31m)[m [01;34mor[m [01;30mRand[m[31m([m[35m4[m[31m,[m [35m2[m[31m**[m[35m4[m[31m);[m
		  Power_Count [31m:=[m [35m0[m[31m;[m
	       [01;34melse[m

		  [01;30mBassDrum_sentence[m[31m([mfoot[31m).[mSentence [31m:=[m [01;30mTribe[m[31m([m[35m4[m[31m);[m			
		  Power_Count [31m:=[m Power_Count [31m+[m [35m1[m[31m;[m
	       [01;34mend[m [01;34mif[m[31m;[m	    
	       
	       
	       [01;30mPattern[m[31m([mFrom [31m=>[m BassDrum_sentence[31m,[m Channel [31m=>[m channel[31m,[m Seq [31m=>[m Seq[31m);[m		  
	       
	    [01;34mend[m Respond[31m;[m
	 [01;34mend[m [01;34mselect[m[31m;[m

      [01;34mend[m [01;34mloop[m[31m;[m
   [01;34mend[m BassDrum_Gen[31m;[m   
[01;34mend[m Libsens[31m.[mData[31m.[mBassDrum[31m;[m
