
[01;34mwith[m PragmARC[31m.[mGenetic_Algorithm[31m;[m

[01;34mwith[m Libsens[31m.[mMIDI[31m.[mPortmidi[31m;[m             [01;34muse[m Libsens[31m.[mMIDI[31m.[mPortmidi[31m;[m
[01;34mwith[m Libsens[31m.[mMIDI[31m.[mDrivers[31m;[m              [01;34muse[m Libsens[31m.[mMIDI[31m.[mDrivers[31m;[m
[01;34mwith[m Libsens[31m.[mMIDI[31m.[mMessages[31m;[m             [01;34muse[m Libsens[31m.[mMIDI[31m.[mMessages[31m;[m
[01;34mwith[m Libsens[31m.[mVirtual[31m.[mGen_Plugin[31m;[m        [01;34muse[m Libsens[31m.[mVirtual[31m.[mGen_Plugin[31m;[m

[01;34mwith[m Libsens[31m.[mProcessing[31m.[mCommon[31m;[m         [01;34muse[m Libsens[31m.[mProcessing[31m.[mCommon[31m;[m

[01;34mwith[m Libsens[31m.[mFrame[31m;[m

[01;34mwith[m Ada[31m.[mCalendar[31m.[mFormatting[31m;[m

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

[01;34mwith[m Interfaces[31m.[mC[31m;[m                      [01;34muse[m Interfaces[31m.[mC[31m;[m

[01;34mpackage[m [01;34mbody[m Libsens[31m.[mProcessing[31m.[mGenetical_Bass [01;34mis[m
   
   [01;34mprocedure[m [01;30mInitialize[m[31m([mPlugin_Process [31m:[m [01;34min[m Genetical_Bass_Processing[31m;[mOptions [31m:[m [01;34min[m Work_Options_Access[31m)[m [01;34mis[m
   [01;34mbegin[m
      Plugin_Process[31m.[mProcess[31m.[m[01;30mInitialize[m[31m([mOptions[31m);[m
   [01;34mend[m Initialize[31m;[m   
   
   
   [01;34mprocedure[m [01;30mStart[m[31m([mPlugin_Process [31m:[m [01;34min[m Genetical_Bass_Processing[31m;[mStart_Time [31m:[m [01;34min[m Time[31m;[m Tempo [31m:[m [01;34min[m Tempo_Type[31m;[m Signature [31m:[m [01;34min[m Time_Signature_Type[31m)[m [01;34mis[m
   [01;34mbegin[m
      Plugin_Process[31m.[mProcess[31m.[m[01;30mStart[m[31m([mStart_Time[31m,[m Tempo[31m,[m Signature[31m);[m
   [01;34mend[m Start[31m;[m
   
   [01;34mprocedure[m [01;30mStop[m[31m([mPlugin_Process [31m:[m [01;34min[m Genetical_Bass_Processing[31m)[m [01;34mis[m
   [01;34mbegin[m
      Plugin_Process[31m.[mProcess[31m.[mStop[31m;[m
   [01;34mend[m Stop[31m;[m
   
   [01;34mprocedure[m [01;30mHalt[m[31m([mPlugin_Process [31m:[m [01;34min[m Genetical_Bass_Processing[31m)[m [01;34mis[m
   [01;34mbegin[m
      Plugin_Process[31m.[mProcess[31m.[mHalt[31m;[m
   [01;34mend[m Halt[31m;[m
   
   
   [01;34mtask[m [01;34mbody[m Genetical_Bass_Process [01;34mis[m      
      
      
      Start_Time  [31m:[m Time [31m:=[m Clock[31m;[m
      Quantum     [31m:[m [32mDuration[m [31m:=[m [35m0.0[m[31m;[m
      
      Tempo [31m:[m Tempo_Type [31m:=[m [35m120.0[m[31m;[m	 
      Date      [31m:[m Time [31m:=[m Clock[31m;[m
      
      End_Of_Task [31m:[m [32mBoolean[m [31m:=[m False[31m;[m
      Bar_Beat [31m:[m Bar_Beat_Type[31m;[m
      Signature [31m:[m Time_Signature_Type [31m:=[m [31m([m[35m4[m[31m,[m [35m4[m[31m);[m
      
      Current_Form [31m:[m Form_Index_Type [31m:=[m [35m1[m[31m;[m
      Current_Break    [31m:[m Break_Type [31m:=[m Down_Break[31m;[m
      Prev_Break       [31m:[m Break_Type [31m:=[m Null_Break[31m;[m	 
      Next_Break       [31m:[m Break_Type [31m:=[m Down_Break[31m;[m
      


      
      Options [31m:[m [01;34maccess[m Work_Options_Record[31m;[m
      
      
      [01;34mpackage[m Bass_Frame [01;34mis[m
	 [01;34mnew[m Libsens[31m.[mFrame
	
	
	[31m([mMax_B_Inf [31m=>[m [01;30mGen_Bass_Plugin_Record[m[31m([mGenetical_bass[31m.[mPlugin[31m.[m[01;34mall[m[31m).[mMax_B_Inf[31m,[m
	 Max_B_Sup [31m=>[m [01;30mGen_Bass_Plugin_Record[m[31m([mGenetical_bass[31m.[mPlugin[31m.[m[01;34mall[m[31m).[mMax_B_Sup[31m,[m
	 Min_Class_Id [31m=>[m [01;30mGen_Bass_Plugin_Record[m[31m([mGenetical_bass[31m.[mPlugin[31m.[m[01;34mall[m[31m).[mMin_Class_Id[31m,[m
	 Min_Value_Id [31m=>[m [01;30mGen_Bass_Plugin_Record[m[31m([mGenetical_bass[31m.[mPlugin[31m.[m[01;34mall[m[31m).[mMin_Value_Id[31m,[m
	 Min_Data_Id [31m=>[m [01;30mGen_Bass_Plugin_Record[m[31m([mGenetical_bass[31m.[mPlugin[31m.[m[01;34mall[m[31m).[mMin_Data_Id[31m,[m
	 Max_Class_Id [31m=>[m [01;30mGen_Bass_Plugin_Record[m[31m([mGenetical_bass[31m.[mPlugin[31m.[m[01;34mall[m[31m).[mMax_Class_Id[31m,[m
	 Max_Value_Id [31m=>[m [01;30mGen_Bass_Plugin_Record[m[31m([mGenetical_bass[31m.[mPlugin[31m.[m[01;34mall[m[31m).[mMax_Value_Id[31m,[m
	 Max_Data_Id [31m=>[m [01;30mGen_Bass_Plugin_Record[m[31m([mGenetical_bass[31m.[mPlugin[31m.[m[01;34mall[m[31m).[mMax_Data_id
	[31m);[m
	    
      [01;34muse[m Bass_Frame[31m,[m Bass_Frame[31m.[mFrame_Rand[31m;[m
      
      [01;34mprocedure[m Genetic_Frame_Algorithm [01;34mis[m [01;34mnew[m PragmARC[31m.[m[01;30mGenetic_Algorithm[m [31m([mBass_Frame[31m.[mFrame_Type[31m,[m 
									   [31m"="[m[31m,[m 
									   Bass_Frame[31m.[mFrame_Rand[31m.[mFrame_Random[31m,[m
									   Frame_Fitness[31m,[m
									   Frame_Mate[31m,[m
									   Frame_Mutate[31m);[m
      
	    
      
   [01;34mbegin[m
      [01;34mwhile[m [01;34mnot[m End_Of_Task [01;34mloop[m
	 [01;34mloop[m
	    [01;34mselect[m
	       [01;34maccept[m [01;30mInitialize[m[31m([mOptions [31m:[m [01;34min[m Work_Options_Access[31m)[m [01;34mdo[m
		  [01;30mPut_Line[m[31m([m[31m"Plugin id : "[m [31m&[m
			     Plugin_Num'[01;30mImage[m[31m([mGenetical_Bass[31m.[mPlugin[31m.[mId[31m)[m [31m&[m
			     [31m" ready for process "[m [31m&[m
			     Plugin_Enum'[01;30mImage[m[31m([mGenetical_Bass[31m.[mPlugin[31m.[mClass[31m));[m
		  Genetical_Bass_Process[31m.[mOptions [31m:=[m Options[31m;[m
	       [01;34mend[m Initialize[31m;[m
	    [01;34mor[m
	       
	       [01;34maccept[m [01;30mStart[m[31m([mStart_Time [31m:[m [01;34min[m Time[31m;[m Tempo [31m:[m [01;34min[m Tempo_Type[31m;[m Signature [31m:[m [01;34min[m Time_Signature_Type[31m)[m [01;34mdo[m
		  Quantum [31m:=[m  [32mDuration[m[31m([m[35m60000.0[m[31m/[m[32mFloat[m[31m([mTempo[31m))/[mSignature[31m.[mUnit[31m/[m[35m1000.0[m[31m;[m
		  Genetical_Bass_Process[31m.[mTempo [31m:=[m Tempo[31m;[m
		  Genetical_Bass_Process[31m.[mSignature [31m:=[m Signature[31m;[m
		  
		  Bar_Beat [31m:=[m [31m([m[35m1[m[31m,[m [35m1[m[31m,[m [35m1[m[31m);[m
		  Genetical_Bass_Process[31m.[mStart_Time [31m:=[m Start_Time[31m;[m		  
	       [01;34mend[m Start[31m;[m
	       [01;34mexit[m[31m;[m
	    [01;34mor[m
	       [01;34maccept[m  Stop[31m;[m
	    [01;34mor[m
	       [01;34maccept[m Halt[31m;[m
	       End_Of_Task [31m:=[m True[31m;[m
	       [01;34mexit[m[31m;[m
	    [01;34mend[m [01;34mselect[m[31m;[m
	 [01;34mend[m [01;34mloop[m[31m;[m
	 [31m--Put_Line("Genetical bass started ::= MIMI 0.1.0");[m
	 
	 [01;34mdeclare[m
	    
	    
	    
	    
	    
	    
	 [01;34mbegin[m
	 
	    [01;34mwhile[m [01;34mnot[m End_Of_Task [01;34mloop[m
	       [01;34mselect[m
		  [01;34maccept[m [01;30mInitialize[m[31m([mOptions [31m:[m [01;34min[m Work_Options_Access[31m)[m [01;34mdo[m
		     Genetical_Bass_Process[31m.[mOptions [31m:=[m Options[31m;[m
		  [01;34mend[m Initialize[31m;[m
	       [01;34mor[m
		  [01;34maccept[m [01;30mStart[m[31m([mStart_Time [31m:[m [01;34min[m Time[31m;[m Tempo [31m:[m [01;34min[m Tempo_Type[31m;[m Signature [31m:[m [01;34min[m Time_Signature_Type[31m)[m [01;34mdo[m
		     Quantum [31m:=[m  [32mDuration[m[31m([m[35m60000.0[m[31m/[m[32mFloat[m[31m([mTempo[31m))/[mSignature[31m.[mUnit[31m/[m[35m1000.0[m[31m;[m
		     Genetical_Bass_Process[31m.[mTempo [31m:=[m Tempo[31m;[m
		     Genetical_Bass_Process[31m.[mSignature [31m:=[m Signature[31m;[m		  
		     
		  [01;34mend[m Start[31m;[m
	       [01;34mor[m
		  [01;34maccept[m  Stop[31m;[m
		  [01;34mexit[m[31m;[m
	       [01;34mor[m
		  [01;34maccept[m Halt[31m;[m
		  End_Of_Task [31m:=[m True[31m;[m
		  [01;34mexit[m[31m;[m
	       [01;34mor[m
		  [01;34mdelay[m [01;34muntil[m Start_Time[31m;[m
		  [31m--Put_Line("Genetical bass started ::= MIMI 0.1.1");[m
		  [31m--if current_form = Genetical_Bass.plugin.played_form then[m
		  [31m--  if Genetical_Bass.Plugin.Algo = Null_Algo then[m
		  [01;34mif[m [31m([m[01;34mnot[m Genetical_Bass[31m.[mplugin[31m.[mmutted[31m)[m 
		    [01;34mand[m [01;30mis_formed[m[31m([mOptions[31m.[mtrue_table[31m,[m			       
				  Genetical_Bass[31m.[mPlugin[31m.[mCat_id[31m,[m 
				  Options[31m.[mPrev_Break[31m,[m 
				  Options[31m.[mNext_Break[31m)[m [01;34mthen[m
		     [31m--Put_Line("Genetical bass started ::= MIMI 0.1.2");[m
		     
		     
		     [01;34mdeclare[m
			
			Context [31m:[m Genetic_Context_Type[31m;[m
			
			Best_Frame [31m:[m Bass_Frame[31m.[mFrame_Type[31m;[m
			Fit_Frame  [31m:[m [32mFloat[m [31m:=[m [35m0.0[m[31m;[m
			
			
			
			Date [31m:[m Time [31m:=[m Clock[31m;[m
		     [01;34mbegin[m
			Bass_Frame[31m.[mFrame_Rand[31m.[mReset[31m;[m
			[01;30mGenetic_Frame_Algorithm[m[31m([mPopulation_Size           [31m=>[m Context[31m.[mPopulation_Size[31m,[m
						Max_Generations           [31m=>[m Context[31m.[mMax_Generations[31m,[m
						Num_No_Change_Generations [31m=>[m Context[31m.[mNum_No_Change_Generations[31m,[m
						Mutation_Probability      [31m=>[m Context[31m.[mMutation_Probability[31m,[m
						Num_Elite_Saved           [31m=>[m Context[31m.[mNum_Elite_Saved[31m,[m
						Best                      [31m=>[m Best_Frame[31m,[m
						Fit                       [31m=>[m Fit_Frame[31m);[m	       	       
			
			[01;34mfor[m Digit_Id [01;34min[m Best_Frame[31m.[mB_Inf[31m..[mBest_Frame[31m.[mB_Sup [01;34mloop[m
			   [01;34mdeclare[m
			      
			      
			      
			      
			      Message_Note_On  [31m:[m Long [31m:=[m [01;30mTo_Long[m[31m([m[01;30mNote_On[m[31m([m[01;30mLong[m[31m([m[01;30mLong[m[31m([mGenetical_Bass[31m.[mPlugin[31m.[mCh_Id[31m-[m[35m1[m[31m)),[m 
									 [01;30mLong[m[31m([mBest_Frame[31m.[m[01;30mDigital_Series[m[31m([mDigit_Id[31m).[mPosition[31m.[mDigit[31m.[mClass_Id[31m),[m 
									 [01;30mLong[m[31m([mBest_Frame[31m.[m[01;30mDigital_Series[m[31m([mDigit_Id[31m).[mPosition[31m.[mDigit[31m.[mValue_Id[31m)));[m 
			      
			      
			      
			      
			      Message_Note_Off [31m:[m Long [31m:=[m [01;30mTo_Long[m[31m([m[01;30mNote_Off[m[31m([m[01;30mLong[m[31m([mGenetical_Bass[31m.[mPlugin[31m.[mCh_Id[31m-[m[35m1[m[31m),[m 
									  [01;30mLong[m[31m([mBest_Frame[31m.[m[01;30mDigital_Series[m[31m([mDigit_Id[31m).[mPosition[31m.[mDigit[31m.[mClass_Id[31m)));[m
			      
			      Length   [31m:[m [32mDuration[m [31m:=[m [31m([mQuantum[31m)[m [31m*[m [01;30mNatural[m[31m(([m[01;30mLong[m[31m([mBest_Frame[31m.[m[01;30mDigital_Series[m[31m([mDigit_Id[31m).[mPosition[31m.[mDigit[31m.[mData_Id[31m)));[m
			      
			   [01;34mbegin[m
			      
			      
			      Date [31m:=[m Clock[31m;[m
			      Genetical_Bass[31m.[mEvent_Process[31m.[m[01;30mReceive[m[31m([mGenetical_bass[31m.[mplugin[31m.[mDevice_Id[31m,[m Date[31m,[m Message_Note_On[31m,[m [35m0.0[m[31m,[m Tempo[31m);[m
			      Genetical_Bass[31m.[mEvent_Process[31m.[m[01;30mReceive[m[31m([mGenetical_bass[31m.[mplugin[31m.[mDevice_Id[31m,[m Date[31m,[m Message_Note_Off[31m,[m Length[31m,[m Tempo[31m);[m
			      
			      
			      [01;34mif[m Genetical_Bass[31m.[mPlugin[31m.[mPrinted [01;34mthen[m
				 
				 [01;34mdeclare[m				       
				    Printed_Message [31m:[m [01;34mconstant[m Printed_Message_Access [31m:=[m [01;34mnew[m Printed_Message_Type '
				      [31m([mSource [31m=>[m [01;34mnew[m [32mString[m [31m' (Positive'[m[01;30mImage[m[31m([m[01;30mpositive[m[31m([mGenetical_Bass[31m.[mPlugin[31m.[mId[31m))),[m
				       Destination [31m=>[m [01;34mnew[m [32mString[m [31m' (Positive'[m[01;30mImage[m[31m([m[01;30mPositive[m[31m([mGenetical_Bass[31m.[mPlugin[31m.[mDevice_id[31m))),[m
				       Data_Type [31m=>[m [01;34mnew[m [32mString[m [31m' (Control_Type'[m[01;30mImage[m[31m([m[01;30mControl_Of[m[31m([mMessage_Note_On[31m))),[m
				       Channel [31m=>[m [01;34mnew[m [32mString[m [31m' (Channel_Type'[m[01;30mImage[m[31m([m[01;30mChannel_Of[m[31m([mMessage_Note_On[31m))),[m
				       Data1 [31m=>[m [01;34mnew[m [32mString[m [31m' (Interfaces.C.Long'[m[01;30mImage[m[31m([m[01;30mData1[m[31m([mMessage_Note_On[31m))),[m
				       Data2 [31m=>[m [01;34mnew[m [32mString[m [31m' (Interfaces.C.Long'[m[01;30mImage[m[31m([m[01;30mData2[m[31m([mMessage_Note_On[31m))),[m
				       Hour [31m=>[m [01;34mnew[m [32mString[m ' [31m([mFormatting[31m.[m[01;30mImage[m[31m([mStart_time[31m,[m True[31m)),[m
				       Hexa_Sum [31m=>[m [01;34mnew[m [32mString[m ' [31m([m[01;30mHex_Image[m[31m([mMessage_Note_On[31m)),[m
				       Long_Sum [31m=>[m [01;34mnew[m [32mString[m [31m' (Long'[m[01;30mImage[m[31m([mMessage_Note_On[31m)));[m
				 [01;34mbegin[m
				    
				    [31m--Print(Printed_Message);[m
				    
				    Genetical_Bass[31m.[mBox[31m.[m[01;30mReceive[m[31m([mPrinted_Message[31m);[m
				    [31m--Text_Io.Put_Line("Messages sended to Message box");[m
				    
				 [01;34mend[m[31m;[m
				 
				 [01;34mdeclare[m				       
				    Printed_Message [31m:[m [01;34mconstant[m Printed_Message_Access [31m:=[m [01;34mnew[m Printed_Message_Type '
				      [31m([mSource [31m=>[m [01;34mnew[m [32mString[m [31m' (Positive'[m[01;30mImage[m[31m([m[01;30mpositive[m[31m([mGenetical_Bass[31m.[mPlugin[31m.[mId[31m))),[m
				       Destination [31m=>[m [01;34mnew[m [32mString[m [31m' (Positive'[m[01;30mImage[m[31m([m[01;30mPositive[m[31m([mGenetical_Bass[31m.[mPlugin[31m.[mDevice_Id[31m))),[m
				       Data_Type [31m=>[m [01;34mnew[m [32mString[m [31m' (Control_Type'[m[01;30mImage[m[31m([m[01;30mControl_Of[m[31m([mMessage_Note_Off[31m))),[m
				       Channel [31m=>[m [01;34mnew[m [32mString[m [31m' (Channel_Type'[m[01;30mImage[m[31m([m[01;30mChannel_Of[m[31m([mMessage_Note_Off[31m))),[m
				       Data1 [31m=>[m [01;34mnew[m [32mString[m [31m' (Interfaces.C.Long'[m[01;30mImage[m[31m([m[01;30mData1[m[31m([mMessage_Note_Off[31m))),[m
				       Data2 [31m=>[m [01;34mnew[m [32mString[m [31m' (Interfaces.C.Long'[m[01;30mImage[m[31m([m[01;30mData2[m[31m([mMessage_Note_Off[31m))),[m
				       Hour [31m=>[m [01;34mnew[m [32mString[m ' [31m([mFormatting[31m.[m[01;30mImage[m[31m([mStart_time[31m+[mlength[31m,[m True[31m)),[m
				       Hexa_Sum [31m=>[m [01;34mnew[m [32mString[m ' [31m([m[01;30mHex_Image[m[31m([mMessage_Note_Off[31m)),[m
				       Long_Sum [31m=>[m [01;34mnew[m [32mString[m [31m' (Long'[m[01;30mImage[m[31m([mMessage_Note_Off[31m)));[m
				 [01;34mbegin[m
				    
				    [31m--Print(Printed_Message);[m
				    
				    Genetical_Bass[31m.[mBox[31m.[m[01;30mReceive[m[31m([mPrinted_Message[31m);[m
				    [31m--Text_Io.Put_Line("Messages sended to Message box");[m
				    
				 [01;34mend[m[31m;[m
			      [01;34mend[m [01;34mif[m[31m;[m
			      
			      
			      [01;34mdelay[m [31m([mQuantum [31m*[m  Signature[31m.[mUnit[31m);[m				 
			      Start_Time [31m:=[m Start_Time [31m+[m Quantum[31m*[mSignature[31m.[mUnit[31m;[m
			   [01;34mend[m[31m;[m
			[01;34mend[m [01;34mloop[m[31m;[m
		     [01;34mend[m[31m;[m
		  		     
		  [01;34melse[m
		     start_time [31m:=[m start_time [31m+[m Quantum[31m;[m
		     
		     
		     
		     
		     [31m--Put_Line("tatata 3");		     		     [m
		  [01;34mend[m [01;34mif[m[31m;[m
		  [31m-- end if;[m
		  [31m--   end if;[m
		  [31m--Put_Line("Genetical bass started ::= MIMI 0.1.275");[m
	       [01;34mend[m [01;34mselect[m[31m;[m	    

	       [31m--Put_Line("Genetical bass started ::= MIMI 0.1.276");[m
	    [01;34mend[m [01;34mloop[m[31m;[m
	 [01;34mend[m[31m;[m
      [01;34mend[m [01;34mloop[m[31m;[m
   [01;34mend[m Genetical_Bass_Process[31m;[m
   
[01;34mend[m Libsens[31m.[mProcessing[31m.[mGenetical_Bass[31m;[m
