[01;34mwith[m PragmARC[31m.[mRem_NN_Wrapper[31m;[m
[01;34muse[m PragmARC[31m.[mRem_NN_Wrapper[31m;[m
[01;34mwith[m Libsens[31m.[mData[31m.[mNeural[31m,[m Libsens[31m.[mData[31m.[mNeural[31m.[mNetwork[31m;[m
[01;34muse[m Libsens[31m.[mData[31m.[mNeural[31m;[m

[01;34mwith[m Ada[31m.[mNumerics[31m.[mFloat_Random[31m;[m
[01;34muse[m Ada[31m.[mNumerics[31m.[mFloat_Random[31m;[m
[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.[mbass [01;34mis[m   
   
   Network_Size [31m:[m [01;34mconstant[m Positive [31m:=[m [35m25[m[31m;[m
   Hidden_Num   [31m:[m [01;34mconstant[m Positive [31m:=[m [35m25[m[31m;[m
   
   [01;34mpackage[m Bass_Network [01;34mis[m [01;34mnew[m Libsens[31m.[mData[31m.[mNeural[31m.[m[01;30mNetwork[m[31m([mNetwork_Size[31m,[m Hidden_num[31m);[m   
   [01;34muse[m Bass_Network[31m;[m
   
   
   
   Float_Gen [31m:[m Generator[31m;[m
   
   [01;34mprocedure[m [01;30mRand_Init[m[31m([mSamples [31m:[m [01;34min[m [01;34mout[m Samples_Type[31m)[m [01;34mis[m
      Polyphony [31m:[m Natural [31m:=[m [35m0[m[31m;[m
      Float_Gen [31m:[m Generator[31m;[m
   [01;34mbegin[m
      [01;30mReset[m[31m([mFloat_Gen[31m);[m
      [01;34mfor[m I [01;34min[m Samples'[01;34mRange[m [01;34mloop[m
	 [01;34mfor[m J [01;34min[m [01;34mreverse[m [35m1[m[31m..[mNetwork_Size [01;34mloop[m	   
	    [01;34mif[m [01;30mReal[m[31m([m[01;30mRandom[m[31m([mFloat_Gen[31m))[m [31m>=[m [35m0.5[m [01;34mthen[m
	       [01;30mSamples[m[31m([mI[31m)([mJ[31m)[m [31m:=[m [35m1.0[m[31m;[m
	       Polyphony [31m:=[m Polyphony [31m+[m [35m1[m[31m;[m
	    [01;34melse[m
	       [01;30mSamples[m[31m([mI[31m)([mJ[31m)[m [31m:=[m [35m0.0[m[31m;[m
	    [01;34mend[m [01;34mif[m[31m;[m	    
	    [01;34mexit[m [01;34mwhen[m Polyphony [31m>[m [35m4[m[31m;[m
	 [01;34mend[m [01;34mloop[m[31m;[m
	 
	 Polyphony [31m:=[m [35m0[m[31m;[m
      [01;34mend[m [01;34mloop[m[31m;[m
   [01;34mend[m Rand_Init[31m;[m
   
   [01;34mfunction[m Problem_Rand [01;34mreturn[m Node_Set [01;34mis[m
      Set [31m:[m [01;30mNode_Set[m[31m([m[35m1[m[31m..[mNetwork_Size[31m)[m [31m:=[m [31m([m[01;34mothers[m [31m=>[m [35m0.0[m[31m);[m      
   [01;34mbegin[m      
      [01;34mfor[m I [01;34min[m Set'[01;34mRange[m [01;34mloop[m
	 [01;34mif[m [01;30mReal[m[31m([m[01;30mRandom[m[31m([mFloat_Gen[31m))[m [31m>=[m [35m0.5[m [01;34mthen[m
	    [01;30mSet[m[31m([mI[31m)[m [31m:=[m [35m1.0[m[31m;[m
	 [01;34melse[m
	    [01;30mSet[m[31m([mI[31m)[m [31m:=[m [35m0.0[m[31m;[m
	 [01;34mend[m [01;34mif[m[31m;[m

      [01;34mend[m [01;34mloop[m[31m;[m
      [01;34mreturn[m Set[31m;[m
   [01;34mend[m Problem_Rand[31m;[m
   
   [31m------------------------[m
   [31m-- initialize pattern --[m
   [31m------------------------               [m
   [01;34mprocedure[m [01;30mInit[m [31m([mPattern [31m:[m [01;34mout[m Bass_Sentence_Type[31m)[m [01;34mis[m
   [01;34mbegin[m
      [01;34mfor[m I [01;34min[m Pattern'[01;34mRange[m [01;34mloop[m
	 [01;30mPattern[m[31m([mI[31m).[mKey [31m:=[m I[31m;[m
      [01;34mend[m [01;34mloop[m[31m;[m
   [01;34mend[m Init[31m;[m
   
   
   
   
   
   [01;34mpackage[m Value_Rand [01;34mis[m [01;34mnew[m Ada[31m.[mNumerics[31m.[m[01;30mDiscrete_Random[m[31m([mValue_Type[31m);[m
   
   
   [31m--  type Feedback_Type is[m
   [31m--     record[m
   [31m--  	 Register : Register_Type := (others => 0.0);[m
   [31m--  	 Is_Set   : Boolean := False;[m
   [31m--     end record;     [m
   
   [31m--  Null_Feedback : constant Feedback_type := ((others => 0.0), False);[m
   
   

   
   [01;34mtask[m [01;34mbody[m Bass_Gen [01;34mis[m
      
      End_Of_Task [31m:[m [32mBoolean[m [31m:=[m False[31m;[m
      
      Bass_Pattern [31m:[m Bass_Sentence_Type[31m;[m
      
      
      Networks_Path [31m:[m [01;34mconstant[m [32mString[m [31m:=[m [31m"./data/networks/"[m[31m;[m
      
      Network_Name [31m:[m [01;34mconstant[m [32mString[m [31m:=[m [31m"-mod-Bass.wgt"[m[31m;[m
      
      Network_Filename  [31m:[m [01;34maccess[m [32mString[m[31m;[m
      
      

      Problem[31m,[m Response [31m:[m [01;30mNode_Set[m[31m([m[35m1[m[31m..[mNetwork_Size[31m)[m [31m:=[m [31m([m[01;34mothers[m [31m=>[m [35m0.0[m[31m);[m
            
      
      Melodic_Samples [31m:[m [01;30mSamples_Type[m[31m([m[35m1[m[31m..[m[35m128[m[31m)[m [31m:=[m [31m([m[01;34mothers[m [31m=>[m [31m([m[01;34mothers[m [31m=>[m [35m0.0[m[31m));[m
      Value_Gen [31m:[m Value_Rand[31m.[mGenerator[31m;[m
      
   [01;34mbegin[m
      [01;34mwhile[m [01;34mnot[m End_Of_Task [01;34mloop[m
	 Value_Rand[31m.[m[01;30mReset[m[31m([mValue_Gen[31m);[m
	 [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;30mInitialize[m[31m([mFilename [31m:[m [01;34min[m [32mString[m[31m;[m Reuse [31m:[m [01;34min[m [32mBoolean[m[31m;[m Converged [31m:[m [01;34min[m [32mFloat[m[31m;[m Max_Epochs [31m:[m [01;34min[m Positive[31m)[m [01;34mdo[m
		  
		  [01;30mRand_Init[m[31m([mMelodic_Samples[31m);[m
		  
		  Network_Filename [31m:=[m [01;34mnew[m [32mString[m ' [31m([mNetworks_Path [31m&[m Filename [31m&[m Network_Name[31m);[m
		  [01;34mif[m [01;34mnot[m Reuse [01;34mthen[m
		     [01;30mTrain[m[31m([mNetwork_Filename[31m.[m[01;34mall[m[31m,[m
			   Melodic_Samples[31m,[m
			   Reuse[31m,[m
			   [01;30mReal[m[31m([mConverged[31m),[m
			   Max_Epochs[31m);[m
		  [01;34mend[m [01;34mif[m[31m;[m
		  
	       [01;34mend[m Initialize[31m;[m	       
	       [01;34mexit[m[31m;[m
	    [01;34mend[m [01;34mselect[m[31m;[m
	 [01;34mend[m [01;34mloop[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
		  
		  [31m--Put_Line("Call respond for Bass with filename : " & Filename);[m
		  [31m--Put_Line("Call respond for Bass with path : " & Networks_Path & Filename & Network_Name);[m
		  
		  Bass_Pattern [31m:=[m [31m([m[01;34mothers[m [31m=>[m Null_Note[31m);[m
		  [01;30mInit[m[31m([mBass_Pattern[31m);[m      
		  Problem [31m:=[m Problem_Rand[31m;[m
		  [01;34mfor[m I [01;34min[m Word16_Index_Type [01;34mloop[m
		     [01;34mif[m I [31m=[m [35m8[m [01;34mthen[m			   			
			Response [31m:=[m [01;30mRespond[m[31m([mNetworks_Path [31m&[m Filename [31m&[m Network_Name[31m,[m Problem[31m);[m
			[01;34mfor[m J [01;34min[m Response'[01;34mRange[m [01;34mloop[m
			   [01;34mif[m [01;30mResponse[m[31m([mJ[31m)[m [31m>=[m [35m0.5[m [01;34mthen[m
			      [01;30mResponse[m[31m([mJ[31m)[m [31m:=[m [35m1.0[m[31m;[m
			      
			   [01;34melse[m
			      [01;30mResponse[m[31m([mJ[31m)[m [31m:=[m [35m0.0[m[31m;[m
			      
			   [01;34mend[m [01;34mif[m[31m;[m
			[01;34mend[m [01;34mloop[m[31m;[m
			[01;30mTo_Sentence[m[31m([mResponse[31m,[m I[31m,[m Bass_Pattern[31m);[m		     		     			   
			Problem [31m:=[m Problem_Rand[31m;[m
			[31m--  for I in Problem'Range loop[m
			[31m--  	  if response(I) = 1.0 then[m
			[31m--  	     Problem(I) := 1.0;[m
			[31m--  	  end if;[m
			[31m--  end loop;[m
		     [01;34mend[m [01;34mif[m[31m;[m
		  [01;34mend[m [01;34mloop[m[31m;[m
		  
		  [01;34mfor[m I [01;34min[m Bass_Pattern'[01;34mRange[m [01;34mloop[m		  
		     [01;30mBass_Pattern[m[31m([mI[31m).[mSens [31m:=[m  Value_Rand[31m.[m[01;30mRandom[m[31m([mValue_Gen[31m);[m
		     [01;30mBass_Pattern[m[31m([mI[31m).[mLength [31m:=[m [35m2[m[31m;[m
		     
		  [01;34mend[m [01;34mloop[m[31m;[m
		  
		  
		  
		  
		  
		  [31m--Text_Io.Put_Line("Data bass generate...");[m
		  [01;30mPattern[m[31m([mFrom [31m=>[m Bass_Pattern[31m,[m Channel [31m=>[m Channel[31m,[m seq [31m=>[m Seq[31m);[m
		  [31m--Text_Io.Put_Line("Data bass generated.");[m
	       [01;34mend[m Respond[31m;[m
	    [01;34mor[m
	       [01;34maccept[m [01;30mInitialize[m[31m([mFilename [31m:[m [01;34min[m [32mString[m[31m;[m Reuse [31m:[m [01;34min[m [32mBoolean[m[31m;[m Converged [31m:[m [01;34min[m [32mFloat[m[31m;[m Max_Epochs [31m:[m [01;34min[m Positive[31m)[m [01;34mdo[m
		  
		  [01;30mRand_Init[m[31m([mMelodic_Samples[31m);[m
		  
		  Network_Filename [31m:=[m [01;34mnew[m [32mString[m ' [31m([mNetworks_Path [31m&[m Filename [31m&[m Network_Name[31m);[m
		  
		  [01;30mTrain[m[31m([mNetwork_Filename[31m.[m[01;34mall[m[31m,[m
			Melodic_Samples[31m,[m
			Reuse[31m,[m
			[01;30mReal[m[31m([mConverged[31m),[m
			Max_Epochs[31m);[m
		  
		  
	       [01;34mend[m Initialize[31m;[m	       
	    [01;34mend[m [01;34mselect[m[31m;[m
	 [01;34mend[m [01;34mloop[m[31m;[m
      [01;34mend[m [01;34mloop[m[31m;[m      
   [01;34mend[m Bass_Gen[31m;[m

[01;34mend[m Libsens[31m.[mData[31m.[mbass[31m;[m
