[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.[mCC_Change[31m;[m        [01;34muse[m Libsens[31m.[mVirtual[31m.[mCC_Change[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 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.[mCtrl_Change [01;34mis[m
   
   [01;34mprocedure[m [01;30mInitialize[m[31m([mPlugin_Process [31m:[m [01;34min[m Ctrl_Change_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 Ctrl_Change_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 Ctrl_Change_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 Ctrl_Change_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 Ctrl_Change_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
      
      
      Bars_Max [31m:[m Positive [31m:=[m [35m1[m[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([mCtrl_Change[31m.[mPlugin[31m.[mId[31m)[m [31m&[m
			     [31m" ready for process "[m [31m&[m
			     Plugin_Enum'[01;30mImage[m[31m([mCtrl_Change[31m.[mPlugin[31m.[mClass[31m));[m
		  Ctrl_Change_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
		  Ctrl_Change_Process[31m.[mTempo [31m:=[m Tempo[31m;[m
		  Ctrl_Change_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
		  Ctrl_Change_Process[31m.[mStart_Time [31m:=[m Start_Time[31m;[m		  
		  Bars_Max [31m:=[m [01;30mCC_Change_Plugin_Record[m[31m([mCtrl_Change[31m.[mPlugin[31m.[m[01;34mall[m[31m).[mBars_Max[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("Ctrl_Change started ::= MIMI 0.1.0");[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;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
		  Ctrl_Change_Process[31m.[mTempo [31m:=[m Tempo[31m;[m
		  Ctrl_Change_Process[31m.[mSignature [31m:=[m Signature[31m;[m		  
		  
		  Bars_Max [31m:=[m [01;30mCC_Change_Plugin_Record[m[31m([mCtrl_Change[31m.[mPlugin[31m.[m[01;34mall[m[31m).[mBars_Max[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("Ctrl_Change started ::= MIMI 0.1.1");[m
	       [31m--if current_form = Ctrl_Change.plugin.played_form then[m
	       [31m--  if Ctrl_Change.Plugin.Algo = Null_Algo then[m
	       [01;34mif[m [31m([m[01;34mnot[m Ctrl_Change[31m.[mplugin[31m.[mmutted[31m)[m 
		 [01;34mand[m [01;30mis_formed[m[31m([mOptions[31m.[mtrue_table[31m,[m			       
			       Ctrl_Change[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("Ctrl change started ::= MIMI 0.1.2");[m
		  [01;34mfor[m voice_id [01;34min[m [01;30mCC_change_Plugin_Record[m[31m([mCtrl_Change[31m.[mPlugin[31m.[m[01;34mall[m[31m).[msequencer'[01;34mRange[m [01;34mloop[m
		     
		     
		     [01;34mif[m bar_beat[31m.[mbar [31m=[m [01;30mCC_Change_Plugin_Record[m[31m([mCtrl_Change[31m.[mPlugin[31m.[m[01;34mall[m[31m).[m[01;30mSequencer[m[31m([mvoice_id[31m).[mbar [01;34mthen[m
			
			[01;34mif[m [31m([m[01;30mCC_Change_Plugin_Record[m[31m([mCtrl_Change[31m.[mPlugin[31m.[m[01;34mall[m[31m).[m[01;30mSequencer[m[31m([mvoice_id[31m).[mnumber [31m=[m bar_beat[31m.[mtime_number[31m)[m [01;34mand[m
			  [31m([m[01;30mCC_Change_Plugin_Record[m[31m([mCtrl_Change[31m.[mPlugin[31m.[m[01;34mall[m[31m).[m[01;30mSequencer[m[31m([mvoice_id[31m).[mstep [31m=[m bar_beat[31m.[mtime_unit[31m)[m [01;34mthen[m
			   
			   
			   
			   [01;34mif[m [01;30mCC_Change_Plugin_Record[m[31m([mCtrl_Change[31m.[mPlugin[31m.[m[01;34mall[m[31m).[m[01;30msequencer[m[31m([mvoice_id[31m).[mplayed [01;34mthen[m
			      
			      [31m--Put_Line("tutu 1.3");[m
			      [01;34mdeclare[m
				 
				 date [31m:[m time [31m:=[m start_time[31m;[m
				 
				 Control_Change  [31m:[m Long [31m:=[m [01;30mTo_Long[m[31m([m[01;30mControlcommand[m[31m([m[01;30mChannel_Type[m[31m([mCtrl_Change[31m.[mPlugin[31m.[mCh_Id[31m-[m[35m1[m[31m),[m 
										  [01;30mLong[m[31m([m[01;30mCC_Change_Plugin_Record[m[31m([mCtrl_Change[31m.[mPlugin[31m.[m[01;34mall[m[31m).[m[01;30mSequencer[m[31m([mVoice_Id[31m).[mCtrl_Num[31m),[m
										  [01;30mLong[m[31m([m[01;30mCC_Change_Plugin_Record[m[31m([mCtrl_Change[31m.[mPlugin[31m.[m[01;34mall[m[31m).[m[01;30mSequencer[m[31m([mVoice_Id[31m).[mCtrl_Val[31m)));[m
				 
				 
				 
				 
			      [01;34mbegin[m
				 [31m--Put_Line("tutu 1.4");[m
				 [01;34mif[m Ctrl_Change[31m.[mplugin[31m.[mprinted [01;34mthen[m
				    [31m--Put_Line("tutu 1.4.1");[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([mCtrl_Change[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([mCtrl_Change[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([mControl_Change[31m))),[m
					  channel [31m=>[m [01;34mnew[m [32mstring[m [31m' (channel_type'[m[01;30mimage[m[31m([m[01;30mchannel_of[m[31m([mControl_Change[31m))),[m
					  data1 [31m=>[m [01;34mnew[m [32mstring[m [31m' (interfaces.c.long'[m[01;30mimage[m[31m([m[01;30mdata1[m[31m([mControl_Change[31m))),[m
					  data2 [31m=>[m [01;34mnew[m [32mstring[m [31m' (interfaces.c.long'[m[01;30mimage[m[31m([m[01;30mdata2[m[31m([mControl_Change[31m))),[m
					  hour [31m=>[m [01;34mnew[m [32mstring[m ' [31m([mformatting[31m.[m[01;30mimage[m[31m([mdate[31m,[m true[31m)),[m
					  hexa_sum [31m=>[m [01;34mnew[m [32mstring[m ' [31m([m[01;30mhex_image[m[31m([mControl_Change[31m)),[m
					  long_sum [31m=>[m [01;34mnew[m [32mstring[m [31m' (long'[m[01;30mimage[m[31m([mControl_Change[31m)));[m
				    [01;34mbegin[m
				       [31m--Put_Line("tutu 1.4.1.0");[m
				       [31m--print(printed_message.all);[m
				       
				       Ctrl_Change[31m.[mbox[31m.[m[01;30mreceive[m[31m([mprinted_message[31m);[m
				       [31m--Put_Line("messages sended to message box");[m
				       
				    [01;34mend[m[31m;[m
				    [31m--Put_Line("tutu 1.4.2");[m
				    
				    [31m--Put_Line("tutu 1.4.3");[m
				 [01;34mend[m [01;34mif[m[31m;[m
				 [31m--Put_Line("tutu 1.5");[m
				 
				 Ctrl_Change[31m.[mEvent_Process[31m.[m[01;30mReceive[m[31m([mCtrl_Change[31m.[mplugin[31m.[mDevice_Id[31m,[m date[31m,[m Control_Change[31m,[m [35m0.0[m[31m,[m tempo[31m);[m
				 [31m--Put_Line("tutu 1.6");[m
				 [31m--Put_Line("tutu 1.7");[m
			      [01;34mend[m[31m;[m
			   [01;34mend[m [01;34mif[m[31m;[m
			   
			[01;34mend[m [01;34mif[m[31m;[m 
			
		     [01;34melsif[m [01;30mCC_Change_Plugin_Record[m[31m([mCtrl_Change[31m.[mPlugin[31m.[m[01;34mall[m[31m).[m[01;30msequencer[m[31m([mvoice_id[31m).[min_loop [01;34mand[m [01;34mthen[m
		       [31m((([mbar_beat[31m.[mbar[31m-[m[35m1[m[31m)[m [01;34mmod[m bars_max[31m)+[m[35m1[m [31m=[m [01;30mCC_Change_Plugin_Record[m[31m([mCtrl_Change[31m.[mPlugin[31m.[m[01;34mall[m[31m).[m[01;30msequencer[m[31m([mvoice_id[31m).[mbar[31m)[m [01;34mthen[m
			
			
			[01;34mif[m [31m([m[01;30mCC_Change_Plugin_Record[m[31m([mCtrl_Change[31m.[mPlugin[31m.[m[01;34mall[m[31m).[m[01;30msequencer[m[31m([mvoice_id[31m).[mnumber [31m=[m bar_beat[31m.[mtime_number[31m)[m [01;34mand[m
			  [31m([m[01;30mCC_Change_Plugin_Record[m[31m([mCtrl_Change[31m.[mPlugin[31m.[m[01;34mall[m[31m).[m[01;30msequencer[m[31m([mvoice_id[31m).[mstep [31m=[m bar_beat[31m.[mtime_unit[31m)[m [01;34mthen[m
			   
			   
			   [01;34mif[m [01;30mCC_Change_Plugin_Record[m[31m([mCtrl_Change[31m.[mPlugin[31m.[m[01;34mall[m[31m).[m[01;30msequencer[m[31m([mvoice_id[31m).[mplayed [01;34mthen[m
			      
			      
			      [31m--Put_Line("tatata 1.3");[m
			      [01;34mdeclare[m
				 
				 date [31m:[m time [31m:=[m start_time[31m;[m
				 Control_Change  [31m:[m Long [31m:=[m [01;30mTo_Long[m[31m([m[01;30mControlcommand[m[31m([m[01;30mChannel_Type[m[31m([mCtrl_Change[31m.[mPlugin[31m.[mCh_Id[31m-[m[35m1[m[31m),[m 
										  [01;30mLong[m[31m([m[01;30mCC_Change_Plugin_Record[m[31m([mCtrl_Change[31m.[mPlugin[31m.[m[01;34mall[m[31m).[m[01;30mSequencer[m[31m([mVoice_Id[31m).[mCtrl_Num[31m),[m
										  [01;30mLong[m[31m([m[01;30mCC_Change_Plugin_Record[m[31m([mCtrl_Change[31m.[mPlugin[31m.[m[01;34mall[m[31m).[m[01;30mSequencer[m[31m([mVoice_Id[31m).[mCtrl_Val[31m)));[m
			      [01;34mbegin[m
				 [31m--Put_Line("tatata 1.4");[m
				 [01;34mif[m Ctrl_Change[31m.[mplugin[31m.[mprinted [01;34mthen[m
				    [31m--Put_Line("tatata 1.4.1");[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([mCtrl_Change[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([mCtrl_Change[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([mControl_Change[31m))),[m
					  channel [31m=>[m [01;34mnew[m [32mstring[m [31m' (channel_type'[m[01;30mimage[m[31m([m[01;30mchannel_of[m[31m([mControl_Change[31m))),[m
					  data1 [31m=>[m [01;34mnew[m [32mstring[m [31m' (interfaces.c.long'[m[01;30mimage[m[31m([m[01;30mdata1[m[31m([mControl_Change[31m))),[m
					  data2 [31m=>[m [01;34mnew[m [32mstring[m [31m' (interfaces.c.long'[m[01;30mimage[m[31m([m[01;30mdata2[m[31m([mControl_Change[31m))),[m
					  hour [31m=>[m [01;34mnew[m [32mstring[m ' [31m([mformatting[31m.[m[01;30mimage[m[31m([mdate[31m,[m true[31m)),[m
					  hexa_sum [31m=>[m [01;34mnew[m [32mstring[m ' [31m([m[01;30mhex_image[m[31m([mControl_Change[31m)),[m
					  long_sum [31m=>[m [01;34mnew[m [32mstring[m [31m' (long'[m[01;30mimage[m[31m([mControl_Change[31m)));[m
				    [01;34mbegin[m
				       [31m--Put_Line("tatata 1.4.1.0");[m
				       [31m--print(printed_message.all);[m
				       
				       Ctrl_Change[31m.[mbox[31m.[m[01;30mreceive[m[31m([mprinted_message[31m);[m
				       [31m--Put_Line("messages sended to message box");[m
				       
				    [01;34mend[m[31m;[m
				    [31m--Put_Line("tatata 1.4.2");[m
				    
				    [31m--Put_Line("tatata 1.4.3");[m
				 [01;34mend[m [01;34mif[m[31m;[m
				 [31m--Put_Line("tatata 1.5");				       [m
				 Ctrl_Change[31m.[mEvent_Process[31m.[m[01;30mReceive[m[31m([mCtrl_Change[31m.[mplugin[31m.[mDevice_Id[31m,[m date[31m,[m Control_Change[31m,[m [35m0.0[m[31m,[m tempo[31m);[m
				 [31m--Put_Line("tatata 1.6");				 [m
				 [31m--Put_Line("tatata 1.7");[m
			      [01;34mend[m[31m;[m
			      
			   [01;34mend[m [01;34mif[m[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
		  [31m--Put_Line("tatata 3");		     		     [m
	       [01;34melse[m
		  start_time [31m:=[m start_time [31m+[m Quantum[31m;[m
	       [01;34mend[m [01;34mif[m[31m;[m
	       [31m-- end if;[m
	       [31m--   end if;[m
	       [31m--Put_Line("Ctrl_Change started ::= MIMI 0.1.275");[m
	    [01;34mend[m [01;34mselect[m[31m;[m	    
	    [01;30mNext[m[31m([mbar_beat[31m,[m Options[31m.[mTrack_length[31m,[m signature[31m.[mnumber[31m,[m signature[31m.[munit[31m);[m		  
	    start_time [31m:=[m start_time [31m+[m quantum[31m;[m	    
	    [31m--Put_Line("Ctrl_Change started ::= MIMI 0.1.276");[m
	 [01;34mend[m [01;34mloop[m[31m;[m
      [01;34mend[m [01;34mloop[m[31m;[m
   [01;34mend[m Ctrl_Change_Process[31m;[m
   
[01;34mend[m Libsens[31m.[mProcessing[31m.[mCtrl_Change[31m;[m
