[01;34mwith[m Gmface[31m.[mGm_Virtual[31m.[mGmface[31m;[m
[01;34muse[m Gmface[31m.[mGm_Virtual[31m.[mGmface[31m;[m

[01;34mwith[m Gmface[31m.[mGm_Virtual[31m.[mGmface[31m.[mGmface_Plugins[31m;[m
[01;34muse[m Gmface[31m.[mGm_Virtual[31m.[mGmface[31m.[mGmface_Plugins[31m;[m

[01;34mwith[m Gmface[31m.[mGm_Processing[31m.[mGmface[31m.[mGm_Step_Sequencer[31m;[m
[01;34muse[m Gmface[31m.[mGm_Processing[31m.[mGmface[31m.[mGm_Step_Sequencer[31m;[m

[01;34mwith[m Gmface[31m.[mGm_Processing[31m.[mGmface[31m.[mGm_Ctrl_Change[31m;[m
[01;34muse[m Gmface[31m.[mGm_Processing[31m.[mGmface[31m.[mGm_Ctrl_Change[31m;[m
[01;34mwith[m Gmface[31m.[mGm_Processing[31m.[mGmface[31m.[mGm_Prgm_Change[31m;[m
[01;34muse[m Gmface[31m.[mGm_Processing[31m.[mGmface[31m.[mGm_Prgm_Change[31m;[m

[01;34mwith[m Gmface[31m.[mGm_Processing[31m.[mGmface[31m.[mGm_Plugin_Processing[31m;[m
[01;34muse[m Gmface[31m.[mGm_Processing[31m.[mGmface[31m.[mGm_Plugin_Processing[31m;[m


[01;34mwith[m Gmface[31m.[mGm_Common[31m;[m                    [01;34muse[m Gmface[31m.[mGm_Common[31m;[m
[01;34mwith[m Gmface[31m.[mGm_MIDI[31m.[mDrivers[31m;[m              [01;34muse[m Gmface[31m.[mGm_MIDI[31m.[mDrivers[31m;[m

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

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



[01;34mpackage[m [01;34mbody[m Gmface[31m.[mGm_Processing[31m.[mGmface[31m.[mWork_Processing [01;34mis[m
   
   [01;34mfunction[m [01;30mProcess_Initialize[m[31m([mClass [31m:[m [01;34min[m Plugin_Enum[31m;[m
			       Plugin [31m:[m [01;34min[m Abstract_Plugin_Access[31m)[m [01;34mreturn[m Gm_Plugin_Processing_Access [01;34mis[m
      
      
      Gmface_Gm_Processing [31m:[m Gm_Plugin_Processing_Access[31m;[m
      
   [01;34mbegin[m
      
      [01;34mcase[m Class [01;34mis[m	 
	 [01;34mwhen[m Null_Plugin [31m=>[m
	    [01;34mnull[m[31m;[m
	 [01;34mwhen[m Step_Seq [31m=>[m
	    Gmface_Gm_Processing [31m:=[m [01;34mnew[m [01;30mStep_Sequencer_Processing[m[31m([mPlugin[31m);[m
	 [01;34mwhen[m CC_List [31m=>[m
	    Gmface_Gm_Processing [31m:=[m [01;34mnew[m [01;30mCtrl_change_Processing[m[31m([mPlugin[31m);[m
	 [01;34mwhen[m PC_List [31m=>[m
	    Gmface_Gm_Processing [31m:=[m [01;34mnew[m [01;30mPrgm_change_Processing[m[31m([mPlugin[31m);[m
	 [01;34mwhen[m [01;34mothers[m [31m=>[m
	    [01;34mnull[m[31m;[m
      [01;34mend[m [01;34mcase[m[31m;[m      
      [01;34mreturn[m Gmface_Gm_Processing[31m;[m
   [01;34mend[m Process_Initialize[31m;[m
   
   [01;34mtask[m [01;34mbody[m Work_Process [01;34mis[m
      
      
      [01;34mtask[m Band_Master_Driver [01;34mis[m
	 [01;34mentry[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;34mentry[m Stop[31m;[m
	 [01;34mentry[m Halt[31m;[m
	 [01;34mentry[m [01;30mEnd_Of_Track[m[31m([mVerax [31m:[m [01;34mout[m [32mBoolean[m[31m);[m
      [01;34mend[m Band_Master_Driver[31m;[m
      

      [01;34mtask[m [01;34mbody[m Band_Master_Driver [01;34mis[m

	 Quantum [31m:[m [32mDuration[m [31m:=[m [35m0.0[m[31m;[m                  
	 Bar_Beat [31m:[m Bar_Beat_Type[31m;[m
	 New_Signature[31m,[m Signature [31m:[m Time_Signature_Type [31m:=[m [31m([m[35m4[m[31m,[m [35m4[m[31m);[m
	 Tempo [31m:[m Tempo_Type [31m:=[m [35m120.0[m[31m;[m	 
	 
	 Form  [31m:[m Form_Index_Type [31m:=[m Form_Index_Type'First[31m;[m
	 Form_Mod [31m:[m Positive [31m:=[m [35m2[m[31m;[m	 	 
	 
	 
	 Break_Gen [31m:[m Break_Rand[31m.[mGenerator[31m;[m
	 Form_Gen  [31m:[m Form_Rand[31m.[mGenerator[31m;[m      
	 
	 
	 End_Of_Task [31m:[m [32mBoolean[m [31m:=[m False[31m;[m
	 Start_Time  [31m:[m Time [31m:=[m Clock[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;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
		     Band_Master_Driver[31m.[mTempo [31m:=[m Tempo[31m;[m
		     Processing[31m.[mWork[31m.[mStates[31m.[mStart_Time [31m:=[m Start_Time[31m;[m
		     Band_Master_Driver[31m.[mSignature [31m:=[m Signature[31m;[m
		     Band_Master_Driver[31m.[mStart_Time [31m:=[m Start_Time[31m;[m
		     Processing[31m.[mWork[31m.[mStates[31m.[mBar_Beat [31m:=[m [31m([m[35m1[m[31m,[m [35m1[m[31m,[m [35m1[m[31m);[m
		     Bar_Beat [31m:=[m [31m([m[35m1[m[31m,[m [35m1[m[31m,[m [35m1[m[31m);[m
		  [01;34mend[m Start[31m;[m		  
		  Text_Io[31m.[m[01;30mPut_Line[m[31m([m[31m"Band_Master Driver started"[m[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;34maccept[m Stop[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 [01;30mEnd_Of_Track[m[31m([mVerax [31m:[m [01;34mout[m [32mBoolean[m[31m)[m [01;34mdo[m
		     Verax [31m:=[m False[31m;[m
		  [01;34mend[m End_Of_Track[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;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
		     Band_Master_Driver[31m.[mTempo [31m:=[m Tempo[31m;[m
		     Band_Master_Driver[31m.[mStart_Time [31m:=[m Start_Time[31m;[m
		  [01;34mend[m Start[31m;[m
	       [01;34mor[m 
		  [01;34mdelay[m [01;34muntil[m Start_Time[31m;[m
		  
		  
		  [01;30mNEXT[m[31m([mProcessing[31m.[mWork[31m.[mStates[31m.[mBar_Beat[31m,[m Processing[31m.[mWork[31m.[mOptions[31m.[mTrack_length[31m,[m Processing[31m.[mWork[31m.[mOptions[31m.[mSignature[31m.[mNumber[31m,[m Processing[31m.[mWork[31m.[mOptions[31m.[mSignature[31m.[mUnit[31m);[m		  
		  [01;34mif[m Processing[31m.[mWork[31m.[mStates[31m.[mBar_Beat[31m.[mbar [31m=[m Processing[31m.[mWork[31m.[mOptions[31m.[mTrack_Length [01;34mthen[m
		     [01;34maccept[m [01;30mEnd_Of_Track[m[31m([mVerax [31m:[m [01;34mout[m [32mBoolean[m[31m)[m [01;34mdo[m
			Verax [31m:=[m True[31m;[m
		     [01;34mend[m End_Of_Track[31m;[m
		     Processing[31m.[mWork[31m.[mStates[31m.[mBar_Beat [31m:=[m [31m([m[35m1[m[31m,[m [35m1[m[31m,[m [35m1[m[31m);[m
		  [01;34mend[m [01;34mif[m[31m;[m
		  
		  [31m--Put_Line("Next Enter");[m
		  
		  [31m--Put_Line("TITI 2");[m
		  
		  [01;34mif[m Signature[31m.[mNumber [31m=[m  Processing[31m.[mWork[31m.[mStates[31m.[mBar_Beat[31m.[mTime_Number [01;34mand[m
		    Processing[31m.[mWork[31m.[mStates[31m.[mBar_Beat[31m.[mTime_unit [31m=[m [35m1[m [01;34mthen[m
		     [31m--Put_Line("TITI 3");[m
		     
			[01;34mif[m Form_Mod [31m=[m [35m7[m [01;34mthen[m
			   [01;30mPut_Line[m[31m([m[31m"Form Mod 7 entry..."[m[31m);[m
			   Processing[31m.[mWork[31m.[mOptions[31m.[mPrev_Break [31m:=[m Break_Rand[31m.[m[01;30mRandom[m[31m([mBreak_Gen[31m);[m
			   Processing[31m.[mWork[31m.[mOptions[31m.[mNext_Break [31m:=[m Break_Rand[31m.[m[01;30mRandom[m[31m([mBreak_Gen[31m);[m		  
			   
			   [01;30mPut_Line[m[31m([m[31m"Form Mod 7 out !"[m[31m);[m
			   Form_Mod [31m:=[m Form_Mod [31m+[m [35m1[m[31m;[m
			[01;34melsif[m Form_Mod [31m=[m [35m8[m [01;34mthen[m			   
			   Form_Mod [31m:=[m [35m1[m[31m;[m
			   [01;30mPut_Line[m[31m([m[31m"Form Mod 8 entry..."[m[31m);[m
			   Processing[31m.[mWork[31m.[mOptions[31m.[mPrev_Break [31m:=[m Break_Rand[31m.[m[01;30mRandom[m[31m([mBreak_Gen[31m);[m
			   Processing[31m.[mWork[31m.[mOptions[31m.[mNext_Break [31m:=[m Break_Rand[31m.[m[01;30mRandom[m[31m([mBreak_Gen[31m);[m		  
			   [01;30mPut_Line[m[31m([m[31m"Form Mod 8 out..."[m[31m);[m
			   [31m--  if Prgm = 15 then[m
			   [31m--     Prgm := 0;[m
			   [31m--  else[m
			   [31m--     Prgm := Prgm + 1;[m
			   [31m--  end if;[m
			   [31m--  Message := To_Long(Program_Change(0, Prgm));[m
			   [31m--  --for Id in Processing.Work.Driver_Set.Set'Range loop[m
			   [31m--     if Processing.Work.Driver_Set.Set(1) /= null and then				[m
			   [31m--  	Processing.Work.Driver_Set.Set(1) /= null then[m
			   [31m--  	 Processing.Work.Driver_Set.Set(1).Event_Process.Receive(Start_time, message, 0.02, Tempo);[m
			   [31m--     end if;[m
			   [31m--  --end loop;[m
			[01;34melse[m
			   Form_Mod [31m:=[m Form_Mod [31m+[m [35m1[m[31m;[m
			[01;34mend[m [01;34mif[m[31m;[m
			[31m--Text_Io.Put_Line("New Break...");[m
			
		  [01;34mend[m [01;34mif[m[31m;[m
		  Start_Time [31m:=[m Start_Time [31m+[m Quantum[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;30mPut_Line[m[31m([m[31m"Bandmaster halted."[m[31m);[m
      [01;34mend[m Band_Master_Driver[31m;[m
      
      
      Track_End   [31m:[m [32mBoolean[m [31m:=[m False[31m;[m
      End_Of_Task [31m:[m [32mBoolean[m [31m:=[m False[31m;[m      
      Initialized [31m:[m [32mBoolean[m [31m:=[m False[31m;[m

      
      Date [31m:[m Time [31m:=[m Clock[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 Initialize [01;34mdo[m		     
		  [01;30mPut_Line[m[31m([m[31m"Work ["[m [31m&[m Processing[31m.[mWork[31m.[mFilename[31m.[m[01;34mall[m [31m&[m [31m"] ready."[m[31m);[m
		  Initialized [31m:=[m  True[31m;[m
	       [01;34mend[m Initialize[31m;[m
	    [01;34mor[m
	       [01;34mwhen[m Initialized [31m=>[m
		  [01;34maccept[m Start [01;34mdo[m
		     [01;34mfor[m Plugin_Id [01;34min[m Processing[31m.[mWork[31m.[mPlugins'[01;34mRange[m [01;34mloop[m			
			[01;34mif[m Processing[31m.[mWork[31m.[m[01;30mPlugins[m[31m([mPlugin_Id[31m)[m [31m/=[m [01;34mnull[m [01;34mand[m [01;34mthen[m
			  Processing[31m.[mWork[31m.[m[01;30mPlugins[m[31m([mPlugin_Id[31m).[mClass [31m/=[m Null_Plugin [01;34mthen[m
			   [31m--  if Processing.Processes(Plugin_Id) = null then[m
			   Processing[31m.[m[01;30mProcesses[m[31m([mPlugin_Id[31m)[m [31m:=[m 
			     [01;30mProcess_Initialize[m  [31m([mProcessing[31m.[mWork[31m.[m[01;30mPlugins[m[31m([mPlugin_Id[31m).[mClass[31m,[m
						  Processing[31m.[mWork[31m.[m[01;30mPlugins[m[31m([mPlugin_Id[31m));[m
			   
			   Processing[31m.[m[01;30mProcesses[m[31m([mPlugin_Id[31m).[mInstruments [31m:=[m Processing[31m.[mInstruments[31m;[m
			   Processing[31m.[m[01;30mProcesses[m[31m([mPlugin_Id[31m).[mBox [31m:=[m Processing[31m.[mBox'[01;34maccess[m[31m;[m
			[01;34mend[m [01;34mif[m[31m;[m
		     [01;34mend[m [01;34mloop[m[31m;[m
		     
		     
		     [01;34mfor[m Plugin_Id [01;34min[m Processing[31m.[mWork[31m.[mPlugins'[01;34mRange[m [01;34mloop[m			   			   
			
			[01;34mif[m Processing[31m.[mWork[31m.[m[01;30mPlugins[m[31m([mPlugin_Id[31m)[m [31m/=[m [01;34mnull[m [01;34mand[m [01;34mthen[m
			  Processing[31m.[mWork[31m.[m[01;30mPlugins[m[31m([mPlugin_Id[31m).[mClass [31m/=[m Null_Plugin [01;34mthen[m			      
			   
			   [01;34mif[m Processing[31m.[m[01;30mProcesses[m[31m([mPlugin_Id[31m)[m [31m/=[m [01;34mnull[m [01;34mthen[m				 
			      [31m--Put_Line("MIMI 0.1");[m
			      
			      Processing[31m.[m[01;30mProcesses[m[31m([mPlugin_Id[31m).[m[01;30mInitialize[m[31m([m[01;30mWork_Options_Record[m[31m([mProcessing[31m.[mWork[31m.[mOptions[31m.[m[01;34mall[m[31m)[m'[01;34maccess[m[31m);[m
			      
			      [31m--  Initialize(Processing.Processes(Plugin_Id).all,[m
			      [31m--  		 Work_Options_Record(Processing.Work.Options.all)'Access);[m
			      [31m--Put_Line("MIMI 0.2");[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;30mNew_Line[m[31m([m[35m3[m[31m);[m
		     [01;30mPut_Line[m[31m([m[31m"Starting project name : "[m [31m&[m Processing[31m.[mWork[31m.[mOptions[31m.[mFilename[31m.[m[01;34mall[m[31m);[m
		     [01;30mNew_Line[m[31m([m[35m3[m[31m);[m
		     
		     Date [31m:=[m Clock[31m;[m
		     Processing[31m.[mWork[31m.[mStates[31m.[mStart_Time [31m:=[m Date[31m;[m
		     
		     Band_Master_Driver[31m.[m[01;30mStart[m[31m([mdate[31m,[m Processing[31m.[mWork[31m.[mOptions[31m.[mTempo[31m,[m Processing[31m.[mWork[31m.[mOptions[31m.[mSignature[31m);[m
		     [31m--Put_Line("MAMA 0.0");[m
		     [01;34mfor[m Device_Id [01;34min[m [35m1[m[31m..[mProcessing[31m.[mInstruments[31m.[mInst_Last [01;34mloop[m
			[01;34mif[m Processing[31m.[mInstruments[31m.[m[01;30mOrchester[m[31m([m[01;30mInstrument_Id[m[31m([mDevice_Id[31m))[m [31m/=[m [01;34mnull[m [01;34mand[m [01;34mthen[m
			  Processing[31m.[mInstruments[31m.[m[01;30mOrchester[m[31m([m[01;30mInstrument_Id[m[31m([mDevice_Id[31m)).[mOutput_Device_Driver [31m/=[m [01;34mnull[m [01;34mthen[m			
			    [31m--Put_Line("MAMA 0.2");[m
			   Processing[31m.[mInstruments[31m.[m[01;30mOrchester[m[31m([m[01;30mInstrument_Id[m[31m([mDevice_Id[31m)).[mTempo_Sync[31m.[m[01;30mStart[m[31m([mDate[31m,[m Processing[31m.[mWork[31m.[mOptions[31m.[mTempo[31m,[m Processing[31m.[mWork[31m.[mOptions[31m.[mSignature[31m);[m
			   [31m--Put_Line("MAMA 0.3");[m
			   Processing[31m.[mInstruments[31m.[m[01;30mOrchester[m[31m([m[01;30mInstrument_Id[m[31m([mDevice_Id[31m)).[mMod_Seq[31m.[m[01;30mStart[m[31m([mProcessing[31m.[mWork[31m.[mOptions[31m.[mTempo[31m,[m Processing[31m.[mWork[31m.[mOptions[31m.[mSignature[31m);[m
			   [31m--Put_Line("MAMA 0.4");[m
			[01;34mend[m [01;34mif[m[31m;[m
		     [01;34mend[m [01;34mloop[m[31m;[m
		     
		     
		     
		     
		     
		     [01;34mfor[m Plugin_Id [01;34min[m Processing[31m.[mWork[31m.[mPlugins'[01;34mRange[m [01;34mloop[m			   			   
			
			[01;34mif[m Processing[31m.[mWork[31m.[m[01;30mPlugins[m[31m([mPlugin_Id[31m)[m [31m/=[m [01;34mnull[m [01;34mand[m [01;34mthen[m
			  Processing[31m.[mWork[31m.[m[01;30mPlugins[m[31m([mPlugin_Id[31m).[mClass [31m/=[m Null_Plugin [01;34mthen[m			      
			   
			   [01;34mif[m Processing[31m.[m[01;30mProcesses[m[31m([mPlugin_Id[31m)[m [31m/=[m [01;34mnull[m [01;34mthen[m				 
			      [31m--Put_Line("MIMI 0.1");[m
			      Processing[31m.[m[01;30mProcesses[m[31m([mPlugin_Id[31m).[m[01;30mStart[m[31m([mDate[31m,[m Processing[31m.[mWork[31m.[mOptions[31m.[mTempo[31m,[m Processing[31m.[mWork[31m.[mOptions[31m.[mSignature[31m);[m
			      [31m--Put_Line("MIMI 0.2");[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("MAMA 1.0");[m
		     Processing[31m.[mWork[31m.[mStarted [31m:=[m True[31m;[m		  
		     [31m--Put_Line("MAMA 2.0");[m
		     
		     [31m--Put_Line("MAMA 3.0");[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;34mwhen[m Track_End [31m=>[m
		  [01;34maccept[m End_Of_Process[31m;[m
	    [01;34mor[m
	       [01;34maccept[m [01;30mMod_Rec[m[31m([mStatus [31m:[m [01;34min[m [32mBoolean[m[31m)[m [01;34mdo[m
		  [01;34mfor[m Device_Id [01;34min[m [35m1[m[31m..[mProcessing[31m.[mInstruments[31m.[mInst_Last [01;34mloop[m
		     [01;34mif[m Processing[31m.[mInstruments[31m.[m[01;30mOrchester[m[31m([m[01;30mInstrument_Id[m[31m([mDevice_Id[31m))[m [31m/=[m [01;34mnull[m [01;34mand[m [01;34mthen[m
		       Processing[31m.[mInstruments[31m.[m[01;30mOrchester[m[31m([m[01;30mInstrument_Id[m[31m([mDevice_Id[31m)).[mOutput_Device_Driver [31m/=[m [01;34mnull[m [01;34mthen[m
			Processing[31m.[mInstruments[31m.[m[01;30mOrchester[m[31m([m[01;30mInstrument_Id[m[31m([mDevice_Id[31m)).[mMod_Seq[31m.[m[01;30mRec[m[31m([mStatus[31m);[m
		     [01;34mend[m [01;34mif[m[31m;[m		     
		  [01;34mend[m [01;34mloop[m[31m;[m
	       [01;34mend[m Mod_Rec[31m;[m
	    [01;34mor[m
	       [01;34maccept[m [01;30mMod_Play[m[31m([mStatus [31m:[m [01;34min[m [32mBoolean[m[31m)[m [01;34mdo[m
		  [01;34mfor[m Device_Id [01;34min[m [35m1[m[31m..[mProcessing[31m.[mInstruments[31m.[mInst_Last [01;34mloop[m
		     [01;34mif[m Processing[31m.[mInstruments[31m.[m[01;30mOrchester[m[31m([m[01;30mInstrument_Id[m[31m([mDevice_Id[31m))[m [31m/=[m [01;34mnull[m [01;34mand[m [01;34mthen[m
		       Processing[31m.[mInstruments[31m.[m[01;30mOrchester[m[31m([m[01;30mInstrument_Id[m[31m([mDevice_Id[31m)).[mOutput_Device_Driver [31m/=[m [01;34mnull[m [01;34mthen[m
			Processing[31m.[mInstruments[31m.[m[01;30mOrchester[m[31m([m[01;30mInstrument_Id[m[31m([mDevice_Id[31m)).[mMod_Seq[31m.[m[01;30mPlay[m[31m([mStatus[31m);[m
		     [01;34mend[m [01;34mif[m[31m;[m		     
		  [01;34mend[m [01;34mloop[m[31m;[m
	       [01;34mend[m Mod_Play[31m;[m
	    [01;34mor[m
	       [01;34maccept[m Mod_Reset [01;34mdo[m
		  [01;34mfor[m Device_Id [01;34min[m [35m1[m[31m..[mProcessing[31m.[mInstruments[31m.[mInst_Last [01;34mloop[m
		     [01;34mif[m Processing[31m.[mInstruments[31m.[m[01;30mOrchester[m[31m([m[01;30mInstrument_Id[m[31m([mDevice_Id[31m))[m [31m/=[m [01;34mnull[m [01;34mand[m [01;34mthen[m
		       Processing[31m.[mInstruments[31m.[m[01;30mOrchester[m[31m([m[01;30mInstrument_Id[m[31m([mDevice_Id[31m)).[mOutput_Device_Driver [31m/=[m [01;34mnull[m [01;34mthen[m
			Processing[31m.[mInstruments[31m.[m[01;30mOrchester[m[31m([m[01;30mInstrument_Id[m[31m([mDevice_Id[31m)).[mMod_Seq[31m.[mReset[31m;[m
		     [01;34mend[m [01;34mif[m[31m;[m		     
		  [01;34mend[m [01;34mloop[m[31m;[m
	       [01;34mend[m Mod_Reset[31m;[m
	    [01;34mor[m
	       [01;34maccept[m Halt [01;34mdo[m
		  Band_Master_Driver[31m.[mHalt[31m;[m
		  [01;34mfor[m Plugin_Id [01;34min[m Processing[31m.[mWork[31m.[mPlugins'[01;34mRange[m [01;34mloop[m			   			   
		     [01;34mif[m Processing[31m.[mWork[31m.[m[01;30mPlugins[m[31m([mPlugin_Id[31m)[m [31m/=[m [01;34mnull[m [01;34mand[m [01;34mthen[m
			  Processing[31m.[mWork[31m.[m[01;30mPlugins[m[31m([mPlugin_Id[31m).[mClass [31m/=[m Null_Plugin [01;34mthen[m			      
			[01;34mif[m Processing[31m.[m[01;30mProcesses[m[31m([mPlugin_Id[31m)[m [31m/=[m [01;34mnull[m [01;34mthen[m			   
			   Processing[31m.[m[01;30mProcesses[m[31m([mPlugin_Id[31m).[mEvent_Process[31m.[mHalt[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		  
		  End_Of_Task [31m:=[m True[31m;[m
	       [01;34mend[m Halt[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 Initialize [01;34mdo[m		     
		  [01;30mPut_Line[m[31m([m[31m"Work ["[m [31m&[m Processing[31m.[mWork[31m.[mFilename[31m.[m[01;34mall[m [31m&[m [31m"] ready."[m[31m);[m
		  Initialized [31m:=[m  True[31m;[m
	       [01;34mend[m Initialize[31m;[m
	    [01;34mor[m
	       [01;34maccept[m Start [01;34mdo[m
		  [01;34mfor[m Device_Id [01;34min[m [35m1[m[31m..[mProcessing[31m.[mInstruments[31m.[mInst_Last [01;34mloop[m
			[01;34mif[m Processing[31m.[mInstruments[31m.[m[01;30mOrchester[m[31m([m[01;30mInstrument_Id[m[31m([mDevice_Id[31m))[m [31m/=[m [01;34mnull[m [01;34mand[m [01;34mthen[m
			  Processing[31m.[mInstruments[31m.[m[01;30mOrchester[m[31m([m[01;30mInstrument_Id[m[31m([mDevice_Id[31m)).[mOutput_Device_Driver [31m/=[m [01;34mnull[m [01;34mthen[m			
			    [31m--Put_Line("MAMA 0.2");[m
			   Processing[31m.[mInstruments[31m.[m[01;30mOrchester[m[31m([m[01;30mInstrument_Id[m[31m([mDevice_Id[31m)).[mTempo_Sync[31m.[m[01;30mStart[m[31m([mDate[31m,[m Processing[31m.[mWork[31m.[mOptions[31m.[mTempo[31m,[m Processing[31m.[mWork[31m.[mOptions[31m.[mSignature[31m);[m
			   [31m--Put_Line("MAMA 0.3");[m
			   Processing[31m.[mInstruments[31m.[m[01;30mOrchester[m[31m([m[01;30mInstrument_Id[m[31m([mDevice_Id[31m)).[mMod_Seq[31m.[m[01;30mStart[m[31m([mProcessing[31m.[mWork[31m.[mOptions[31m.[mTempo[31m,[m Processing[31m.[mWork[31m.[mOptions[31m.[mSignature[31m);[m
			   [31m--Put_Line("MAMA 0.4");[m
			[01;34mend[m [01;34mif[m[31m;[m
		     [01;34mend[m [01;34mloop[m[31m;[m
		     [01;34mfor[m Plugin_Id [01;34min[m Processing[31m.[mWork[31m.[mPlugins'[01;34mRange[m [01;34mloop[m			   			   
			
			[01;34mif[m Processing[31m.[mWork[31m.[m[01;30mPlugins[m[31m([mPlugin_Id[31m)[m [31m/=[m [01;34mnull[m [01;34mand[m [01;34mthen[m
			  Processing[31m.[mWork[31m.[m[01;30mPlugins[m[31m([mPlugin_Id[31m).[mClass [31m/=[m Null_Plugin [01;34mthen[m			      
			   
			   [01;34mif[m Processing[31m.[m[01;30mProcesses[m[31m([mPlugin_Id[31m)[m [31m/=[m [01;34mnull[m [01;34mthen[m				 
			      [31m--Put_Line("MIMI 0.1");[m
			      Processing[31m.[m[01;30mProcesses[m[31m([mPlugin_Id[31m).[m[01;30mStart[m[31m([mDate[31m,[m Processing[31m.[mWork[31m.[mOptions[31m.[mTempo[31m,[m Processing[31m.[mWork[31m.[mOptions[31m.[mSignature[31m);[m
			      [31m--Put_Line("MIMI 0.2");[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
		     Band_Master_Driver[31m.[m[01;30mStart[m[31m([mdate[31m,[m Processing[31m.[mWork[31m.[mOptions[31m.[mTempo[31m,[m Processing[31m.[mWork[31m.[mOptions[31m.[mSignature[31m);[m
	       [01;34mend[m Start[31m;[m
	    [01;34mor[m
	       [01;34maccept[m Stop[31m;[m
	       Band_Master_Driver[31m.[mStop[31m;[m
	       [01;34mfor[m Device_Id [01;34min[m [35m1[m[31m..[mProcessing[31m.[mInstruments[31m.[mInst_Last [01;34mloop[m
		  [01;34mif[m Processing[31m.[mInstruments[31m.[m[01;30mOrchester[m[31m([m[01;30mInstrument_Id[m[31m([mDevice_Id[31m))[m [31m/=[m [01;34mnull[m [01;34mand[m [01;34mthen[m
		    Processing[31m.[mInstruments[31m.[m[01;30mOrchester[m[31m([m[01;30mInstrument_Id[m[31m([mDevice_Id[31m)).[mOutput_Device_Driver [31m/=[m [01;34mnull[m [01;34mthen[m			
		     Processing[31m.[mInstruments[31m.[m[01;30mOrchester[m[31m([m[01;30mInstrument_Id[m[31m([mDevice_Id[31m)).[mTempo_Sync[31m.[mStop[31m;[m
		     Processing[31m.[mInstruments[31m.[m[01;30mOrchester[m[31m([m[01;30mInstrument_Id[m[31m([mDevice_Id[31m)).[mMod_Seq[31m.[mStop[31m;[m
		  [01;34mend[m [01;34mif[m[31m;[m
	       [01;34mend[m [01;34mloop[m[31m;[m
	       [01;34mfor[m Plugin_Id [01;34min[m Processing[31m.[mWork[31m.[mPlugins'[01;34mRange[m [01;34mloop[m			   			   
		  [01;34mif[m Processing[31m.[mWork[31m.[m[01;30mPlugins[m[31m([mPlugin_Id[31m)[m [31m/=[m [01;34mnull[m [01;34mand[m [01;34mthen[m
			  Processing[31m.[mWork[31m.[m[01;30mPlugins[m[31m([mPlugin_Id[31m).[mClass [31m/=[m Null_Plugin [01;34mthen[m			      
		     [01;34mif[m Processing[31m.[m[01;30mProcesses[m[31m([mPlugin_Id[31m)[m [31m/=[m [01;34mnull[m [01;34mthen[m
			Processing[31m.[m[01;30mProcesses[m[31m([mPlugin_Id[31m).[mhalt[31m;[m
			Processing[31m.[m[01;30mProcesses[m[31m([mPlugin_Id[31m).[mEvent_Process[31m.[mhalt[31m;[m
			Processing[31m.[m[01;30mProcesses[m[31m([mPlugin_Id[31m)[m [31m:=[m [01;34mnull[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
	       Processing[31m.[mWork[31m.[mStarted [31m:=[m False[31m;[m		  
	       
	       [01;34mexit[m[31m;[m
	    [01;34mor[m
	       [01;34mwhen[m Track_End [31m=>[m
		  [01;34maccept[m End_Of_Process[31m;[m
	    [01;34mor[m

	       [01;34maccept[m [01;30mMod_Rec[m[31m([mStatus [31m:[m [01;34min[m [32mBoolean[m[31m)[m [01;34mdo[m
		  [01;34mfor[m Device_Id [01;34min[m [35m1[m[31m..[mProcessing[31m.[mInstruments[31m.[mInst_Last [01;34mloop[m
		     [01;34mif[m Processing[31m.[mInstruments[31m.[m[01;30mOrchester[m[31m([m[01;30mInstrument_Id[m[31m([mDevice_Id[31m))[m [31m/=[m [01;34mnull[m [01;34mand[m [01;34mthen[m
		       Processing[31m.[mInstruments[31m.[m[01;30mOrchester[m[31m([m[01;30mInstrument_Id[m[31m([mDevice_Id[31m)).[mOutput_Device_Driver [31m/=[m [01;34mnull[m [01;34mthen[m
			Processing[31m.[mInstruments[31m.[m[01;30mOrchester[m[31m([m[01;30mInstrument_Id[m[31m([mDevice_Id[31m)).[mMod_Seq[31m.[m[01;30mRec[m[31m([mStatus[31m);[m
		     [01;34mend[m [01;34mif[m[31m;[m		     
		  [01;34mend[m [01;34mloop[m[31m;[m
	       [01;34mend[m Mod_Rec[31m;[m
	    [01;34mor[m
	       [01;34maccept[m [01;30mMod_Play[m[31m([mStatus [31m:[m [01;34min[m [32mBoolean[m[31m)[m [01;34mdo[m
		  [01;34mfor[m Device_Id [01;34min[m [35m1[m[31m..[mProcessing[31m.[mInstruments[31m.[mInst_Last [01;34mloop[m
		     [01;34mif[m Processing[31m.[mInstruments[31m.[m[01;30mOrchester[m[31m([m[01;30mInstrument_Id[m[31m([mDevice_Id[31m))[m [31m/=[m [01;34mnull[m [01;34mand[m [01;34mthen[m
		       Processing[31m.[mInstruments[31m.[m[01;30mOrchester[m[31m([m[01;30mInstrument_Id[m[31m([mDevice_Id[31m)).[mOutput_Device_Driver [31m/=[m [01;34mnull[m [01;34mthen[m
			Processing[31m.[mInstruments[31m.[m[01;30mOrchester[m[31m([m[01;30mInstrument_Id[m[31m([mDevice_Id[31m)).[mMod_Seq[31m.[m[01;30mPlay[m[31m([mStatus[31m);[m
		     [01;34mend[m [01;34mif[m[31m;[m		     
		  [01;34mend[m [01;34mloop[m[31m;[m
	       [01;34mend[m Mod_Play[31m;[m
	    [01;34mor[m
	       [01;34maccept[m Mod_Reset [01;34mdo[m
		  [01;34mfor[m Device_Id [01;34min[m [35m1[m[31m..[mProcessing[31m.[mInstruments[31m.[mInst_Last [01;34mloop[m
		     [01;34mif[m Processing[31m.[mInstruments[31m.[m[01;30mOrchester[m[31m([m[01;30mInstrument_Id[m[31m([mDevice_Id[31m))[m [31m/=[m [01;34mnull[m [01;34mand[m [01;34mthen[m
		       Processing[31m.[mInstruments[31m.[m[01;30mOrchester[m[31m([m[01;30mInstrument_Id[m[31m([mDevice_Id[31m)).[mOutput_Device_Driver [31m/=[m [01;34mnull[m [01;34mthen[m
			Processing[31m.[mInstruments[31m.[m[01;30mOrchester[m[31m([m[01;30mInstrument_Id[m[31m([mDevice_Id[31m)).[mMod_Seq[31m.[mReset[31m;[m
		     [01;34mend[m [01;34mif[m[31m;[m		     
		  [01;34mend[m [01;34mloop[m[31m;[m
	       [01;34mend[m Mod_Reset[31m;[m

	    [01;34mor[m
	       [01;34maccept[m Halt[31m;[m	       
	       Band_Master_Driver[31m.[mHalt[31m;[m
	       [01;34mfor[m Plugin_Id [01;34min[m Processing[31m.[mWork[31m.[mPlugins'[01;34mRange[m [01;34mloop[m			   			   
		  [01;34mif[m Processing[31m.[mWork[31m.[m[01;30mPlugins[m[31m([mPlugin_Id[31m)[m [31m/=[m [01;34mnull[m [01;34mand[m [01;34mthen[m
		    Processing[31m.[mWork[31m.[m[01;30mPlugins[m[31m([mPlugin_Id[31m).[mClass [31m/=[m Null_Plugin [01;34mthen[m			      
		     [01;34mif[m Processing[31m.[m[01;30mProcesses[m[31m([mPlugin_Id[31m)[m [31m/=[m [01;34mnull[m [01;34mthen[m
			Processing[31m.[m[01;30mProcesses[m[31m([mPlugin_Id[31m).[mHalt[31m;[m
			Processing[31m.[m[01;30mProcesses[m[31m([mPlugin_Id[31m).[mEvent_Process[31m.[mHalt[31m;[m
			Processing[31m.[m[01;30mProcesses[m[31m([mPlugin_Id[31m)[m [31m:=[m [01;34mnull[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
	       
	       
	       
	       End_Of_Task [31m:=[m True[31m;[m
	       [01;34mexit[m[31m;[m
	    [01;34mor[m
	       [01;34mdelay[m [35m0.15[m[31m;[m
	       [01;34mselect[m
		  Band_Master_Driver[31m.[m[01;30mEnd_Of_Track[m[31m([mTrack_End[31m);[m		  		  
		  [01;34mif[m Track_End [01;34mthen[m
		     Processing[31m.[mWork[31m.[mStarted [31m:=[m [01;34mnot[m Track_End[31m;[m
		     [01;30mPut_Line[m[31m([m[31m"Track end : startd value is : "[m [31m&[m [32mBoolean[m'[01;30mImage[m[31m([mProcessing[31m.[mWork[31m.[mStarted[31m));[m
		  [01;34mend[m [01;34mif[m[31m;[m
		     
	       [01;34mor[m
		  [01;34mdelay[m [35m1.0[m[31m;[m
	       [01;34mend[m [01;34mselect[m[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 Work_Process[31m;[m
   
   [01;34mprocedure[m [01;30mInitialize[m[31m([mProcessing [31m:[m [01;34min[m [01;34mout[m Gmface_Work_Processing[31m;[m
			Work       [31m:[m [01;34min[m Work_Access[31m;[m
			Insts      [31m:[m [01;34maccess[m Bandmaster_record[31m)[m [01;34mis[m
   [01;34mbegin[m
      [01;34mif[m Insts [31m=[m [01;34mnull[m [01;34mthen[m
	 [01;34mraise[m Program_Error[31m;[m
      [01;34mend[m [01;34mif[m[31m;[m
      Processing[31m.[mWork [31m:=[m [01;30mGmface_Work_Record[m[31m([mWork[31m.[m[01;34mall[m[31m)[m'[01;34mAccess[m[31m;[m
      Processing[31m.[mInstruments [31m:=[m Insts[31m;[m      
   [01;34mend[m Initialize[31m;[m
   

   
[01;34mend[m Gmface[31m.[mGm_Processing[31m.[mGmface[31m.[mWork_Processing[31m;[m
