
		//--------------------------------------- note play batch
		// Đ܂Ƃ
		#module
		#deffunc NotePlayBatch   array      mo_note,\
		                         array  mo_eSpeaker,\
		                          int     isPartSel,\
		                          int        isMute,\
								  int        partId,\
		                        array         pxPos,\
		                        array  mo_optimizer

			// J͈͓̃m[go
			CheckInsideCam@module_optimizer   mo_optimizer,   insideCamNoteArr, insideCamNoteNum

			repeat insideCamNoteNum

				_cnt = insideCamNoteArr(cnt)
				                                  UpdatePrep@module_note   mo_note(_cnt), pxPos(1)
		                                                Draw@module_note   mo_note(_cnt), isPartSel, partId
			loop


			// Jgo[ƓĂm[gĐ
			colNote = CheckCollisionBar@module_optimizer( mo_optimizer )

			if( isMute == FALSE && colNote != -1 ){
				
				Play@module_note   mo_note( colNote ), mo_eSpeaker, isPartSel
			}
			
	
			// ĐXV
			// ( ĐȂĂKs )
			ExecutePlay@module_eSpeaker  mo_eSpeaker
	
			return
		#global



		//--------------------------------------- note update batch


													#module
													#deffunc NoteUpdateBatch        array     mo_note,\
													                                array mo_eSpeaker,\
													                                  int     partSel,\
													                                  int      partId,\
													                                array       pxPos,\
													                                  var  selNoteNum,\
													                                array mo_optimizer
													                                
														// J͈͓̃m[go
														CheckInsideCam@module_optimizer   mo_optimizer,   insideCamNoteArr, insideCamNoteNum
											
														if( partSel ){
															foreach mo_note
																						a = GetIsSel@module_note(  mo_note(cnt) )
																				      selNoteNum += a
											
																			  ; `Œ蒆 & I
																			  if( rs == 2 && a == FALSE ) : continue
											
																                                  UpdatePrep@module_note   mo_note(cnt), pxPos(1)
													                                                  Update@module_note   mo_note(cnt)
																                                 KeyEventSel@module_note   mo_note(cnt)
															loop
														}
											
											
														// hbOړ́A\[gXV
														a = ( InputGetKey( KC_DELETE )==1 ) 
														GetMouseDisp@ManipulateUnit  disp
														if( LBUTTON_HOLD && ( disp(0)+disp(1) != 0) || a ){
															
															Update@module_optimizer   mo_optimizer, mo_note
														}
														if( a ){
															rectStat = 3
															CheckInsideCam@module_optimizer   mo_optimizer,   insideCamNoteArr, insideCamNoteNum	
														}
																								
														repeat insideCamNoteNum
															_cnt = insideCamNoteArr(cnt)
															Draw@module_note   mo_note(_cnt), partSel, partId
														loop
											
														// ĐXV
														// ( ĐȂĂKs )
														ExecutePlay@module_eSpeaker  mo_eSpeaker
															
														return
													#global







		
		// ~܂Ƃ
		#module
		#deffunc NoteUpdateBatch        array     mo_note,\
		                                array mo_eSpeaker,\
		                                  int     partSel,\
		                                  int      partId,\
		                                array       pxPos,\
		                                  var  selNoteNum,\
		                                array mo_optimizer
		                                
			// J͈͓̃m[go
			CheckInsideCam@module_optimizer   mo_optimizer,   insideCamNoteArr, insideCamNoteNum

			if( partSel ){
				foreach mo_note
											a = GetIsSel@module_note(  mo_note(cnt) )
									      selNoteNum += a

								  ; `Œ蒆 & I
								  if( rs == 2 && a == FALSE ) : continue

					                                  UpdatePrep@module_note   mo_note(cnt), pxPos(1)
		                                                  Update@module_note   mo_note(cnt)
					                                 KeyEventSel@module_note   mo_note(cnt)
				loop
			}


			// hbOړ́A\[gXV
			a = ( InputGetKey( KC_DELETE )==1 ) 
			GetMouseDisp@ManipulateUnit  disp
			if( LBUTTON_HOLD && ( disp(0)+disp(1) != 0) || a ){
				
				Update@module_optimizer   mo_optimizer, mo_note
			}
			if( a ){
				rectStat = 3
				CheckInsideCam@module_optimizer   mo_optimizer,   insideCamNoteArr, insideCamNoteNum	
			}
													
			repeat insideCamNoteNum
				_cnt = insideCamNoteArr(cnt)
				Draw@module_note   mo_note(_cnt), partSel, partId
			loop

			// ĐXV
			// ( ĐȂĂKs )
			ExecutePlay@module_eSpeaker  mo_eSpeaker
				
			return
		#global

										//--------------------------------------- note update batch
										// ~܂Ƃ
										#module
										#deffunc NoteUpdateBatch2        array     mo_note,\
										                                array mo_eSpeaker,\
										                                  int     partSel,\
										                                  int      partId,\
										                                array       pxPos,\
										                                  var  selNoteNum,\
										                                array mo_optimizer
										                                
											// J͈͓̃m[go
											CheckInsideCam@module_optimizer   mo_optimizer,   insideCamNoteArr, insideCamNoteNum
								
											; ʓ̂
											repeat insideCamNoteNum

												_cnt = insideCamNoteArr(cnt)
								
																      // Im[gJEg
																      isSel = GetIsSel@module_note(  mo_note(_cnt) )
																         id = GetId@module_note(     mo_note(_cnt) )

															if( selNoteId == id ) : continue
															
																      selNoteNum += isSel

												                                  UpdatePrep@module_note   mo_note(_cnt), pxPos(1)
									                          if( partSel ):          Update@module_note   mo_note(_cnt)
										                                                Draw@module_note   mo_note(_cnt), partSel, partId

															  // ʓ Iid
															  if( partSel ){

																	if( isSel ): selNoteId = id
															  }
																 
												                      // m[g폜̂ōŌ
												              if( partSel ):     KeyEventSel@module_note   mo_note(_cnt)
											loop

												; O
												if( selNoteId > -1 ){

													UpdatePrep@module_note   mo_note( selNoteId ), pxPos(1)
													    Update@module_note   mo_note( selNoteId )
													      Draw@module_note   mo_note( selNoteId ), partSel, partId
												   KeyEventSel@module_note   mo_note( selNoteId )
												   
												    if( InputGetKey( KC_DELETE )==1 ) : selNoteId = -1

													ShapeMesDebug "" + selNoteId
												}
												
											
											// ĐXV
											// ( ĐȂĂKs )
											ExecutePlay@module_eSpeaker  mo_eSpeaker
												
											return
										#global






	//--------------------------------------- part update batch	
	#module
	#define PART	mo_part@NoteField        ; FieldNote  mo_part
	
		// Upload Batch
		#deffunc PartUpdateBatch

			// Ip[gԍ
			foreach PART
	
				isSel = GetIsSel@module_part( PART(cnt) )
				
				// NoteFieldɑ
				if( isSel ) : NoteFieldSetCurrentPartIndex cnt
			loop
		

			// Ip[g̃m[gőOʂɕ`悷邽߁AIp[ĝݍŌɏ

			sCnt = -1
			foreach PART

				if( cnt == NoteFieldGetCurrentPartIndex() ){
					sCnt = cnt
					continue
				}
				
				Update@module_part  PART(cnt)
			loop

			; őO PART
			if( sCnt != -1 ) : Update@module_part  PART(sCnt)

		return
	#global



	//--------------------------------------- part draw batch
	#module
	#define PART	mo_part@NoteField        ; FieldNote  mo_part

		// Draw Batch
		#deffunc PartTipDrawBatch
			foreach PART
				Draw@module_part PART(cnt)
			loop
		return
	#global