//関数部---------// 

	//	※※ このスクリプトは構造化エディタ対応です。//
	 
// エンジンコントローラー 
	
//TrackName ={"コードコール　ver0.60"}// 
//Copyright ={"庚申works"}//

//関数部---------//
	
//	Function { 

//Function Apgptn(	Int Part,		Ptn(0)
//                 	Int Parthalf,		Ptn(1)
//                  	Int Chd_typertn,	Ptn(2)
//                   	Int Shift_keyrtn,	Ptn(3)
//                  	Int Module_typertn,	Ptn(4)
//                 	Int Master_keyrtn ){	Ptn(5)

//	Chdcall(	Ptn(2),
//   	    		Ptn(3),
//   	    		Ptn(4),
//   	    		Ptn(5) );
// 外のエンジンから呼び出している

//}



Function Chdcall(	Array Ptn_type){		//コードタイプ

/*Function Chdcall(	Int Chd_type,			//コードタイプ
			Int Shift_key_type,		//キー
			Int Module_type,		//発音エンジン指定読み込み
			Int Master_key_type ){*/	//転調キー


	Int Chd_type		=Ptn_type(0);
	Int Shift_key_type	=Ptn_type(1);
	Int Module_type		=Ptn_type(2);
	Int Master_key_type	=Ptn_type(3);
	
	//---[初期設定] 

	Int Module_num_sw = Module_num;	//モジュール選択

	Int Chd_invert = 0;	//コードヴォイシング選択
				//[0, 2:drop2, 3:drop3, 4:drop1&3, 5:drop2&3, 6:invert]

	Int Btm_tmp = 0;	//ヲンコード変換テンプ
				//Chd_typeの記述、117でCM7/D、1117でCM7/B

	Int Chd_rev = 0;	//コードリバースイッチ
	Int Rev_tmp = 0;	//リバーステンプ
	Int Shift_sw= 0;	//シフトスイッチ

	Int Chd_type_btm =0;

//	Array Elm_chd;		//こちらでは初期化しない
//	Str Chd_str;
//	Int Master_key;
//	Int Shift_key;
 
	//コード指定 
	
IF(Chd_type<= -100){	//ドラムパターン 

	//[1]で鳴る、[0]は休符、[10]が続くとスラー、[ 2=> 8]でティドル、[-1=>-8]で裏打ちティドル
	//※[480/SizeOf(Bt_mrks)*2]の倍数を指定する、無理な指定は[Length_Error]が出力されます

	// HH
	//[0]でClosed 、[2]でpedal、[4]でopen

	//Cym
	// [0]でn49 CrashCymbal1、[2]でn51 RideCymbal1、[3]でn52 Chinese Cymbal1、
	// [6]でn55 Splash Cymbal、[8]でn57 Crash Cymbal 2、[10]でn59 Ride Cymbal 2


	
	//モジュール読み込み指定 
//A B Part
	IF(-119<= Chd_type & Chd_type<= -101){	Module_type= -101;} //バスドラ
	IF(-219<= Chd_type & Chd_type<= -201){	Module_type= -201;} //ハイハット
	IF(-319<= Chd_type & Chd_type<= -301){	Module_type= -301;} //スネア
	IF(-419<= Chd_type & Chd_type<= -401){	Module_type= -401;} //シンバル

//Drum'n Part
	IF(-139<= Chd_type & Chd_type<= -121){	Module_type= -121;} //バスドラ
	IF(-239<= Chd_type & Chd_type<= -221){	Module_type= -221;} //ハイハット
	IF(-339<= Chd_type & Chd_type<= -321){	Module_type= -321;} //スネア
	IF(-439<= Chd_type & Chd_type<= -421){	Module_type= -421;} //シンバル

//Chk Part
	IF(Chd_type== -100){	Module_type= -100;} //バスドラ
	IF(Chd_type== -200){	Module_type= -200;} //ハイハット
	IF(Chd_type== -300){	Module_type= -300;} //スネア
	IF(Chd_type== -400){	Module_type= -400;} //シンバル

	SWITCH(Chd_type){
	
//Chk Part 

CASE(-100){
	Bt_mrks= (	1, 1, 0, 0,	0, 1, 0, 0,	1, 1, 0, 0,	0, 1, 0, 0);
	}

CASE(-200){
	Bt_mrks= (	1,11, 1,11,	1, 1, 1,11,	1,11, 1,11,	1, 1, 1,11);
	Bt_Keys= (	0, 0, 0, 0,	0, 4, 0, 0,	0, 0, 0, 0,	0, 4, 0, 0);
	}

CASE(-300){

	Bt_mrks= (	0, 0, 1,-11,	-11, 0, 0, 0,	0, 0, 1,-11,	-11, 0, 0, 0);
	}

CASE(-400){
	Bt_mrks= (	0, 0, 0, 0,	0, 1,11, 0,	0, 0, 0, 0,	0, 1,11, 0);
	Bt_Keys= (	0, 0, 0, 0,	0, 2, 2, 0,	0, 0, 0, 0,	0, 2, 2, 0);
	}
 
//A Part 
	
CASE(-101){ 
	Bt_mrks= (	0,-1, 0,	0,-1, 0,	0,-1, 0,	0, 0, 0);
	}

CASE(-201){
	Bt_mrks= (	1, 1, 1,	1, 1, 1,	1, 1, 1,	1, 1, 1);
	Bt_Keys= (	2, 0, 0,	0, 0, 0,	0, 0, 0,	0, 0, 2);
	}

CASE(-301){
	Bt_mrks= (	0, 0, 0,	1, 0, 0,	0, 0, 0,	1,-1, 0);
	}

CASE(-401){
	Bt_mrks= (	0);
	Bt_Keys= (	0);
	}
 
CASE(-102){ 
	Bt_mrks= (	0,-1, 0,	0,-1, 0,	0,-1, 0,	0, 0, 0);
	}

CASE(-202){
	Bt_mrks= (	1, 1, 1,	1, 1, 1,	1, 1, 1,	1, 1, 1);
	Bt_Keys= (	2, 0, 0,	0, 0, 0,	0, 0, 0,	0, 0, 2);
	}

CASE(-302){
	Bt_mrks= (	0, 0, 0,	1, 0, 0,	0, 0, 0,	1,-1, 0);
	}

CASE(-402){
	Bt_mrks= (	0);
	Bt_Keys= (	0);
	}
 
CASE(-103){ 
	Bt_mrks= (	0,-1, 0,	0,-1, 0,	0,-1, 0,	0, 0, 0);
	}

CASE(-203){
	Bt_mrks= (	1, 1, 1,	1, 1, 1,	1, 1, 1,	1, 1, 1);
	Bt_Keys= (	2, 0, 0,	0, 0, 0,	0, 0, 0,	0, 0, 2);
	}

CASE(-303){
	Bt_mrks= (	0, 0, 0,	1, 0, 0,	0, 0, 0,	1,-1, 0);
	}

CASE(-403){
	Bt_mrks= (	0);
	Bt_Keys= (	0);
	}
 
CASE(-104){ 
	Bt_mrks= (	0,-1, 0,	0,-1, 0,	0,-1, 0,	0, 0, 0);
	}

CASE(-204){
	Bt_mrks= (	1, 1, 1,	1, 1, 1,	1, 1, 1,	1, 1, 1);
	Bt_Keys= (	2, 0, 0,	0, 0, 0,	0, 0, 0,	0, 0, 2);
	}

CASE(-304){
	Bt_mrks= (	0, 0, 0,	1, 0, 0,	0, 0, 0,	1,-1, 0);
	}

CASE(-404){
	Bt_mrks= (	0);
	Bt_Keys= (	0);
	}
  
//AF Part 
	
CASE(-105){ 
	Bt_mrks= (	0,-1, 0,	0,-1, 0,	0,-1, 0,	0, 0, 0);
	}

CASE(-205){
	Bt_mrks= (	1, 1, 1,	1, 1, 1,	1, 1, 1,	1, 1, 1);
	Bt_Keys= (	2, 0, 0,	0, 0, 0,	0, 0, 0,	0, 0, 2);
	}

CASE(-305){
	Bt_mrks= (	0, 0, 0,	1, 0, 0,	0, 0, 0,	1,-1, 0);
	}

CASE(-405){
	Bt_mrks= (	0);
	Bt_Keys= (	0);
	}
 
CASE(-106){ 
	Bt_mrks= (	0,-1, 0,	0,-1, 0,	0,-1, 0,	0, 0, 0);
	}

CASE(-206){
	Bt_mrks= (	1, 1, 1,	1, 1, 1,	1, 1, 1,	1, 1, 1);
	Bt_Keys= (	2, 0, 0,	0, 0, 0,	0, 0, 0,	0, 0, 2);
	}

CASE(-306){
	Bt_mrks= (	0, 0, 0,	1, 0, 0,	0, 0, 0,	1,-1, 0);
	}

CASE(-406){
	Bt_mrks= (	0);
	Bt_Keys= (	0);
	}
 
CASE(-107){ 
	Bt_mrks= (	0,-1, 0,	0,-1, 0,	0,-1, 0,	0, 0, 0);
	}

CASE(-207){
	Bt_mrks= (	1, 1, 1,	1, 1, 1,	1, 1, 1,	1, 1, 1);
	Bt_Keys= (	2, 0, 0,	0, 0, 0,	0, 0, 0,	0, 0, 2);
	}

CASE(-307){
	Bt_mrks= (	0, 0, 0,	1, 0, 0,	0, 0, 0,	1,-1, 0);
	}

CASE(-407){
	Bt_mrks= (	0);
	Bt_Keys= (	0);
	}
 
CASE(-108){ 
	Bt_mrks= (	0,-1, 0,	0,-1, 0,	0,-1, 0,	0, 0, 0);
	}

CASE(-208){
	Bt_mrks= (	1, 1, 1,	1, 1, 1,	1, 1, 1,	1, 1, 1);
	Bt_Keys= (	2, 0, 0,	0, 0, 0,	0, 0, 0,	0, 0, 2);
	}

CASE(-308){
	Bt_mrks= (	0, 0, 0,	1, 0, 0,	0, 0, 0,	1,-1, 0);
	}

CASE(-408){
	Bt_mrks= (	0);
	Bt_Keys= (	0);
	}
 
/* 
CASE(-105){
	Bt_mrks= (	1, 0, 0, 0,	1, 0, 0, 0,	1, 0, 0, 0,	1, 0, 0, 0);
	}

CASE(-205){
	Bt_mrks= (	-1,-1,-1,-1,	-1,-1,-1,-1,	-1,-1,-1,-1,	-1,-1,-1,-1);
	Bt_Keys= (	2, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 4,	0, 0, 0, 2 );
	}

CASE(-305){
	Bt_mrks= (	0, 0, 1, 0,	0, 0, 0, 1,	0, 0, 0, 0,	1, 0, 0, 0);
	}

CASE(-405){
	Bt_mrks= (	1, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	Bt_Keys= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0 );
	}

CASE(-106){
	Bt_mrks= (	1, 0, 0, 0,	1, 0, 0, 0,	1, 0, 0, 0,	1, 0, 0, 0);
	}

CASE(-206){
	Bt_mrks= (	-1,-1,-1,-1,	-1,-1,-1,-1,	-1,-1,-1,-1,	-1,-1,-1,-1);
	Bt_Keys= (	2, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 2 );
	}

CASE(-306){
	Bt_mrks= (	0, 1, 0, 0,	0, 0, 1, 0,	0, 0, 0, 1,	0, 0, 0, 0);
	}

CASE(-406){
	Bt_mrks= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	Bt_Keys= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0 );
	}

CASE(-107){
	Bt_mrks= (	1, 0, 0, 0,	1, 0, 0, 0,	1, 0, 0, 0,	1, 0, 0, 0);
	}

CASE(-207){
	Bt_mrks= (	-1,-1,-1,-1,	-1,-1,-1,-1,	-1,-1,-1,-1,	-1,-1,-1,-1);
	Bt_Keys= (	2, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 2 );
	}

CASE(-307){
	Bt_mrks= (	1, 0, 0, 0,	0, 1, 0, 0,	0, 0, 1, 0,	0, 0, 0, 1);
	}

CASE(-407){
	Bt_mrks= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	Bt_Keys= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0 );
	}

CASE(-108){
	Bt_mrks= (	1, 0, 0, 0,	1, 0, 0, 0,	1, 0, 0, 0,	1, 0, 0, 0);
	}

CASE(-208){
	Bt_mrks= (	-1,-1,-1,-1,	-1,-1,-1,-1,	-1,-1,-1,-1,	-1,-1,-1,-1);
	Bt_Keys= (	2, 0, 4, 0,	0, 0, 0, 0,	0, 0, 0, 0,	2, 2, 2, 2 );
	}

CASE(-308){
	Bt_mrks= (	0, 0, 0, 0,	1, 0, 0, 0,	0, 1, 0, 0,	2, 2, 2, 1);
	}

CASE(-408){
	Bt_mrks= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	Bt_Keys= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0 );
	}
*/
  
//B Part 
	
CASE(-111){ 
	Bt_mrks= (	1, 1, 0, 0,	0, 0, 0, 0,	1, 1, 0, 0,	0, 0, 0, 0);
	}

CASE(-211){
	Bt_mrks= (	1, 2, 1, 1,	1, 1, 1, 1,	1, 1, 1, 1,	2, 1, 1, 1);
	Bt_Keys= (	2, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	}

CASE(-311){
	Bt_mrks= (	0, 0, 0, 1,	1, 0, 0, 0,	0, 0, 0, 1,	0, 0, 0, 0);
	}

CASE(-411){
	Bt_mrks= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	Bt_Keys= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	}
 
CASE(-112){ 
	Bt_mrks= (	1, 1, 0, 0,	0, 0, 0, 0,	1, 1, 0, 0,	0, 0, 0, 0);
	}

CASE(-212){
	Bt_mrks= (	1, 2, 1, 1,	1, 1, 1, 1,	1, 1, 1, 1,	2, 1, 1, 1);
	Bt_Keys= (	2, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	}

CASE(-312){
	Bt_mrks= (	0, 0, 0, 1,	1, 0, 0, 0,	0, 0, 0, 1,	0, 0, 0, 0);
	}

CASE(-412){
	Bt_mrks= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	Bt_Keys= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	}
 
CASE(-113){ 
	Bt_mrks= (	1, 1, 0, 0,	0, 0, 0, 0,	1, 1, 0, 0,	0, 0, 0, 0);
	}

CASE(-213){
	Bt_mrks= (	1, 2, 1, 1,	1, 1, 1, 1,	1, 1, 1, 1,	2, 1, 1, 1);
	Bt_Keys= (	2, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	}

CASE(-313){
	Bt_mrks= (	0, 0, 0, 1,	1, 0, 0, 0,	0, 0, 0, 1,	0, 0, 0, 0);
	}

CASE(-413){
	Bt_mrks= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	Bt_Keys= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	}
 
CASE(-114){ 
	Bt_mrks= (	1, 1, 0, 0,	0, 0, 0, 0,	1, 1, 0, 0,	1, 1, 0, 0);
	}

CASE(-214){
	Bt_mrks= (	1, 2, 1, 1,	1, 1, 1, 1,	1, 1, 1, 1,	2, 1, 1, 1);
	Bt_Keys= (	2, 0, 0, 0,	0, 0, 0, 0,	4, 0, 0, 0,	0, 0, 0, 0);
	}

CASE(-314){
	Bt_mrks= (	0, 0, 0, 1,	1, 0, 0, 0,	0, 0, 0, 1,	2, 2, 2, 1);
	}

CASE(-414){
	Bt_mrks= (	1, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	Bt_Keys= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	}
  
//Drum'n Part 
	
// 4h 
	
CASE(-121){ 
	Bt_mrks= (	1, 0, 0, 0,	0, 0, 0, 0,	0,-1, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	11, 0, 0, 0);
	}
CASE(-321){
	Bt_mrks= (	0, 0, 0, 0,	0, 0,11, 0,	0, 0, 0, 0,	0, 0, 0,11,	0, 0, 0,11,	0, 0, 0, 0);
	}


CASE(-221){
	Bt_mrks= (	0, 0, 0,11,	12,11, 2,11);
	Bt_Keys= (	0, 4, 0, 4,	0, 4, 0, 4);
	}
CASE(-421){
	Bt_mrks= (	1, 0, 0, 0,	0, 0, 0, 0,	0,-1, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	Bt_Keys= (	6, 0, 0, 0,	0, 0, 0, 0,	0, 6, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	}
 
CASE(-122){ 
	Bt_mrks= (	1, 0, 0, 0,	0, 0, 0, 0,	0,-1, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	11, 0, 0, 0);
	}
CASE(-322){
	Bt_mrks= (	0, 0, 0, 0,	0, 0,11, 0,	0, 0, 0, 0,	0, 0, 0,11,	0, 0, 0, 0,	0, 0, 0, 0);
	}


CASE(-222){
	Bt_mrks= (	2,11, 0,11,	12,11, 2,11);
	Bt_Keys= (	0, 4, 0, 4,	0, 4, 0, 4);
	}
CASE(-422){
	Bt_mrks= (	0);
	Bt_Keys= (	0);
	}







 
CASE(-123){ 
	Bt_mrks= (	1, 0, 0, 0,	0, 0, 0, 0,	0,-1, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	}
CASE(-323){
	Bt_mrks= (	0, 0, 0, 0,	0, 0,11, 0,	0, 0, 0, 0,	0, 0, 0,11,	0, 0, 0,11,	11, 0, 0, 0);
	}


CASE(-223){
	Bt_mrks= (	2,11, 0,11,	12,11, 2,11);
	Bt_Keys= (	0, 4, 0, 4,	0, 4, 0, 4);
	}
CASE(-423){
	Bt_mrks= (	0);
	Bt_Keys= (	0);
	}








 
CASE(-124){ 
	Bt_mrks= (	1, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	1, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	}
CASE(-324){
	Bt_mrks= (	0, 0, 0, 0,	0, 0,11, 0,	0,11, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	-11, 0, 0, 0);
	}


CASE(-224){
	Bt_mrks= (	2,11, 0,11,	12,11, 2,11);
	Bt_Keys= (	0, 4, 0, 4,	0, 4, 0, 4);
	}
CASE(-424){
	Bt_mrks= (	0);
	Bt_Keys= (	0);
	}







  
/*	// Mayer 
	
CASE(-120){ 
	Bt_mrks= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	}

CASE(-220){
	Bt_mrks= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	Bt_Keys= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	}

CASE(-320){
	Bt_mrks= (	1, 1, 1, 1,	1, 1, 1, 1,	1, 1, 1, 1,	1, 1, 1, 1);
	}

CASE(-420){
	Bt_mrks= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	Bt_Keys= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	}
 
CASE(-121){ 
	Bt_mrks= (	1, 0, 0, 0,	0, 0, 0, 0,	0, 0, 1, 0,	0, 0, 0, 0);
	}

CASE(-221){
	Bt_mrks= (	1,10, 1,10,	1, 1, 1, 0,	1, 0, 1, 0,	1, 0, 1, 1);
	Bt_Keys= (	4, 0, 4, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	}

CASE(-321){
	Bt_mrks= (	0, 0, 0, 0,	1, 0, 0, 11,	1, 0, 0, 0,	0, 0, 1, 0);
	}

CASE(-421){
	Bt_mrks= (	0, 0, 0, 0,	1, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	Bt_Keys= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	}





 
CASE(-122){ 
	Bt_mrks= (	0, 0, 0, 0,	0, 0, 0, 0,	1, 0, 1, 0,	0, 0, 0, 0);
	}

CASE(-222){
	Bt_mrks= (	1, 0, 1, 0,	1, 0, 1, 0,	1, 0, 1, 0,	1, 0, 1, 0);
	Bt_Keys= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	}

CASE(-322){
	Bt_mrks= (	0,11, 0,11,	1, 0, 0,11,	0, 0, 0, 0,	1,11,11,11);
	}

CASE(-422){
	Bt_mrks= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	Bt_Keys= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	}

 
CASE(-123){ 
	Bt_mrks= (	1, 0, 1, 0,	0, 0, 0, 0,	1, 1, 0, 0,	0, 0, 1, 0);
	}

CASE(-223){
	Bt_mrks= (	1, 0, 1, 0,	1, 1, 1, 0,	1, 0, 0, 0,	0, 0, 1, 10);
	Bt_Keys= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 4, 0 );
	}

CASE(-323){
	Bt_mrks= (	0, 0, 0, 0,	1, 0, 0,11,	0, 0, 1,11,	11,11, 0, 0);
	}

CASE(-423){
	Bt_mrks= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	Bt_Keys= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	}


 
CASE(-124){ 
	Bt_mrks= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 1, 0,	0, 0, 0, 0);
	}

CASE(-224){
	Bt_mrks= (	0, 0, 0, 1,	1, 0, 1, 0,	1, 0, 1, 0,	1, 0, 1, 0);
	Bt_Keys= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	}

CASE(-324){
	Bt_mrks = (	0, 0, 1, 0,	0,11, 0,11,	1, 0, 0, 0,	1, 0, 0, 0);
	}

CASE(-424){
	Bt_mrks= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	Bt_Keys= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	}
 
CASE(-125){ 
	Bt_mrks= (	1, 0, 0, 0,	0, 0, 1, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	}

CASE(-225){
	Bt_mrks= (	1, 0, 1, 0,	1, 0, 1, 0,	1, 0, 1, 1,	1, 0, 1, 0);
	Bt_Keys= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	}

CASE(-325){
	Bt_mrks= (	0, 0, 0, 0,	1, 0, 0, 0,	0, 0, 1, 0,	0,11, 0,11);
	}

CASE(-425){
	Bt_mrks= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	Bt_Keys= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	}

 
CASE(-126){ 
	Bt_mrks= (	0, 0, 1, 0,	0, 0, 0, 0,	0, 0, 1, 1,	0, 0, 0, 0);
	}

CASE(-226){
	Bt_mrks= (	1, 0, 1, 0,	1, 0, 1, 1,	1, 0, 1, 0,	1, 0, 1, 0);
	Bt_Keys= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	}

CASE(-326){
	Bt_mrks= (	1, 0, 0, 0,	0, 0, 1, 0,	0,11, 0, 0,	1,11,11,11);
	}

CASE(-426){
	Bt_mrks= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	Bt_Keys= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	}
 
CASE(-127){ 
	Bt_mrks= (	1, 0, 1, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	}

CASE(-227){
	Bt_mrks= (	1, 0, 1, 0,	1, 1, 1, 0,	1, 1, 1, 0,	1, 1, 1, 0);
	Bt_Keys= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	}

CASE(-327){
	Bt_mrks= (	0, 0, 0, 0,	1, 0, 0,11,	1, 0, 0,11,	1, 0, 0,11);
	}

CASE(-427){
	Bt_mrks= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	Bt_Keys= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	}
 
CASE(-128){ 
	Bt_mrks= (	1, 0, 1, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	}

CASE(-228){
	Bt_mrks= (	1, 0, 1, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	Bt_Keys= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	}

CASE(-328){
	Bt_mrks= (	0, 0, 0, 0,	1, 0, 0, 1,	0, 0, 1, 0,	0, 1, 0, 0);
	}

CASE(-428){
	Bt_mrks= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	Bt_Keys= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	}
 
CASE(-129){ 
	Bt_mrks= (	1, 0, 0, 0,	0, 0, 1, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	}

CASE(-229){
	Bt_mrks= (	1, 0, 0, 0,	0, 0, 1, 0,	0, 0, 1, 1,	1, 0, 1, 0);
	Bt_Keys= (	2, 0, 0, 0,	0, 0, 4, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	}

CASE(-329){
	Bt_mrks= (	0, 0, 0, 0,	1, 0, 0, 0,	0, 0, 1, 0,	0,11, 0,11);
	}

CASE(-429){
	Bt_mrks= (	0, 0, 0, 0,	0, 0, 0, 0,	1, 0, 0, 0,	0, 0, 0, 0);
	Bt_Keys= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	}






 
CASE(-130){ 
	Bt_mrks= (	0, 0, 0, 0,	1, 0, 0, 0,	1, 0, 0, 0,	0, 0, 0, 0);
	}

CASE(-230){
	Bt_mrks= (	1, 1, 1, 0,	1, 0, 1, 0,	1, 0, 1, 0,	1, 1, 1, 0);
	Bt_Keys= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	}

CASE(-330){
	Bt_mrks= (	1, 0, 0,11,	0,11, 0,11,	0,11, 0,11,	1, 0, 0,11);
	}

CASE(-430){
	Bt_mrks= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	Bt_Keys= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	}
 
CASE(-131){ 
	Bt_mrks= (	1, 0, 1, 0,	0, 0, 0, 0,	1, 1, 0, 0,	0, 0, 0, 0);
	}

CASE(-231){
	Bt_mrks= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	Bt_Keys= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	}

CASE(-331){
	Bt_mrks= (	0, 0, 0, 0,	1, 0, 0,11,	0, 0, 1, 0,	0,11, 0,11);
	}

CASE(-431){
	Bt_mrks= (	1, 0, 1, 0,	1, 1, 1, 0,	1, 0, 1, 1,	1, 0, 1, 0);
	Bt_Keys= (	2, 0, 2, 0,	2, 2, 2, 0,	2, 0, 2, 2,	2, 0, 2, 0);
	}

 
CASE(-132){ 
	Bt_mrks= (	1, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	}

CASE(-232){
	Bt_mrks= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 1,	0, 0, 0, 1);
	Bt_Keys= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 4,	0, 0, 0, 0);
	}

CASE(-332){
	Bt_mrks= (	0, 0, 0, 0,	0, 0, 1, 0,	0, 0, 0, 0,	0, 0, 1, 0);
	}

CASE(-432){
	Bt_mrks= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 1, 0);
	Bt_Keys= (	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0,	0, 0, 0, 0);
	}
 
*/ 
    
	} //SWITCH(Chd_type) 
} //IF
  
IF(-100<Chd_type&Chd_type<= -10){	//スケール 

	
// 構成スケール[-10] -> [-99] 

	Shift_sw= 1;

	SWITCH(Chd_type){

	//コードにスケールを割り当てる場合、例えばKey inＣメジャーの曲でA7thコードが使われる際、
	//ドミナント7thコードに親近性のあるＡオルタード・スケールを割り当てる

	//[アボイドノートはパッセージのみ使用可能なので基本は省いています]
	
// メジャー・スケール 

	//ダイアトニック・スケール、チャーチ・モード
	
	CASE(-11){	Chd_str ={ Ionian}; 
	Elm_chd = (	0, 2, 4, 7, 9, 11 );	//, 5 );

	//メジャー・キーのトニックコード
	}
 
	CASE(-12){	Chd_str ={ Dorian}; 
	Elm_chd = (	0, 2, 3, 5, 7, 10 );	//, 9 );

	//マイナーキーの楽曲では多用
	}
 
	CASE(-13){	Chd_str ={ Phrygian}; 
	Elm_chd = (	0, 3, 5, 7, 10 );	//, 1, 8 );

	//メジャー?m7,マイナー?m7
	}
 
	CASE(-14){	Chd_str ={ Lydian}; 
	Elm_chd = (	0, 2, 4, 6, 7, 9, 11 );

	//メジャーキーにおけるサブドミナント
	//＃11(♭5)以外はイオニアンとまったく同じためトニックも
	//Ionianに比べテンション感が高い
	}
 
	CASE(-15){	Chd_str ={ Mixolydian}; 
	Elm_chd = (	0, 2, 4, 7, 9, 10 );	//, 5 );

	//メジャーキーのドミナント
	//第7音がm7になる以外はIonianと同じ
	}
 
	CASE(-16){	Chd_str ={ Aeolian}; 
	Elm_chd = (	0, 2, 3, 5, 7, 10 );	//, 8 );

	//Natural Minor Scale [Keyin A]
	//マイナー・キーのトニック
	}
 
	CASE(-17){	Chd_str ={ Locrian}; 
	Elm_chd = (	0, 3, 5, 6, 8, 10 );	//, 1 );

	//m7♭5
	}
  
//メロディック・マイナー・スケール 
	
	CASE(-21){	Chd_str ={ Melodic Minor}; 
	Elm_chd = (	0, 2, 3, 5, 7, 11 );	//, 9 );

	//上行するメロディーのみ、下行はナチュラル・マイナー
	}
 
	CASE(-22){	Chd_str ={ Dorian ♭2}; 
	Elm_chd = (	0, 3, 5, 7, 10 );	//, 1, 9 );
	}
 
	CASE(-23){	Chd_str ={ Lydian  ♯5}; 
	Elm_chd = (	0, 2, 4, 6, 8, 11 );	//, 9 );
	}
 
	CASE(-24){	Chd_str ={ Lydian Dominant}; //Lydian ♭7 
	Elm_chd = (	0, 2, 4, 6, 7, 10 );	//, 9 );
	}
 
	CASE(-25){	Chd_str ={ Mixolydian ♭6}; 
	Elm_chd = (	0, 2, 4, 7, 10 );	//, 5, 8 );
	}
 
	CASE(-26){	Chd_str ={ Aeolian ♭5}; //Locrian #2 
	Elm_chd = (	0, 2, 3, 5, 6, 8, 10 );

	//?m7(♭5)（ＳＤm）の根拠
	}
 
	CASE(-27){	Chd_str ={ Super Locrian}; 
	Elm_chd = (	0, 3, 6, 8, 10 );	//, 1, 4 );
	}
  
//ハーモニック・マイナー・スケール 
	
	CASE(-31){	Chd_str ={ Harmonic Minor}; 
	Elm_chd = (	0, 2, 3, 5, 7, 11 );	//, 8 );
	}
 
	CASE(-32){	Chd_str ={ Locrian #6}; 
	Elm_chd = (	0, 3, 5, 6, 10 );	//, 1, 9 );
	}
 
	CASE(-33){	Chd_str ={ Ionian ♯5}; 
	Elm_chd = (	0, 2, 3, 8, 10 );	//, 5, 9 );
	}
 
	CASE(-34){	Chd_str ={ Dorian ♯4}; 
	Elm_chd = (	0, 2, 4, 6, 7, 11 );	//, 9 );
	}
 
	CASE(-35){	Chd_str ={ Harmonic Minor Perfect 5th Below}; 
	Elm_chd = (	0, 1, 4, 7, 10 );	//, 5, 8 );

	//Phrygian Major
	//スパニッシュ
	}
 
	CASE(-36){	Chd_str ={ Lydian  ♯2}; 
	Elm_chd = (	0, 4, 6, 7, 9, 11 );	//, 3 );
	}
 
	CASE(-37){	Chd_str ={ Super Locrian ♭7}; 
	Elm_chd = (	0, 3, 6, 8, 9 );	//, 1, 4 );
	}
  
//ブルー・ノート・スケール 

	//Ｃメジャー・ペンタトニックでのフレージングに、
	//ちょろっと短3度を織り交ぜる使い方が効果的

	//♭3と3の間が本当のブルース構成音となる
	//ジミヘンコードE7（#9）　７R-3th-7th-♯9(=m3ｔｈ)
	
	CASE(-40){	Chd_str ={ Blue Note}; 
	Elm_chd = (	0, 2, 3, 5, 6, 7, 9, 10 );

	//マイナー・ペンタトニックの短3度及び短7度をブルー・ノートとし，
	//減5度のブルー・ノートを加え，2度と6度を補ったスケール
	//結果的にドリアン・スケールに減5度を補ったもの
	}
 
	CASE(-41){	Chd_str ={ Major Blues}; 
	Elm_chd = (	0, 2, 3, 4, 7, 9 );
	}
 
	CASE(-42){	Chd_str ={ Blues}; 
	Elm_chd = (	0, 3, 5, 6, 7, 10 );

	//マイナー・ブルース・スケール
	//Minor Pentatonicにブルーノートである♭5を加える
	}
 
	CASE(-45){	Chd_str ={ Minor Pentatonic + 2, ♭5}; 
	Elm_chd = (	0, 2, 3, 5, 6, 7, 10 );
	}
 
	CASE(-46){	Chd_str ={ Minor Pentatonic + 2, ♭5, 6}; 
	Elm_chd = (	0, 2, 3, 5, 6, 7, 9 );
	}
 
	CASE(-44){	Chd_str ={ Minor Pentatonic + 2, 6}; 
	Elm_chd = (	0, 2, 3, 5, 7, 9 );
	}
  
//ペンタトニック・スケール 
	
	CASE(-50){	Chd_str ={ Major Pentatonic(ヨナ抜き)}; 
	Elm_chd = (	0, 2, 4, 7, 9 );

	//呂スケール、宮調式
	//明るい曲調の演歌、流行歌
	//スコットランド民謡
	}
 
	CASE(-51){	Chd_str ={ ヨナ抜き短}+CHR(35257)+CHR(35403);	//ヨナ抜き短音階 
	Elm_chd = (	0, 2, 3, 7, 8 );

	//平調子
	//ナチュラル・マイナー4番目(P4)と7番目(m7)の音を抜いたもの
	//4番目の音から始めた転回型を雲井スケール
	//2番目の音から始めた転回型を岩戸スケール
	//明治〜昭和の演歌、流行歌
	}
 
	CASE(-52){	Chd_str ={ Minor Pentatonic}; 
	Elm_chd = (	0, 3, 5, 7, 10 );

	//陽スケール、羽調式
	//ブルース・ペンタトニック
	//メジャー・ペンタトニックを6度から並べ直したもの
	}
 
	CASE(-54){	Chd_str ={ 雲井スケ}+CHR(33115)+{ル}; 
	Elm_chd = (	0, 1, 5, 7, 8 );
	}
 
	CASE(-55){	Chd_str ={ 岩戸スケ}+CHR(33115)+{ル}; 
	Elm_chd = (	0, 1, 5, 6, 10 );
	}
 
	CASE(-60){	Chd_str ={ 陰スケ}+CHR(33115)+{ル}; 
	Elm_chd = (	0, 1, 5, 7, 10 );
	}
 
	CASE(-61){	Chd_str ={ 都節スケ}+CHR(33115)+{ル}; 
	Elm_chd = (	0, 1, 5, 7, 8 );
	}
 
	CASE(-62){	Chd_str ={ 律スケ}+CHR(33115)+{ル、商}+CHR(37554)+{式};	//商調式 
	Elm_chd = (	0, 2, 5, 7, 10 );
	}
 
	CASE(-63){	Chd_str ={ 角}+CHR(37554)+{式}; //角調式 
	Elm_chd = (	0, 3, 5, 8, 10 );
	}
 
	CASE(-64){	Chd_str ={ 徴}+CHR(37554)+{式};　//徴調式 
	Elm_chd = (	0, 2, 5, 7, 9 );
	}
 
	CASE(-66){	Chd_str ={ 琉球スケ}+CHR(33115)+{ル}; 
	Elm_chd = (	0, 4, 5, 7, 11 );
	}
  
//シンメトリカル・スケール 
	
	CASE(-70){	Chd_str ={ Chromatic}; 
	Elm_chd = (	0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 );

	//半音階
	}
 
	CASE(-72){	Chd_str ={ Whole Tone}; 
	Elm_chd = (	0, 2, 4, 6, 8, 10 );

	//調性はハッキリしない、主にドミナント
	//指板上では市松模様
	}
 
	CASE(-76){	Chd_str ={ Diminished}; 
	Elm_chd = (	0, 2, 3, 5, 6, 8, 9, 11 );

	//ディミニッシュ・コードへ適用
	}
 
	CASE(-77){	Chd_str ={ Combination Of Diminished}; 
	Elm_chd = (	0, 1, 3, 4, 6, 7, 9, 10 );

	//コンディミ Dominant Diminished
	//ハーフ・ホールトーン

	//ドミナントへ適用
	//半音-全音と交互に並ぶ
	//ドミナント・セブンス（Tonic・M3・P5・m7）と、
	//テンション（♭9・#9・#11・13）を含む
	}
 
	CASE(-78){	Chd_str ={ Altered}; 
	Elm_chd = (	0, 1, 3, 4, 6, 8, 10 );

	//Super Locrianと同じ
	//ドミナントやディミニッシュへ対応
	//メジャースケールのトニック以外の音を全て半音下げた構造
	//ドミナントのトーン(Tonic・M3・m7)と、
	//全てのオルタード・テンション（♭9・#9・#11・♭13）を含む
	}
  
//エキゾティック・スケール 
	
	CASE(-80){	Chd_str ={ Spanish 8 note}; 
	Elm_chd = (	0, 1, 3, 4, 5, 7, 8, 10 );

	//ミの旋法、フラメンコ

	//フリジアン+M3度
	//スパニッシュ・8ノートからm3を引いた音階、
	//Harmonic Minor Perfect 5th Belowをスパニッシュ・スケールと呼ぶ
	}
 
	CASE(-81){	Chd_str ={ Hungarian}; 
	Elm_chd = (	0, 3, 4, 6, 7, 9, 10 );

	//メジャーコードに対応
	}
 
	CASE(-82){	Chd_str ={ Hungarian Minor}; 
	Elm_chd = (	0, 2, 3, 6, 7, 8, 11 );	//9

	//ジプシー、ダブル・ハーモニック・マイナー

	//アラビックの4番目から始めたのと同じ構成
	}
 
	CASE(-82){	Chd_str ={ Hungarian Minor}; 
	Elm_chd = (	0, 2, 3, 6, 7, 9, 11 );

	//メロディック・マイナーの第4音を半音上げる
	}
 
	CASE(-85){	Chd_str ={ Gypsy}; 
	Elm_chd = (	0, 1, 4, 5, 7, 8, 11 );

	//Harmonic Minor Perfect 5th Belowの第7音を半音上げる
	}
 
	CASE(-88){	Chd_str ={ Neapolitan Major}; 
	Elm_chd = (	0, 1, 3, 5, 7, 9, 11 );

	//Major Scale から2と3を半音下げたScale
	}
 
	CASE(-89){	Chd_str ={ Neapolitan minor}; 
	Elm_chd = (	0, 1, 3, 5, 7, 8, 11 );

	//Major Scale から2と3と6を半音下げたScale
	}
 
	CASE(-90){	Chd_str ={ Arabic}; 
	Elm_chd = (	0, 1, 4, 5, 7, 8, 11 );

	//ダブル・ハーモニック・スケール

	//Harmonic Minor Perfect 5th Belowとは第7音（M7）が違うだけ
	}
 
	CASE(-91){	Chd_str ={ Hindu}; 
	Elm_chd = (	0, 2, 4, 5, 7, 8, 10 );

	//[インド風ではないらしい]
	}
   
	}	//SWITCH(Chd_type) 
} //IF
  
IF( -10<Chd_type&Chd_type< 10){	//テストコード 
	
SWITCH(Chd_type){ // モジュール指定はしない 

	
	CASE(1){ //sqrptn.hテスト専用 
		// Chord
		Shift_key = 0;

		// Chd_type

		Elm_chd = (0, 2, 5, 7);

		//[Marksは240で割れる数]
		Marks = 24;	Octave = 2;	Double_skip =0;
		Rand_sw = 0;
		VCO = 100;	Gate = 50;	Tim = 0;
		Chd_invert =0;	Chd_rev =0;
	}
 
	CASE(2){ //apgptn.hテスト専用poly syn 

	// Chord
	Shift_key =0;

	// Chd_type

	Elm_chd = (	0, 5, 7, 12)//, 7, 9, 11, 12);

	// Module
	VCO =90;	Gate = 75;	Tim = 3;	Panning = 64;

	//Apg_type
	Sgltgr =0;		//シングルトリガースイッチ[0,1]
//	Paradiddle_sw =0; 	//パラティドルスイッチ
	Chd_invert =4;		//[0,2-6]

	Bt_mrks = (	-1, 10,-11, 11,		12, 0, 0, 11,
			10,  1,  11,  1,	1, 11, 1, 1);

	//[1]で鳴る、[0]は休符、[10]が続くとスラー、[ 2=> 8]でティドル、[-1=>-8]で裏打ちティドル
	//※無理な指定は[Length_Error]が出力されます

	}
 
	CASE(3){ //apgptn.hテスト専用mono syn 
	// Chord
	Shift_key =-12;

	// Module
	VCO =80;	Gate = 80;	Tim = 0;	Panning = 64;

	//Apg_type
	Sgltgr =1;	  //シングルトリガースイッチ[0(polysyn),1(monosyn)]
	Unison_sw =0;	  //ユニゾンスイッチ
//	Paradiddle_sw =0; //パラティドルスイッチ

	Bt_mrks = (	1, 10, 0, 0,	1, 0, 0, 1,
			10, 1, 1, 1,	1, 1, 1, 1);

	Bt_Keys= (	0, 0, 0, 0,	0, 0, 0, 0,
			0, 0, 0, 0,	0, 0, 0, 0 );	// 単音/ユニゾン キーコントロール


	//[1]で鳴る、[0]は休符、[10]が続くとスラー、[ 2=> 8]でティドル、[-1=>-8]で裏打ちティドル
	//※無理な指定は[Length_Error]が出力されます

	Bt_slide= (	0, 0, 0, 0, 0,	0, 0, 0, 0, 0);	// 10段まで

	}
 
	CASE(4){ //padptn.hテスト専用 

	// Chord
	Shift_key = 0;

	// Chd_type
	Elm_chd = (	0, 2, 5, 7, 12,  14, 17, 19);

	// Module
	VCO = 30;	Gate =96;	Tim = 3;	Panning =64;

	}
 
	CASE(5){ //Prsptn.hテスト専用 

		// Chord
		Shift_key = 0;

		// Chd_type

		Elm_chd = (	0, 2, 5, 7, 9);

		//[Marksは240で割れる数]
		Marks = 24;

		Bt_mrks = (1, 1, 2, 1,	 1, 1, 2, 1,	1, 1, 2, 1,	1, 1, 2, 1	);
		Bt_rdm  = (0, 1, 2,3,0,	 0, 1, 2,3,0,	0, 1, 2,3,0, 	0, 1, 2,3,0	);	//コードセレクト
		Oct_chg = (0, 1, 2,3,2,	 0, 1, 2,3,2,	0, 1, 2,3,2, 	0, 1, 2,3,2	);	//ヲクターブ選択

		Phrase_rdmsw =1;		//コードランダムSW
		Oct_phrase_rdmsw =0;	//ヲクターブランダムSW

		Octave = 2;		//[Oct_phrase_sw =0]のみ
		FR_sw = 0;		//休符Front[1]-Rear[0]切換
		VCO = 100;	Gate = 50;	Tim = 0;
		Chd_invert =0;	Chd_rev =0;
	}
 
	CASE(-1){ //apgptn.hテスト専用 BD sgltgr 

	//Module_type= -100; //バスドラモジュール
	//n35 kick1、n36 kick2

	// Module
	VCO =80;	Gate = 50;	Tim = 0;	Panning = 64;

	Master_key =35;
	Elm_chd = (	0, 1);

	Sgltgr =0;	  //シングルトリガースイッチ[0(polysyn),1(monosyn)]

	//Apg_type
//	Paradiddle_sw =1; //パラティドルスイッチ

	Bt_mrks = (	1, 0, 0, 1,	1, 0, 0, 0,
			3, 0, 0, 1,	1, 0, 0, 0,
			1, 0, 0, 1,	1, 0, 0, 0);

	//[1]で鳴る、[0]は休符、[10]が続くとスラー、[ 2=> 8]でティドル、[-1=>-8]で裏打ちティドル
	//※[480/SizeOf(Bt_mrks)*2]の倍数を指定する、無理な指定は[Length_Error]が出力されます
	}

 
	CASE(-2){ //apgptn.hテスト専用 HH sgltgr 

	//Module_type= -200; //ハイハットモジュール
	//n42 closed、n44 pedal、n46 open

	// Module
	VCO =80;	Gate = 50;	Tim = 0;	Panning = 64;

	Master_key =42;

	Sgltgr =1;	  //シングルトリガースイッチ[0(polysyn),1(monosyn)]
	Unison_sw =0;	 //ユニゾンスイッチ[0,1](offが望ましい)

	//Apg_type
//	Paradiddle_sw =1; //パラティドルスイッチ

	Bt_mrks = (	1, 0, 0, 1,	1, 0, 0, 0,
			3, 0, 0, 1,	1, 0, 0, 0,
			1, 0, 0, 1,	1, 0, 0, 0);

	//単音/ユニゾン キーコントロール [2]でpedal、[4]でopen
	Bt_Keys= (	0, 0, 0, 0,	0, 0, 0, 0,
			0, 0, 0, 0,	0, 0, 0, 0,
			0, 0, 0, 0,	0, 0, 0, 0 );

	//[1]で鳴る、[0]は休符、[10]が続くとスラー、[ 2=> 8]でティドル、[-1=>-8]で裏打ちティドル
	//※[480/SizeOf(Bt_mrks)*2]の倍数を指定する、無理な指定は[Length_Error]が出力されます
	}

 
	CASE(-3){ //apgptn.hテスト専用 Sn sgltgr 

	//Module_type= -300; //スネアモジュール
	//n38 snare1、n40 snare2、n37 Side Stick [リムショット]

	// Module
	VCO =80;	Gate = 50;	Tim = 0;	Panning = 64;

	Master_key =38;
	Elm_chd = (	0, -1);

	Sgltgr =0;	  //シングルトリガースイッチ[0(polysyn),1(monosyn)]

//	Paradiddle_sw =1; //パラティドルスイッチ

	//Apg_type
	Bt_mrks = (	1, 0, 0, 1,	1, 0, 0, 0,
			3, 0, 0, 1,	1, 0, 0, 0,
			1, 0, 0, 1,	1, 0, 0, 0);

	//[1]で鳴る、[0]は休符、[10]が続くとスラー、[ 2=> 8]でティドル、[-1=>-8]で裏打ちティドル
	//※[480/SizeOf(Bt_mrks)*2]の倍数を指定する、無理な指定は[Length_Error]が出力されます
	}
  
	}	//SWITCH(Chd_type) 
} //テストコード

  
IF(10 <=Chd_type){	//コード 

	Shift_sw= 1;

	//---事前処理 ボトム分離

	IF( 100<=Chd_type){
		Chd_type_btm = Chd_type/100;	Chd_type= Chd_type%100;
	}
	
SWITCH(Chd_type){ // 構成コード[10] -> [99] 

	//ヲンコード指定の仕方
	//		217でCM7/D、	417でCM7/E、	1117でCM7/B
	//		270で7th/D、	470で7th/E、	1170で7th/B
	
//メジャー 
 
	CASE(10){	Chd_str ={M}; 
	Elm_chd = (	0, 4, 7);
	}
 
	CASE(12){	Chd_str ={M9}; 
	Elm_chd = (	0, 4, 7, 11, 14);
	}
 
	CASE(13){	Chd_str ={69th}; 
	Elm_chd = (	0, 4, 7, 9, 14);
	}
 
	CASE(14){	Chd_str ={M add2}; 
	Elm_chd = (	0, 2, 4, 7);
	}
 
	CASE(16){	Chd_str ={6th}; 
	Elm_chd = (	0, 4, 7, 9);
	}
 
	CASE(17){	Chd_str ={M7}; 
	Elm_chd = (	0, 4, 7, 11);
	}
 
	CASE(19){	Chd_str ={Madd9}; 
	Elm_chd = (	0, 4, 7, 14);
	}

 
//マイナー 
 
	CASE(20){	Chd_str ={m}; 
	Elm_chd = (	0, 3, 7);
	}
 
	CASE(22){	Chd_str ={m9};	//m7(9) 
 	Elm_chd = (	0, 3, 7, 10, 14);
	}
 
	CASE(23){	Chd_str ={m69}; 
	Elm_chd = (	0, 3, 7, 9, 14);
	}
 
	CASE(24){	Chd_str ={m add4}; 
	Elm_chd = (	0, 3, 5, 7);
	}

 
	CASE(26){	Chd_str ={m6}; 
	Elm_chd = (	0, 3, 7, 9);
	}
 
	CASE(27){	Chd_str ={m7}; 
	Elm_chd = (	0, 3, 7, 10);
	}
 
	CASE(28){	Chd_str ={mM7}; 
	Elm_chd = (	0, 3, 7, 11);
	}
 
	CASE(29){	Chd_str ={m add9}; 
	Elm_chd = (	0, 3, 7, 14);
	}
 
//パワー(omit3) 
 
	CASE(30){	Chd_str ={5th omit3}; 
	Elm_chd = (	0, 7);
	}
 
	CASE(31){	Chd_str ={7th omit3}; 
	Elm_chd = (	0, 7, 10);
	}
 
	CASE(32){	Chd_str ={9th omit3}; 
	Elm_chd = (	0, 7, 10, 14);
	}
 
//サスフォー 
 
	CASE(40){	Chd_str ={sus4}; 
	Elm_chd = (	0, 5, 7);
	}
 
	CASE(42){	Chd_str ={sus2}; 
	Elm_chd = (	0, 2, 7);
	}
 
	CASE(47){	Chd_str ={7sus4}; 
	Elm_chd = (	0, 5, 7, 10);
	}
 
	CASE(49){	Chd_str ={sus4 add9}; 
	Elm_chd = (	0, 5, 7, 14);
	}
 
//♭5 ハーフディミニッシュ 
 
	CASE(50){	Chd_str ={m7b5};	//halfdim 
	Elm_chd = (	0, 3, 6, 10);
	}
 
	CASE(51){	Chd_str ={Mb5}; 
	Elm_chd = (	0, 4, 6);
	}
 
	CASE(57){	Chd_str ={7b5}; 
	Elm_chd = (	0, 4, 6, 10);
	}
 
	CASE(59){	Chd_str ={9b5}; 
	Elm_chd = (	0, 4, 6, 10, 14);
	}
 
//ディミニッシュ 
 
	CASE(60){	Chd_str ={dim}; 
	Elm_chd = (	0, 3, 6);
	}
 
	CASE(67){	Chd_str ={dim7}; 
	Elm_chd = (	0, 3, 6, 9);
	}
 
//セブンス 
 
	CASE(70){	Chd_str ={7th}; 
	Elm_chd = (	0, 4, 7, 10);
	}
 
	CASE(73){	Chd_str ={7b9}; 
	Elm_chd = (	0, 4, 7, 10, 13);
	}
 
	CASE(74){	Chd_str ={9th};	//7(9) 
	Elm_chd = (	0, 4, 7 10, 14);
	}
 
	CASE(75){	Chd_str ={7#9}; 
	Elm_chd = (	0, 4, 7, 10, 15);
	}
 
	CASE(76){	Chd_str ={7(11)}; 
	Elm_chd = (	0, 4, 7, 10, 17);
	}
 
	CASE(77){	Chd_str ={7#11}; 
	Elm_chd = (	0, 4, 7, 10, 18);
	}
 
	CASE(78){	Chd_str ={7b13}; 
	Elm_chd = (	0, 4, 10, 20);
	}
 
	CASE(79){	Chd_str ={7(13)}; 
	Elm_chd = (	0, 4, 10, 21);
	}
 
//#5 ヲーギュメント 
 
	CASE(80){	Chd_str ={aug}; 
	Elm_chd = (	0, 4, 8);
	}
 
	CASE(81){	Chd_str ={augM7};	//M7#5 
	Elm_chd = (	0, 4, 8, 11);
	}
 
	CASE(82){	Chd_str ={aug m7};	//m7#5 
	Elm_chd = (	0, 3, 8, 10);
	}
 
	CASE(83){	Chd_str ={aug mM7};	//mM7#5 
	Elm_chd = (	0, 3, 8, 11);
	}
 
	CASE(85){	Chd_str ={m(#5)}; 
	Elm_chd = (	0, 3, 8);
	}
 
	CASE(87){	Chd_str ={aug7};	//7#5 
	Elm_chd = (	0, 4, 8, 10);
	}
 
	CASE(88){	Chd_str ={aug7b9};	//7#5♭9 
	Elm_chd = (	0, 4, 8, 10, 13);
	}
 
	CASE(89){	Chd_str ={aug9};	//9(#5) 
	Elm_chd = (	0, 4, 8, 10, 14);
	}
 
//11th,13th 
 
	CASE(91){	Chd_str ={M11}; 
	Elm_chd = (	0, 4, 7, 11, 14, 17);
	}
 
	CASE(92){	Chd_str ={m11}; 
	Elm_chd = (	0, 3, 7, 10, 14, 17);
	}
 
	CASE(97){	Chd_str ={11th}; 
	Elm_chd = (	0, 4, 7, 10, 14, 17);
	}
 
	CASE(98){	Chd_str ={m13}; 
	Elm_chd = (	0, 3, 7, 10, 14, 17, 21);
	}
 
	CASE(99){	Chd_str ={13th}; 
	Elm_chd = (	0, 4, 7, 10, 14, 17, 21);
	}
  
	}	//SWITCH(Chd_type) 
} //コード
  
	//ヲンコード変換エンジン 


IF(0< Chd_type_btm){

	Btm_tmp = -12;	//C

	FOR(Int Btm_j=0;  Btm_j< Chd_type_btm;  Btm_j++){	Btm_tmp++;}

	//ヲンコードが-7[F]で、シフトキーが-10[D]の時、ヲクターブを下げる
	IF(Shift_key_type <Btm_tmp){	Btm_tmp = Btm_tmp-12;}


	Btm_tmp = Btm_tmp-Shift_key_type;	//[-(-7)]、引いて帳尻を合わせる
	Elm_chd= (Btm_tmp, Elm_chd);		//配列差込み


}　//IF


 
	//コードキーシフト 

	IF(Shift_sw==1){
		Shift_sw= 0;

		Shift_key =Shift_key +Shift_key_type; 		// MMLからのキー指定
		Master_key =Master_key +Master_key_type;	// MMLからの転調指定
	}
  
	//モジュール選択 
	SWITCH(Module_num_sw){
	
CASE(10){	//Sqrptnモジュールの定数 

//	SWITCH(Module_type){	//モジュール型
	
//Chk Part 
	
	IF(Module_type==0){	//TypeChk - MMLにて指定 

		Marks =12;	Octave = 2;	Double_skip =0;
		//[Marks]は240で割れる		//[Double_skip=1]で[Marks]は480で割れる
		Rand_sw = 0;
		VCO = 80;	Gate = 60;	Tim = 0;

		Chd_invert =5;	Chd_rev =1;
	}
  
//A Part 
	
	IF(1<=Module_type&Module_type<=8){	//TypeA - MMLにて指定 

		Marks =20;	Octave = 2;	Double_skip =0;
		Rand_sw = 0;
		VCO = 90;	Gate = 60;	Tim = 0;

		Chd_invert =0;	Chd_rev =0;
	}
  
//B Part 
	
	IF(11<=Module_type&Module_type<=14){ 

		Marks =16;	Octave = 3;	Double_skip =0;
		Rand_sw = 0;
		VCO = 100;	Gate = 50;	Tim = 0;

		Chd_invert =0;	Chd_rev =1;
	}
  
//A-TRK2 Part 
	
	IF(101<=Module_type&Module_type<=108){	//TypeA - MMLにて指定 

		Marks =48;	Octave = 3;	Double_skip =1;
		//[Marks]は240で割れる		//[Double_skip=1]で[Marks]は480で割れる
		Rand_sw = 2;
		VCO = 60;	Gate = 40;	Tim = 1;

		Chd_invert =0;	Chd_rev =0;
	}
  
//B-TRK2 Part 
	
	IF(111<=Module_type&Module_type<=114){ 

		Marks =8;	Octave = 2;	Double_skip =0;
		Rand_sw = 0;
		VCO = 60;	Gate = 40;	Tim = 1;

		Chd_invert =0;	Chd_rev =1;
	}
  
//	}	//SWITCH(Module_type)

	} //CASE(10) 
  
	CASE(20){	//Apgptnモジュールの定数 

//	SWITCH(Module_type){	//モジュール型


	
// ドラムモジュール 
// コードタイプから呼び出し
// モジュールは固定値

		SWITCH(Module_type){
	
//Chk Part 
	
	CASE(-100){ //バスドラモジュール 

	//n35 kick1、n36 kick2

	// Module
	VCO =90;	Gate = 50;	Tim = 3;	Panning = 60;

	Master_key =35;
	Elm_chd = (	0, 1);

	Sgltgr =0;	  	//[0(polysyn),1(monosyn)]

//	Paradiddle_sw =1; //パラティドルスイッチ
	}
 
	CASE(-200){ //ハイハットモジュール 

	//n42 closed、n44 pedal、n46 open

	// Module
	VCO =75;	Gate = 50;	Tim = 0;	Panning = 100;

	Master_key =42;

	Sgltgr =1;	  	//[0(polysyn),1(monosyn)]
	Unison_sw =0;		//ユニゾンスイッチ[0,1](offが望ましい)

//	Paradiddle_sw =1; 	//パラティドルスイッチ
	}
 
	CASE(-300){ //スネアモジュール 

	//n38 snare1、n40 snare2、n37 Side Stick [リムショット]

	// Module
	VCO =90;	Gate = 50;	Tim = 1;	Panning = 70;

	Master_key =38;
	Elm_chd = (	0, -1);

	Sgltgr =0;		//[0(polysyn),1(monosyn)]

//	Paradiddle_sw =1; //パラティドルスイッチ
	}
 
	CASE(-400){ //シンバルモジュール 
	//n49 CrashCymbal1、n51 RideCymbal1、n52 Chinese Cymbal1、
	//n55 Splash Cymbal、n57 Crash Cymbal 2、n59 Ride Cymbal 2

	// Module
	VCO =90;	Gate = 50;	Tim = 1;	Panning = 27;

	Master_key =49;

	Sgltgr =1;	  	//[0(polysyn),1(monosyn)]
	Unison_sw =0;		//ユニゾンスイッチ[0,1](offが望ましい)

//	Paradiddle_sw =1; 	//パラティドルスイッチ
	}
  
//A B Part 
	
	CASE(-101){ //バスドラモジュール 

	//n35 kick1、n36 kick2

	// Module
	VCO =100;	Gate = 50;	Tim = 3;	Panning = 60;

	Master_key =35;
	Elm_chd = (	0, 1);

	Sgltgr =0;	  	//[0(polysyn),1(monosyn)]

//	Paradiddle_sw =1; //パラティドルスイッチ
	}
 
	CASE(-201){ //ハイハットモジュール 

	//n42 closed、n44 pedal、n46 open

	// Module
	VCO =75;	Gate = 50;	Tim = 0;	Panning = 100;

	Master_key =42;

	Sgltgr =1;	  	//[0(polysyn),1(monosyn)]
	Unison_sw =0;		//ユニゾンスイッチ[0,1](offが望ましい)

//	Paradiddle_sw =1; 	//パラティドルスイッチ
	}
 
	CASE(-301){ //スネアモジュール 

	//n38 snare1、n40 snare2、n37 Side Stick [リムショット]

	// Module
	VCO =75;	Gate = 50;	Tim = 1;	Panning = 70;

	Master_key =38;
	Elm_chd = (	0, -1);

	Sgltgr =0;		//[0(polysyn),1(monosyn)]

//	Paradiddle_sw =1; //パラティドルスイッチ
	}
 
	CASE(-401){ //シンバルモジュール 
	//n49 CrashCymbal1、n51 RideCymbal1、n52 Chinese Cymbal1、
	//n55 Splash Cymbal、n57 Crash Cymbal 2、n59 Ride Cymbal 2

	// Module
	VCO =90;	Gate = 50;	Tim = 1;	Panning = 27;

	Master_key =49;

	Sgltgr =1;	  	//[0(polysyn),1(monosyn)]
	Unison_sw =0;		//ユニゾンスイッチ[0,1](offが望ましい)

//	Paradiddle_sw =1; 	//パラティドルスイッチ
	}
  
//Drum'n Part 
	
	CASE(-121){ //バスドラモジュール 

	//n35 kick1、n36 kick2

	// Module
	VCO =120;	Gate = 50;	Tim = 0;	Panning = 60;

	Master_key =35;
	Elm_chd = (	0, 1);

	Sgltgr =0;	  	//[0(polysyn),1(monosyn)]

//	Paradiddle_sw =1; //パラティドルスイッチ
	}
 
	CASE(-221){ //ハイハットモジュール 

	//n42 closed、n44 pedal、n46 open

	// Module
	VCO =90;	Gate = 50;	Tim = -2;	Panning = 100;

	Master_key =42;

	Sgltgr =1;	  	//[0(polysyn),1(monosyn)]
	Unison_sw =0;		//ユニゾンスイッチ[0,1](offが望ましい)

//	Paradiddle_sw =1; 	//パラティドルスイッチ
	}
 
	CASE(-321){ //スネアモジュール 

	//n38 snare1、n40 snare2、n37 Side Stick [リムショット]

	// Module
	VCO =105;	Gate = 50;	Tim = -1;	Panning = 70;

	Master_key =38;
	Elm_chd = (	0, -1);

	Sgltgr =0;		//[0(polysyn),1(monosyn)]

//	Paradiddle_sw =1; //パラティドルスイッチ
	}
 
	CASE(-421){ //シンバルモジュール 
	//n49 CrashCymbal1、n51 RideCymbal1、n52 Chinese Cymbal1、
	//n55 Splash Cymbal、n57 Crash Cymbal 2、n59 Ride Cymbal 2

	// Module
	VCO =105;	Gate = 50;	Tim = -1;	Panning = 27;

	Master_key =49;

	Sgltgr =1;	  	//[0(polysyn),1(monosyn)]
	Unison_sw =0;		//ユニゾンスイッチ[0,1](offが望ましい)

//	Paradiddle_sw =1; 	//パラティドルスイッチ
	}
  
	} //SWITCH 
  
// ユニゾンリフ 
//キーをボトムラインとしてユニゾン
	
//ブルースリフ 
// simple		 	std			 jazz
//┃C7┃C7┃C7┃C7┃	┃C7┃F7┃C7┃C7┃	┃C7┃F7┃C7┃C7┃

//┃F7┃F7┃C7┃C7┃	┃F7┃F7┃C7┃C7┃	┃F7┃F7┃C7┃C7┃

//┃G7┃F7┃C7┃C7┃	┃G7┃F7┃C7┃G7┃	┃Dm┃G7┃C7┃G7┃

//Key inA
// [A7  A7  A7  A7]		[A7  D7  A7  A7]		[A7  D7  A7  A7]
//			基本A型
// [D7  D7  A7  A7]		[D7  D7  A7  A7]		[D7  D7  A7  A7]

// [E7  D7  A7  A7]		[E7  D7  A7  E7]		[Bm  E7  A7  E7]
//			B型             C型
	
	IF(Module_type==-1){ //ブルースリフ A型 - MMLにて数字指定 

	// Module

	Sgltgr =1;	  //[0(polysyn),1(monosyn)]
	VCO =80;	Gate = 80;	Tim = 0;	Panning = 64;

	//Apg_type
	Unison_sw =1;	  //ユニゾンスイッチ
//	Paradiddle_sw =0; //パラティドルスイッチ

	Bt_mrks = (	1, 1, 1, 1,	1, 1, 1, 1);
	Bt_Keys= (	7, 7, 9, 7,	10, 7, 9, 7);
	//単音キーコントロール

	Bt_slide= (	-7, 0);	// 8段まで

	}
 
	IF(Module_type==-2){ //ブルースリフ B型 - MMLにて数字指定 

	Sgltgr =1;
	VCO =80;	Gate = 80;	Tim = 0;	Panning = 64;

	Unison_sw =1;
//	Paradiddle_sw =0

	Bt_mrks = (	1, 1, 1, 1,	1, 1, 1, 1);
	Bt_Keys= (	10, 10, 9, 7,	10, 10, 9, 7);

	Bt_slide= (	-7, 0);

	}
 
	IF(Module_type==-3){ //ブルースリフ C型 - MMLにて数字指定 

	Sgltgr =1;
	VCO =80;	Gate = 80;	Tim = 0;	Panning = 64;

	Unison_sw =1;
//	Paradiddle_sw =0;

	Bt_mrks = (	1, 1, 1, 1,	1, 1, 1, 1);
	Bt_Keys= (	7, 7, 9, 7,	7, 7, 9, 7);

	Bt_slide= (	-7, 0);


	}
   
// クラビモジュール[0-99] Sgltgr =0; //poly TypeA - MMLにて指定 
	
//Chk Part 
	
	IF(Module_type==0){	//TypeChk - MMLにて指定 

	// Module

	Sgltgr =0;	  //[0(polysyn),1(monosyn)]
	VCO = 60;		Gate = 90;	Tim = 1;	Panning = 64;
	//Shift_key =Shift_key +12;

	//Apg_type
	Chd_invert =4;

	Bt_mrks = (	0, 1, 10, 0,	-1, 0, 1, 10);

	}
  
//A Part 
	
	IF(1<=Module_type&Module_type<=8){ 

	// Module

	Sgltgr =0;	  //[0(polysyn),1(monosyn)]
	VCO =75;	Gate = 90;	Tim = 1;	Panning = 64;
	//Shift_key =Shift_key +12;

	//Apg_type
	Chd_invert =4;
//	Paradiddle_sw =-1; //パラティドルスイッチ

	Bt_mrks = (	1, 0, 0, 1,	10, 0, 0, -1);

	}
  
//B Part 
	
	IF(11<=Module_type&Module_type<=14){ 

	// Module

	Sgltgr =0;	  //[0(polysyn),1(monosyn)]
	VCO =75;	Gate = 90;	Tim = 1;	Panning = 64;
	//Shift_key =Shift_key +12;

	//Apg_type
	Chd_invert =4;
//	Paradiddle_sw =-1; //パラティドルスイッチ

	Bt_mrks = (	1, 1, -1, 0,	1, 10, 10, 10);

	}
   
// ベースモジュール[100-] 	// MMLにて数字指定 
// 単音楽器はダブルトラック仕様が良い
	
//Chk Part 
	
	IF(Module_type==100){ 

	// Module

	Sgltgr =1;	//[0(polysyn),1(monosyn)]
	VCO =85;	Gate = 33;	Tim = 0;	Panning = 64;
	Shift_key =Shift_key-12;

	//Apg_type
	Unison_sw =0;		//ユニゾンスイッチ //Bt=2 以上はユニゾンしない
//	Paradiddle_sw =0;	//パラティドルスイッチ


	Bt_slide= (	0, 0, 2, 3, 4,		5, 6, 7, 8)	// 8段まで

	Int Key_tmp =Shift_key_type;

	IF(12< Shift_key_type){		Key_tmp =Key_tmp-12;
	IF(24< Shift_key_type){		Key_tmp =Key_tmp-12;
	}	}
	IF(Shift_key_type< 0) {		Key_tmp =Key_tmp+12;
	IF(Shift_key_type< -12){	Key_tmp =Key_tmp+12;
	IF(Shift_key_type< -24){	Key_tmp =Key_tmp+12;
	}	}	}

	SWITCH(Key_tmp){
	CASE(0){	//C
	Bt_mrks = (	1, 1 ,1, 1);		//4つ以下にしない
	Bt_Keys= (	0, 0, 0, 0);		//単音キーコントロール
	}
	CASE(1){	//C#
	Bt_mrks = (	1, 1 ,1, 1, 1);
	Bt_Keys= (	0, 0, 0, 0, 0);
	}
	CASE(2){	//D
	Bt_mrks = (	1, 1 ,1, 1, 1,	1);
	Bt_Keys= (	0, 0, 0, 0, 0,	0);
	}
	CASE(3){	//D#
	Bt_mrks = (	1, 1 ,1, 1, 1,	1, 1 ,1);
	Bt_Keys= (	0, 0, 0, 0, 0,	0, 0, 0);
	}
	CASE(4){	//E
	Bt_mrks = (	1, 1 ,1, 1, 1,	1, 1 ,1);
	Bt_Keys= (	0, 0, 0, 0, 0,	0, 0, 0);
	}
	CASE(5){	//F
	Bt_mrks = (	1, 1 ,1, 1, 1,	1, 1 ,1, 1, 1);
	Bt_Keys= (	0, 0, 0, 0, 0,	0, 0, 0, 0, 0);
	}
	CASE(6){	//F#
	Bt_mrks = (	1, 1 ,1, 1, 1,	1, 1 ,1, 1, 1);
	Bt_Keys= (	0, 0, 0, 0, 0,	0, 0, 0, 0, 0);
	}
	CASE(7){	//G
	Bt_mrks = (	1, 1 ,1, 1, 1,	1, 1 ,1, 1, 1,	1, 1);
	Bt_Keys= (	0, 0, 0, 0, 0,	0, 0, 0, 0, 0,	0, 0);
	}
	CASE(8){	//Ab
	Bt_mrks = (	1, 1 ,1, 1, 1,	1, 1 ,1, 1, 1,	1, 1);
	Bt_Keys= (	0, 0, 0, 0, 0,	0, 0, 0, 0, 0,	0, 0);
	}
	CASE(9){	//A
	Bt_mrks = (	1, 1 ,1, 1, 1,	1, 1 ,1, 1, 1,	1, 1, 1, 1 ,1);
	Bt_Keys= (	0, 0, 0, 0, 0,	0, 0, 0, 0, 0,	0, 0, 0, 0, 0);
	}
	CASE(10){	//Bb
	Bt_mrks = (	1, 1 ,1, 1, 1,	1, 1 ,1, 1, 1,	1, 1, 1, 1 ,1);
	Bt_Keys= (	0, 0, 0, 0, 0,	0, 0, 0, 0, 0,	0, 0, 0, 0, 0);
	}
	CASE(11){	//B
	Bt_mrks = (	1, 1 ,1, 1, 1,	1, 1 ,1, 1, 1,	1, 1, 1, 1 ,1);
	Bt_Keys= (	0, 0, 0, 0, 0,	0, 0, 0, 0, 0,	0, 0, 0, 0, 0);
	}
	} //

	//[1]で鳴る、[0]は休符、[10]が続くとスラー、[ 2=> 8]でティドル、[-1=>-8]で裏打ちティドル
	//※[480/SizeOf(Bt_mrks)*2]の倍数を指定する、無理な指定は[Length_Error]が出力されます
	}
  
//A Part 
	
	IF(101<=Module_type&Module_type<=108){ 

	// Module

	Sgltgr =1;	//[0(polysyn),1(monosyn)]
	VCO =90;	Gate = 80;	Tim = 0;	Panning = 64;
	Shift_key =Shift_key-24;

	//Apg_type
	Unison_sw =0;		//ユニゾンスイッチ //Bt=2 以上はユニゾンしない
//	Paradiddle_sw =0;	//パラティドルスイッチ

	Bt_mrks = (	-1, 1 ,1,-1);			//4つ以下にしない
	Bt_Keys= (	0, 0, 0, 0);			//単音キーコントロール

	//[1]で鳴る、[0]は休符、[10]が続くとスラー、[ 2=> 8]でティドル、[-1=>-8]で裏打ちティドル
	//※[480/SizeOf(Bt_mrks)*2]の倍数を指定する、無理な指定は[Length_Error]が出力されます

	Bt_slide= (	0, 7, 2, 3, 4,		5, 6, 7, 8)	// 8段まで



	}
 
/*	IF(1<=Module_type&Module_type<=108){ 

	// Module

	Sgltgr =1;	//[0(polysyn),1(monosyn)]
	VCO =100;	Gate = 80;	Tim = 0;	Panning = 64;
	Shift_key =Shift_key-12;

	//Apg_type
	Unison_sw =0;		//ユニゾンスイッチ //Bt=2 以上はユニゾンしない
//	Paradiddle_sw =0;	//パラティドルスイッチ

	Bt_mrks = (	-2, 2 ,2,-2);			//4つ以下にしない
	Bt_Keys= (	0,12, 0,-12);			//単音キーコントロール

	Bt_slide= (	0, 7, 2, 3, 4,		5, 6, 7, 8)	// 8段まで



	}*/
  
//B Part 
	
IF(111<=Module_type&Module_type<=114){ 

	Sgltgr =1;
	VCO =90;	Gate = 80;	Tim = 0;	Panning = 64;
	Shift_key =Shift_key -24;

	Unison_sw =0;
//	Paradiddle_sw =0;

	Bt_mrks = (	-2, 2 ,2,-2);			//4つ以下にしない
	Bt_Keys= (	0,12, 0,-12);			//単音キーコントロール

	Bt_slide= (	0, 0, 0, 0, 0,	0, 0, 0, 0, 0);

	}
   
//	}	//SWITCH(Module_type)

	}	//CASE(20) 
  
CASE(30){	//Padptnモジュールの定数 

//	SWITCH(Module_type){	//モジュール型
	
//Chk Part 
	
	IF(Module_type==0){	//TypeChk - MMLにて指定 

	VCO = 80;	Gate =99;	Tim = 1;	Panning =64;
	Shift_key =Shift_key+12;
	Chd_invert =0;
	}
  
//A Part 
	
	IF(1<=Module_type&Module_type<=8){	//TypeA - MMLにて指定 

	VCO = 56;	Gate =99;	Tim = 1;	Panning =64;
	Shift_key =Shift_key+12;
	Chd_invert =5;
	}
  
//A-TRK4 Part 
	
	IF(101<=Module_type&Module_type<=108){	//TypeA - MMLにて指定 

	VCO = 56;	Gate =99;	Tim = 1;	Panning =64;
	Shift_key =Shift_key+12;
	Chd_invert =5;
	}
  
//B Part 
	
	IF(11<=Module_type&Module_type<=14){ 

	VCO = 56;	Gate =60;	Tim = 1;	Panning =64;
	Shift_key =Shift_key+12;
	Chd_invert =0;
	}
  
//B-TRK4Part 
	
	IF(111<=Module_type&Module_type<=114){ 

	VCO = 56;	Gate =60;	Tim = 1;	Panning =64;
	Shift_key =Shift_key+12;
	Chd_invert =5;
	}
  
//	}	//SWITCH(Module_type)

	}	//CASE(30) 

  
CASE(40){	//Prsptnモジュールの定数 

//	SWITCH(Module_type){	//モジュール型
	
//Chk Part 
	
	IF(Module_type==0){	//TypeChk - MMLにて指定 

		//[Marksは240で割れる数]
		Marks = 12;
	//[-1][1][0]
	Bt_mrks = (	1,   1,	  1,    1,	1,   1,   1,   1,	1,   1,   1,   1);//
	Bt_rdm  = (	0,   1,   2,    3,	0,   1,   2,   3,	0,   1,   2,   3);//
	Oct_chg = (	1,   3,   2,    0,	2,   1,   3,   0,	3,   0,   1,   2);//

		Phrase_rdmsw =0;			//コードランダムSW
		Oct_phrase_rdmsw =0;	Octave = 2;	//ヲクターブランダムSW
		//Shift_key =Shift_key+12;

		FR_sw = 0;		//発音Front[0]-Rear[1]切換

		VCO = 80;	Gate = 96;	Tim = 0;
		Chd_invert =0;	Chd_rev =0;
	}

  
//A Part 
	
	IF(1<=Module_type&Module_type<=8){	//TypeA - MMLにて指定 

		//[Marksは240で割れる数]
		Marks = 24;

	Bt_mrks = (2,        2,   	 2,   	   2,		2,   	  2,   		2,        2	);
	Bt_rdm  = (3,   3,   3,    3,	 2,   2,   2,   2,	1,   1,   1,   1,	0,   0,   0,   0);
	Oct_chg = (4,   3,   2,    3,	 2,   1,   2,   1,	0,   4,   2,   3,	1,   3,   0,   2);

		Phrase_rdmsw =1;	//コードランダムSW
		Oct_phrase_rdmsw =0;	//ヲクターブランダムSW

		Octave = 2;		//[Oct_phrase_sw =0]のみ
		FR_sw = 1;		//休符Front[0]-Rear[1]切換

		VCO = 60;	Gate = 75;	Tim = 0;
		Chd_invert =0;	Chd_rev =0;
	}

  
//B Part 
	
	IF(11<=Module_type&Module_type<=14){ 

		Marks = 24;

		Bt_mrks = (1, 1, 2, 1,	 1, 1, 2, 1,	1, 1, 2, 1,	1, 1, 2, 1	);
		Bt_rdm  = (0, 1, 2,3,0,	 0, 1, 2,3,0,	0, 1, 2,3,0, 	0, 1, 2,3,0	);
		Oct_chg = (0, 1, 2,3,2,	 0, 1, 2,3,2,	0, 1, 2,3,2, 	0, 1, 2,3,2	);

		Phrase_rdmsw =1;
		Oct_phrase_rdmsw =0;

		Octave = 2;
		FR_sw = 1;

		VCO = 60;	Gate = 75;	Tim = 0;
		Chd_invert =0;	Chd_rev =0;
	}
  
//C Part 
	
	IF(21<=Module_type&Module_type<=24){ 

		Marks = 16;

		Elm_chd = (	0, 4, 7, 11);

	Bt_mrks = (2,        2,          2,        2,	 	2,        2,		2,        2);
	Bt_rdm  = (3,   3,   3,    3,	 2,   2,   2,   2,	1,   1,   1,   1,	0,   0,   0,   0);
	Oct_chg = (4,   3,   2,    3,	 2,   1,   2,   1,	0,   4,   2,   3,	1,   3,   0,   2);

		Phrase_rdmsw =0;
		Oct_phrase_rdmsw =0;

		Octave = 2;
		FR_sw = 1;

		VCO = 100;	Gate = 60;	Tim = 0;
		Chd_invert =0;	Chd_rev =0;
	}
  
//	}	//SWITCH(Module_type)

	} //CASE(40) 
  
	}	//SWITCH(Module_num_sw) 
  
	// コードヴォイシング変換エンジン 

	IF( 0< Chd_invert){

		//IF(2 <SizeOf(Elm_chd) & SizeOf(Elm_chd)< 6){	//Chd_invertエンジン

			IF(Chd_invert==2){		// drop2

				Elm_chd(1)=Elm_chd(1)-12;
			}
			IF(Chd_invert==3){		// drop3

				Elm_chd(2)=Elm_chd(2)-12;
			}
			IF(Chd_invert==4){		// drop1&3

				Elm_chd(0)=Elm_chd(0)-12;
				Elm_chd(2)=Elm_chd(2)-12;
			}
			IF(Chd_invert==5){		// drop2&3

				Elm_chd(1)=Elm_chd(1)-12;
				Elm_chd(2)=Elm_chd(2)-12;
			}
			IF(Chd_invert==6){	// invert[drag1&2 drop4]

				Elm_chd(0)=Elm_chd(0)+12;
				Elm_chd(1)=Elm_chd(1)+12;
				Elm_chd(3)=Elm_chd(3)-12;
			}
		//}

		Elm_chd = ArraySortNum(Elm_chd); // 再ソート
	} //IF

 
	//リバースエンジン 
IF(Chd_rev==1){

		FOR(Int Rev_i=0; Rev_i< SizeOf(Elm_chd)/2; Rev_i++){

			Rev_tmp= Elm_chd(0+ Rev_i);
			Elm_chd(0+ Rev_i) = Elm_chd( SizeOf(Elm_chd)-1 -Rev_i);	//最後を最初へ代入

			Elm_chd( SizeOf(Elm_chd)-1 -Rev_i) =Rev_tmp;
		}
} //IF
  
} // Function 
   
// シーケンスエンジン 
	
//TrackName ={"シーケンスパターン　ver1.61"}// 
//Copyright ={"庚申works"}//

//関数部---------//
	
//	Function { 

	/*	------[変数の設定例]
	Int part1 = 4;					//整数型変数定義
	Str Lgh = {l24};				//文字列型変数定義
	#crd1 = { Sqrptn(60, 63, 67, 70, 53, 24)};	//マクロ定義 = 関数呼び出し
	*/

/*Function Sqrptn(	Int Part,		//Ptn(0)	小節数
                 	Int Parthalf,		//Ptn(1)	1/4小節数	[1,2,3]
                 	Int Chd_typertn,	//Ptn(2)	コード型選択	[Chdcall.hファイル]
                 	Int Shift_keyrtn,	//Ptn(3)	キー		KeyC [MMLファイル]
                 	Int Module_typertn,	//Ptn(4)	モジュール型	TypeA [MMLファイル]
                 	Int Master_keyrtn ){*/	//Ptn(5)	転調

Function Sqrptn(	Array Ptn){

	Int Part		=Ptn(0);
	Int Parthalf		=Ptn(1);
	
	//---[初期設定] 

	Int Module_num = 10;	//chdcallへ渡す値、旧Sqr_module
	Int TB=TimeBase;	//タイムベース読込み

	Int Master_key =48;	// [ノートナンバー n48/o4c ( C3 )]
	Int VCO = 100;		//ベロシティ値
	Int Gate = 60;		//ゲートタイム
	Int Tim = 0;		//タイミング調整

	//ノート生成
	Int Shift_key = 0;	//キーシフト[+-]
	Int Marks = 24;		//デフォルトは[24]分音符	// 4の倍数のみ
	Int Double_skip = 0;	//[0,1]倍速スキップスイッチ、[1]でスキップ

	//ノート修飾
	Int Octave = 0;		//ヲクターバー[0, 1, 2, 3]
	Int Rand_sw = 0;	//ランダム選択[0ランダム、1スラップ、2ゆりもどし]
	//Int Option =0;	//(裏スイッチ - コメントアウト済み)[0,1,2]

	Array Elm_chd = (	0, 5, 7, 12);
	Str Chd_str;
	//Int Chd_type_btm =0;

 
Chdcall( Ptn(2), Ptn(3), Ptn(4), Ptn(5) ); 

	//※注 IntはFORループの外へ(再定義エラー)
 
	//>>>エンジンコントローラー 

	//ループ計算//
	Int Marks_count = Marks*Part + Marks *Parthalf/4;	//音符数/1処理[M]

	Int Sgl_count = 0;
	Int Dub_count = 0;
	Int Adj_count = 0;
	Int Loop_count =0;

	IF(Double_skip == 1){
		Loop_count = Marks_count;	//配列出力ループ[K]
		Sgl_count =1;			//フラグ
	}
	ELSE{
		IF(8 < Marks){ Adj_count++;
		IF(16< Marks){ Adj_count++;
		}	}

		Sgl_count = Marks_count - Marks/4;	//倍速処理分減算する
		Dub_count = (Marks/4 -Adj_count)*2;	//倍速処理

		Loop_count = Sgl_count +Dub_count +Adj_count;	//配列出力ループ[K]
	}

	//配列出力//
	//Int Elm_select = 0;	//出音スイッチ分岐カウンタ[C]
	//Int Elm_sct_out =0;	//出音後のテンポラリ[E]
	Array Rdm_out_ary = ();
	Int Rdm_out = 0;	//事前減算ランダム出力[D]
	Int Rdm_i = 0;

	//Backforth変数
	Int Flagupdown = 0;	//ゆりもどし切換スイッチ

	//ヲクターブコントロール
	Array Oct_chg = (0);	//初期値

	SWITCH(Rand_sw){	//外部指定はSWITCHで
	CASE(0){
		SWITCH(Octave){
		CASE(1){	Oct_chg = (1, 0);	}
		CASE(2){	Oct_chg = (1, 2, 0, 1);	}
		CASE(3){	Oct_chg = (1, 3, 0, 2);	}
		}
	}
	CASE(1){
		SWITCH(Octave){
		CASE(1){	Oct_chg = (0, 1);	}
		CASE(2){	Oct_chg = (0, 2, 1);	}
		CASE(3){	Oct_chg = (0, 2, 3, 1);	}
		}
	}
	CASE(2){
		SWITCH(Octave){
		CASE(1){	Oct_chg = (0, 1);	}
		CASE(2){	Oct_chg = (0, 1, 2);	}
		CASE(3){	Oct_chg = (0, 1, 2, 3);	}
		}
	}
	} //SWITCH
 
	//>>>ランダムシーケンスエンジン

FOR(Int CKi= 0; CKi< Loop_count; CKi++){ 

	//I = Loop_count;		//カウンタ初期化
	//WHILE(0 < I){		//[0]でEXIT ::減算処理が複雑になりそうでWHILE::
	//	I--;

	//	IF(Flagdub==1){	//倍速、2in1カウンタ

	//		Rdmc--;
	//		IF(Rdmc==0){	I++;	}	//カウンタ減算
	//		ELSE{		Rdmc =1;}

	SWITCH(Rand_sw){ //Rdm_out_ary出力
	
CASE(0){	// Randomパターン 

	IF(CKi==0 & Sgl_count!=0){	Rdm_out_ary(CKi) =0;}
	ELSE{

	FOR(Int J= 1; 0< J; J--){ //出力
		IF(CKi==Loop_count-1){	Rdm_out_ary(CKi) =Random(SizeOf(Elm_chd)-1)+1;}	//[1,2,3]
		ELSE{			Rdm_out_ary(CKi) =Random(SizeOf(Elm_chd) );}	//[0,1,2,3]

		IF(Rdm_out_ary(CKi-1)==Rdm_out_ary(CKi) ){ J++;}	//同音チェック[配列同士で]
	}

	} //ELSE
} //CASE
 
CASE(1){	// Slapパターン 

	IF(SizeOf(Oct_chg)-1< Rdm_i ){	Rdm_out++;	Rdm_i =0;};
	Rdm_i++;

	IF(SizeOf(Elm_chd)-1 < Rdm_out ){	Rdm_out =0;}

	Rdm_out_ary(CKi) = Rdm_out;	//出力[0,0,1,1,2,2,]
} //CASE
 
CASE(2){	// Backforthパターン 

	Rdm_out_ary(CKi) = Rdm_out;	//出力[0,1,2,1,0,]

	SWITCH(Flagupdown){
	CASE(0){
		Rdm_out++;
		IF(SizeOf(Elm_chd)-1 < Rdm_out ){
			Rdm_i++;
			IF( Rdm_i ==SizeOf(Oct_chg)){	Flagupdown = 1;	Rdm_out= Rdm_out-2;}
			ELSE{				Rdm_out =0;}
		}
	}
	CASE(1){
		Rdm_out--;
		IF(Rdm_out< 0 ){
			Rdm_i--;
			IF( Rdm_i ==0){	Flagupdown = 0;	Rdm_out= Rdm_out+2;}
			ELSE{		Rdm_out =SizeOf(Elm_chd)-1;}
		}
	}
	} //SWITCH
} //CASE
  
	} //SWITCH(Rand_sw)
} //FOR 

 
	//ループ変数// 
	Int Flagdub = 0;	//倍速時フラグ
	Int Flagmkt = 1;
	Int Mkt = Marks;	//倍速用音符長テンポラリ[L]


	//ヲクターブ
	Int Oct_i =0;

	Array Elm_oct= ();
	FOR( Int RTi=0; RTi< SizeOf(Elm_chd); RTi++){
		Elm_oct(RTi) = 0;			// 配列初期化
	}

	//パン・ヴェロシティ・タイミング・ゲート
//--	Array VCO_rdmc_ary	= (-5,	 5);
//--	Array VCO_ary		= ( 4,	-4);
	Array Tim_ary		= (-1,	 0,   1,   0);

	Int Pan_value =0;
	Int Timvalue = 0;

	Int VCOvalue = VCO;	//--	Int VCOvalue = 0;
	Int Gate_value = Gate;	//--	Int Gate_value = 0;
//--	Int Flag_gate= 0;

	//ノート発音・ゲート
	Int Piyo_key = Master_key +Shift_key;
	Int Po = 0;		//ヲクターブスイッチ加算分
	Int Piyo = 0;		//実発音ノート

	Str Piyo_str;
 
	//FOR [WHILE]ループ

	Rdm_out_ary =(Rdm_out_ary, -1);	//配列差込み
	//Print({Rdm_out_ary:}+Rdm_out_ary );

	FOR(Int I =0; Rdm_out_ary(I)!=-1; I++){ 

	//IF(E==D){}
	//ELSE{
	//	Elm_select =Rdm_out;	//ランダム出力をエレメント選択へ
	//	P = Elm_chd(Rdm_out);	//配列呼出
	
	//ヲクターブエンジン 

	IF(0 < Octave){
	SWITCH(Rand_sw){	//外部指定はSWITCHで
	CASE(0){
		Oct_i = Elm_oct(Rdm_out_ary(I));	//配列メモリElm_oct()から読込み

		Po = Oct_chg(Oct_i);

		Oct_i++;
		IF(SizeOf(Oct_chg)-1 < Oct_i ){	Oct_i =0;}

		Elm_oct(Rdm_out_ary(I)) = Oct_i;
	}
	CASE(1){
		Po = Oct_chg(Oct_i);
		Oct_i++;
		IF(SizeOf(Oct_chg)-1 < Oct_i ){	Oct_i =0;}
	}
	CASE(2){
		SWITCH(Flagupdown){
		CASE(0){
			IF(Rdm_out_ary(I)== 0 ){	Po = Oct_chg(Oct_i);}
			IF(Rdm_out_ary(I)== SizeOf(Elm_chd)-1){ 		//トップで切換

				IF(SizeOf(Oct_chg)-1== Oct_i){	Flagupdown = 1;}
				ELSE{				Oct_i++;}
			}
		}
		CASE(1){
			IF(Rdm_out_ary(I)== SizeOf(Elm_chd)-1){	Po = Oct_chg(Oct_i);}
			IF(Rdm_out_ary(I)== 0 ){

				IF(Oct_i== 0){	Flagupdown = 0;}
				ELSE{		Oct_i--;}
			}
		}
		} //SWITCH
	}
	} //SWITCH
	} //IF
 
	//ヲートパン 

	IF(Rand_sw==0){
		Pan_value = 127 /(SizeOf(Elm_chd)-1) *Rdm_out_ary(I);	//パンアサインタイプ
	}
	ELSE{
		Pan_value= 127 /(SizeOf(Oct_chg)-1) *Oct_i;
	}
	Piyo_str ={Panpot(}+Pan_value+{)};
 
	//レングス 

	//IF(I == 0){		Mkt = Marks;	Flagdub = 0;	Flagmkt = 1;}

	IF(Double_skip==0){	//音符長半分
	IF(I == Sgl_count){	Mkt = Marks *2;	Flagdub = 1;	Flagmkt = 1;}
	IF(I == Loop_count -Adj_count & Adj_count!= 0){	Mkt = Marks;	Flagdub = 0;	Flagmkt = 1;}
	} //IF

	IF(Flagmkt==1){		//出力
		Flagmkt = 0;
		IF( (TB*4)%Mkt != 0){	Print({Sqrptn_Length_Error:}+{(}+(TB*4)+{/}+Mkt+{)} ); }

		Piyo_str =Piyo_str+{l%(}+((TB*4)/Mkt)+{)};

		//l%(480/Mkt);	//全音符で480/480、[tempo = 120]
	}
 
	//ヴェロシティ・タイミング 

	Timvalue= 0;

	//ヲクターブ減算
	//VCOvalue = 0;		//再代入
	//VCOvalue = -( 3*Po);


	//ノーマル、倍速加算
	IF(Rand_sw==0){
		IF(Flagdub==1){
			//VCOvalue = VCOvalue +VCO_rdmc_ary(I/2 %SizeOf(VCO_rdmc_ary));	//[0]から
			Timvalue = Timvalue +Tim_ary(I/2 %SizeOf(Tim_ary));		//余りは[0]から
		}
		ELSE{
			//VCOvalue = VCOvalue +VCO_ary(I%SizeOf(VCO_ary));	//余剰は[0]から
			Timvalue = Timvalue +Tim_ary(I%SizeOf(Tim_ary));	//余りは[0]から
		}
	}

	//バックフォース加算
	IF(Rand_sw==2){
		SWITCH(Flagupdown){
		CASE(0){
		//--	VCOvalue = VCOvalue -7;
		}
		CASE(1){
		//--	VCOvalue = VCOvalue +14;
			Timvalue =Timvalue -2;
		}
		} //SWITCH
	}


//Print({Timvalue:}+ Timvalue );

	IF(I==0){
	//--	VCOvalue = VCOvalue+VCO;
		Piyo_str =Piyo_str+{v(}+VCOvalue+{)};
	}

	Timvalue= Timvalue +Tim;
	Piyo_str =Piyo_str+{t(}+Timvalue+{)};
 
	//ノート発音・ゲート 

	//--Gate_value = 0;
	Piyo = Piyo_key+Elm_chd(Rdm_out_ary(I) )+Po*12;

	//--IF(I==0){	//ファーストノート
	//--	IF(80 <Gate){	Gate_value = 80;}
	//--	Gate_value =Gate/4;	Flag_gate= 2;
	//--}

	IF(Flagdub==1){ 	//倍速
		//--Gate_value =Gate_value -Gate/5;	Flag_gate= 2;

		IF(Rand_sw==0 & I%2==0){	Piyo = Piyo +12;}	//ハーモニー加算 [0]から
	}

	//実発音ノート

	IF(I==0){
	//--IF(0 < Flag_gate){
	//--	Flag_gate--;

	//--	Gate_value = Gate_value +Gate;
		Piyo_str =Piyo_str+{q(}+Gate_value+{)};
	}

	Piyo_str =Piyo_str+{n(}+Piyo+{)};
 
	//出力 

	Piyo_str;
	//Print(Piyo_str);

	//同音チェック
	//Elm_sct_out = Rdm_out;

	//Elm_sct_out = Elm_select;	//[E=C;]同音チェックテンポラリに代入
	//Po = 0;			//CASEごと独立カウントため初期化
  
	}	//FOR [WHILE] 



  
} // Function 
  
//TrackName ={"アルペジヲパターン　ver0.11"}// 
//Copyright ={"庚申works"}//

//関数部---------//
//[数字が多いものは代入、計算回数、を少なくする]
//[IF分岐数を少なくする]
	
//	Function { 

	/*	------[変数の設定例]
	Int part1 = 4;					//整数型変数定義
	Str Lgh = {l24};				//文字列型変数定義
	#crd1 = { Sqrptn(60, 63, 67, 70, 53, 24)};	//マクロ定義 = 関数呼び出し
	*/

/*
Function Apgptn(	Int Part,			//小節数
                 	Int Parthalf,			//1/4小節数	[1,2,3]
                 	Int Chd_typertn,		//コード型選択	[Chdcall.hファイル]
                 	Int Shift_keyrtn,		//キー		KeyC [MMLファイル]
                 	Int Module_typertn,		//モジュール型　TypeA [MMLファイル]
                 	Int Master_keyrtn ){		//転調
*/

Function Apgptn(	Array Ptn){

	Int Part		=Ptn(0);
	Int Parthalf		=Ptn(1);
	
	//---[初期設定] 

	Int Module_num = 20;		//chordcallへ渡す固定値、旧Apg_module
	Int TB=TimeBase;		//タイムベース読込み

	//ノート生成変数
	Int Master_key =48;		//デフォルトキー [ノートナンバー n48/o4c ( C3 )]
	Int Shift_key = 0;		//キーのシフト[+-]
	Int VCO = 100;			//デフォルトベロシティ値[0 - 127]
	Int Gate = 50;			//ゲートタイム
	Int Tim = 0;			//タイミング調整
	Int Panning =64;		//Pan指定

	//コード構成音
	Array Elm_chd = (	0, 5, 7, 12);
	Str Chd_str;
	//Int Chd_type_btm =0;

	//ゲートアルペジ
	Array Bt_mrks = (	1, 2, 3, 4,
				5, 6, 7, 8);

	//シングルトリガースイッチ
	Int Sgltgr =0;			//シングルトリガースイッチ[0(polysyn),1(Monosyn)]
	Int Unison_sw =0;		//ユニゾンスイッチ
//	Int Paradiddle_sw =-1;		//[0(bass),予定1-4(シングル),11-14(ダブル)]

	//装飾音
	Array Bt_slide= (	0, 0, 0, 0,  0, 0, 0, 0);	// 8段まで
	//単音キーシフト
	Array Bt_Keys= (	0, 1, 2, 3,  4, 5, 6, 7);
 
Chdcall( Ptn(2), Ptn(3), Ptn(4), Ptn(5) ); 
 
	//>>>ポリゲートエンジン 
	
	//FORループカウンタ初期化 

	Int For_count = Part;


	IF(Parthalf!=0){	//半小節指定時、1回追加
		For_count++;
	}
 
	//WHILEループカウンタ初期化 

	Int I = 0;		//WHILEカウンタ
	Int Loop_count =0;	//ループカウンタ
	Int Pan_value =Panning;	//パン
	Int VCOvalue = 0;	//ベロシティ
	Int Gatevalue = Gate;	//ゲート
	Int TimValue = 0;	//タイミング

	//ゲートアルペジ
	Int Btt = 0;		//スラー加算
	Int Flagyasumi =0;	//休符スイッチ
	Int Btmarksvalue = 0;	//音符長計算テンプ
	Int Btmarkstmp =1;	//Btmarkの倍化変数

	//シングルトリガー
	Int Piyo_key = Master_key +Shift_key;
	Int Piyo_unison =0;	//ユニゾン出力
	Int Piyo =0;
	Int Sti =0;		//さしもどしカウンタ
	Int Flagsti =0;		//ダブルトリガー解除フラグ
	Int Bttmp= 0;		//裏打ちテンポラリ

	//ポリ発音
	Array Piyo_ary=();
	Str Piyo_str;
	Str Grv_str;


	IF(Sgltgr==0){	//ポリエンジン
		Piyo_str =Piyo_str+CHR(39);	//[']

		FOR(Int I=0; I< SizeOf(Elm_chd); I++){
			Piyo_ary(I) = Master_key +Shift_key +Elm_chd(I);	//計算結果代入

			Piyo_str =Piyo_str+{n(}+(Piyo_ary(I) )+{)};	//文字を合成
		}

		Piyo_str =Piyo_str+CHR(39);
	} //IF

 
	FOR(Int J= For_count; 0< J; J--){ 
	//小節ループ

	
	//WHILEループカウンタ代入 

	IF(J==1 & Parthalf!=0 ){	//ラストループで半小節処理
		Loop_count = SizeOf(Bt_mrks)*Parthalf /4;
	}
	ELSE{
		Loop_count = SizeOf(Bt_mrks);
	}

//	Sti = -1;
	Bttmp= 0;

	I = 0;			//カウンタ再初期化
 
	WHILE(I < Loop_count){		//配列へ[I]代入 

		Flagyasumi = 0;
		Btt = 1;
		VCOvalue = 0;
		TimValue = 0;

		IF(Flagsti==2){		//ループ頭でSti[ループreset]を解除
			Btmarkstmp =1;
			//Sti= -1;
			Flagsti= 0;	//自分自身[Flagsti]を初期化
		}

	
	Bttmp= Bt_mrks(I); //出音長さ代入 

	IF(Bttmp==0){	// 休符、各分岐

		Flagyasumi= 1;
	}
	ELSE{
		IF(10< Bttmp){	Bttmp = Bttmp-10;	VCOvalue =VCO -VCO*4/3;	TimValue = 3;}	//弱拍
		IF(Bttmp< -10){	Bttmp = Bttmp+10;	VCOvalue =VCO -VCO*5/4;	TimValue = 2;}	//弱拍

		IF(Bttmp==1 | Bttmp==10){　//[Btmarkstmp =1]をスルー


			FOR(Int Bti= I; Bti< Loop_count-1; Bti++){	//[Loop_count-1] ラストキャンセル
				IF(Bt_mrks(Bti+1)==10){	Btt++;}
				ELSE{			EXIT;}
			}
			//I = I +Btt-1; //最下段へ
		}
		ELSE{	//倍テンポ、裏打ち


			IF(Flagsti==0){ //初回のみフラグ
				Flagsti =1;

				IF(Bttmp<= -1){			//裏打ち倍テンポ
					Flagyasumi= 2;
					Bttmp= -Bttmp;
					Btmarkstmp =Bttmp*2;
				}
				ELSE{
					Btmarkstmp =Bttmp;	//倍テンポ化
				}
				Sti =Bttmp;
			}
		}
	} //ELSE
 
	//ゲートアルペジ音符長 

	Btmarksvalue =SizeOf(Bt_mrks)*Btmarkstmp;

	IF((TB*4)*Btt %Btmarksvalue!=0){
		Print({Apgptn_Length_Error:}+{(}+(TB*4)+{*}+Btt+{/}+Btmarksvalue+{)} );
	}

	//l%(480*Btt /Btmarksvalue); //tempo = 120時、全音符で[480*24 /24*1]

	//Print(MML(l));
	//Print(SizeOf(Bt_mrks));
	//Print(Btt);

	Grv_str = {l%(}+( (TB*4)*Btt /Btmarksvalue)+{)};
 
	IF(Flagyasumi==1){ //休符スイッチ 

		//r; //休符
		Grv_str = Grv_str+{r};
		Grv_str;
	}
 
	ELSE{  //発音スイッチ 
	
	//グルーブ代入 


	VCOvalue = VCO +VCOvalue;
	TimValue = Tim +TimValue;

	Grv_str = Grv_str+{Panpot(}+Pan_value+{)};
	Grv_str = Grv_str+{v(}+VCOvalue+{)};
	Grv_str = Grv_str+{t(}+TimValue+{)};
	Grv_str = Grv_str+{q(}+Gatevalue+{)};

	//Grv_str;
 
	//ノート発音エンジン--- 

	
IF(Sgltgr==0){	//ポリエンジン 

	IF(Flagsti ==1){
		WHILE(0< Sti){	Sti--;

			IF(Flagyasumi==2){	//裏打ち
				FOR(Int V=0;V< 2; V++){
					SWITCH(V){
						CASE(0){	Grv_str = Grv_str+{r};}
						CASE(1){	Grv_str = Grv_str+Piyo_str;}
					}
				}
			}
			ELSE{	Grv_str = Grv_str+Piyo_str;	//ティドル
			}

			IF(Sti== 0){	Flagsti =2;}	//フラグ頭で解除
		}
	}
	ELSE{	Grv_str = Grv_str+Piyo_str;
	}

} //IF
 
IF(Sgltgr==1){	//モノエンジン 

	Piyo_unison =Piyo_key +Bt_Keys(I);	//キーシフト

	IF(Flagsti ==1){

		WHILE(0< Sti){	Sti--;	//ティドル

			Piyo =Piyo_unison;

			IF(Flagyasumi==2){	Piyo =Piyo +Bt_slide(Btmarkstmp/2 -Sti-1);

				FOR(Int W=0;W< 2; W++){
					SWITCH(W){
						CASE(0){	Grv_str = Grv_str+{r};}
						CASE(1){	Grv_str = Grv_str+{n(}+Piyo+{)};}
					}
				}
			}
			ELSE{
				Piyo =Piyo +Bt_slide(Btmarkstmp -Sti-1);	//キースライド 6-[6-0]=[0-6]
				Grv_str = Grv_str+{n(}+Piyo+{)};
			}

			IF(Sti== 0){	Flagsti =2;}	//フラグ頭で解除
		}
	}
	ELSE{

		IF(Flagsti< 1 & Unison_sw==1){		//リフ

			Grv_str = Grv_str+{'n(}+Piyo_unison+{)n(}+Piyo_key+{)'};
		}
		ELSE{
			Grv_str = Grv_str+{n(}+Piyo_unison+{)};		//シングル
		}
	}
} //IF
   

		Grv_str;
		//Print(Grv_str);	//デバック
		// {y64,1Piyo_str;}

	} //ELSE 
  
		I = I +Btt-1;
		I++;
	} //WHILE 
  
	} //FOR 
   
} // Function 
  
//TrackName ={"パッドパターン　ver0.31"}// 
//Copyright ={"庚申works"}//

//関数部---------//
	
//	Function { 

	/*	------[変数の設定例]
	Int part1 = 4;					//整数型変数定義
		Str Lgh = {l24};			//文字列型変数定義
	#crd1 = { Sqrptn(60, 63, 67, 70, 53, 24)};	//マクロ定義 = 関数呼び出し
	*/

/*Function Padptn(	Int Part,			//小節数
                 	Int Parthalf,			//1/4小節数	[1,2,3]
                 	Int Chd_typertn,		//コード型選択	[Chdcall.hファイル]
                 	Int Shift_keyrtn,		//キー		KeyC [MMLファイル]
                 	Int Module_typertn,		//モジュール型　TypeA [MMLファイル]
                 	Int Master_keyrtn ){*/		//転調

Function Padptn(	Array Ptn){

	Int Part		=Ptn(0);
	Int Parthalf		=Ptn(1);
	
	//---[初期設定] 

	Int Module_num = 30;		//chordcallへ渡す値、旧Pad_module
	Int TB=TimeBase;		//タイムベース読込み

	Int Master_key =48;		//デフォルトキー [ノートナンバー n48/o4c ( C3 )]

	//ベロシティ
	Int VCO = 100;			//デフォルトベロシティ値[0 - 127]
//	Int VCO = MML(v);		//
	Int Gate = 100;			//ゲートタイム
	Int Tim = 0;			//タイミング調整
	Int Panning =64;		//Pan指定

	//ノート生成
	Int Shift_key = 0;		//キーのシフト[+-]

	//初期値 - 引数なしはココになる
	Array Elm_chd = (	0, 5, 7, 12);
	Str Chd_str;
	//Int Chd_type_btm =0;
 
Chdcall( Ptn(2), Ptn(3), Ptn(4), Ptn(5) ); 
 
//>>>エンジンコントローラー 

	
	//[初期設定] 

	Int Marks_count = 0;	//音の長さ/1処理[M]
 
	Marks_count = Part*4 + Parthalf; 
  
	//>>>ポリゲートエンジン 
	
	//初期化 

	Int Pan_value =0;	//パンテンプ
	Int VCOvalue = 0;	//ベロシティテンポラリ
	Int Gatevalue = 0;	//ゲートテンプ
	Int TimValue = 0;	//タイミングテンプ

	Str Piyo_str;
 
	//ゲートアルペジ音符長 

	//l%(480/4*Marks_count); //tempo = 120時、全音符で[480/4*4]

	//Print({Marks_count});
	//Print(Marks_count);

	Piyo_str = {l%(}+((TB*4)/4*Marks_count)+{)};
 
	//パンコントロール 

	Pan_value　= Panning;

	//Panpot(Pan_value);

	Piyo_str = Piyo_str+{Panpot(}+Pan_value+{)};
 
	//ヴェロシティコントロール 

	VCOvalue = VCO;

	//v(VCOvalue);

	Piyo_str = Piyo_str+{v(}+VCOvalue+{)};
 
	//ゲートコントロール 

	Gatevalue = Gate;

	//q(Gatevalue);

	Piyo_str = Piyo_str+{q(}+Gatevalue+{)};
 
	//ビートタイミングコントロール 

	TimValue = Tim;

	//t(TimValue);

	Piyo_str = Piyo_str+{t(}+TimValue+{)};
 
	//ノート発音エンジン--- 

	Array Piyo_ary=();	//ループレスのため

	Piyo_str = Piyo_str+CHR(39);	//[']
	//Piyo_str =CHR(39);	//[']

	FOR(Int I=0; I< SizeOf(Elm_chd); I++){
		Piyo_ary(I) = Master_key +Shift_key +Elm_chd(I);	//計算結果代入

		Piyo_str =Piyo_str+{n(}+(Piyo_ary(I) )+{)};	//文字を合成
	}
	Piyo_str =Piyo_str+CHR(39);

	//Print(Piyo_str);

	Piyo_str;	//ポリ発音

	// [y64,1;Piyo_str;]
   
} // Function 
  
//TrackName ={"フレーズパターン　ver0.21"}// 
//Copyright ={"庚申works"}//

//関数部---------//
	
//	Function { 

	/*	------[変数の設定例]
	Int part1 = 4;					//整数型変数定義
	Str Lgh = {l24};				//文字列型変数定義
	#crd1 = { Sqrptn(60, 63, 67, 70, 53, 24)};	//マクロ定義 = 関数呼び出し
	*/

/*Function Sqrptn(	Int Part,		//Ptn(0)	小節数
                 	Int Parthalf,		//Ptn(1)	1/4小節数	[1,2,3]
                 	Int Chd_typertn,	//Ptn(2)	コード型選択	[Chdcall.hファイル]
                 	Int Shift_keyrtn,	//Ptn(3)	キー		KeyC [MMLファイル]
                 	Int Module_typertn,	//Ptn(4)	モジュール型	TypeA [MMLファイル]
                 	Int Master_keyrtn ){*/	//Ptn(5)	転調

Function Prsptn(	Array Ptn){

	Int Part		=Ptn(0);
	Int Parthalf		=Ptn(1);
	
	//---[初期設定] 

	Int Module_num = 40;	//chdcallへ渡す値、旧Sqr_module
	Int TB=TimeBase;	//タイムベース読込み

	Int Master_key =48;	// [ノートナンバー n48/o4c ( C3 )]
	Int VCO = 100;		//デフォルトベロシティ値
	Int Gate = 60;		//ゲートタイム
	Int Tim = 0;		//タイミング調整

	//ノート生成
	Int Shift_key = 0;	//キーシフト[+-]
	Int Marks = 24;		//デフォルトは[24]分音符	// 4の倍数のみ

	//ノート修飾
	Array Elm_chd = (0, 4, 7, 11);
	Str Chd_str;
	//Int Chd_type_btm =0;

	Array Bt_mrks = (1, -2,  1,  1,		1, -2,  1,  1,		1, -2, -2,  1,		1, 1,  1,  1	);
	Array Bt_rdm  = (0,  1,2,3,  0,		0,  1,2,3,  0,		0,  1,2,3,0,0, 		0, 1,  2,  0	);
	Array Oct_chg = (0,  1,2,3,  2,		0,  1,2,3,  2,		0,  1,2,3,2,1, 		0, 1,  2,  2	);

	Int Phrase_rdmsw =0;
	Int Oct_phrase_rdmsw =0;
	Int Octave =3;

	Int FR_sw = 0;		//休符Front[0]-Rear[1]切換
 
Chdcall( Ptn(2), Ptn(3), Ptn(4), Ptn(5) ); 
 
	//休符差込み// 
	//Int Marks_count = 0;	//音符数/1処理[M]

	Int Marks_count = Marks*Part +Marks *Parthalf/4 - SizeOf(Bt_mrks);	//休符カウント[番兵分注意]

	//IF (Marks_count< 0){ Print({Prsptn_SizeOf(Bt_mrks)_Error:}+(Marks*Part +Marks*Parthalf/4)+{-}+SizeOf(Bt_mrks)+{< 0});}

	//Print(Marks_count);

	Str R_str;
	IF (0< Marks_count){

		R_str= {l%}+((TB*4)/Marks);

		FOR(Int J =Marks_count; 0< J; J--){
			R_str= R_str+{r};
		}
		IF(FR_sw==1){	R_str;}	//休符出力
	}

	Array Bt_mrks_tmp = ();
	IF(Marks_count< 0){

		Bt_mrks_tmp =Bt_mrks;
		Bt_mrks= ();		//初期化

		FOR(Int Cki= 0; Cki< Marks*Part +Marks *Parthalf/4; Cki++){	//自動配列カッター

			Bt_mrks(Cki)= Bt_mrks_tmp(Cki);
		}
	}
 
	//配列変換// 

	Bt_mrks= (Bt_mrks, -11);	//配列差込み
	//Print({Bt_mrks:}+Bt_mrks);	//デバック

	Int Bt_tmp = 0;			//倍速処理ループ
	Array Bt_Keys = ();

	FOR(Int Bti=0; Bt_mrks(Bti)!=-11; Bti++){

		IF(Bt_mrks(Bti)==0 | Bt_mrks(Bti)==1 ){
			Bt_Keys = (Bt_Keys, Bt_mrks(Bti));	//[ 0, 1]
		}
		ELSE{
			IF(Bt_mrks(Bti) <0 ){	Bt_tmp = -Bt_mrks(Bti);}	//[-1,-2]
			ELSE{			Bt_tmp = Bt_mrks(Bti);}		//[ 2, 3]

			FOR(Int Btj=Bt_tmp ;0< Btj ; Btj--){

				IF(Bt_mrks(Bti) <0){	Bt_Keys = (Bt_Keys, Bt_mrks(Bti)*2, -Bt_mrks(Bti)*2);} //出力
				ELSE{			Bt_Keys = (Bt_Keys, Bt_mrks(Bti));}
			}
		}
	}


	//Bt_mrks = (	-2, 2 ,2,-2);
	//Bt_Keys= (	0,12, 0,-12);
	//Oct_chg = (0, 2, 3, 1);
 
	//エンジン// 
	Int Flag_Bt= 0;		//トップノートのボトムスイッチ
	Str Piyo_str;
	Int Piyo_key = Master_key +Shift_key;
	Int Piyo = 0;		//実発音ノート
	Int Po = 0;
	Int Po_sct_out =0;
	Int Elm_sct_out =0;	//出音後のテンポラリ[E]
	Int Rdm_out = 0;	//事前減算ランダム出力[D]

	Int Mkt = 0;		//音符長テンポラリ
	Int Pan_value =64;	//パンテンプ
	Int VCOvalue = 0;	//ベロシティテンポラリ
	Int Timvalue = 0;	//タイミングテンプ
	Int Gate_value = 0;	//ゲートテンプ
	Int Oct_i =0;
	//Int Rdm_i =0;

	Bt_Keys= (Bt_Keys, -11);	//配列差込み
	//Print({Bt_Keys:}+Bt_Keys);	//デバック
	Array VCO_ary	= ( 4,-4);
	Array Tim_ary	= (-1, 0, 1, 0);


	FOR(Int I=0; Bt_Keys(I)!=-11; I++){

		IF(Bt_Keys(I) <0){	Mkt = -Bt_Keys(I) * Marks;}
		ELSE{
			IF(Bt_Keys(I)==0){	Mkt = Marks;}
			ELSE{			Mkt = Marks *Bt_Keys(I);}
		}

		IF((TB*4)%Mkt != 0){	Print({Prsptn_Length_Error:}+{(}+(TB*4)+{/}+Mkt+{)} ); }
		Piyo_str ={l%(}+((TB*4)/Mkt)+{)};	//全音符で480/480、[tempo = 120]


		IF(Bt_Keys(I)<= 0){	Piyo_str =Piyo_str+{r};}
		ELSE{
			IF(Phrase_rdmsw==1){
				IF(Flag_Bt==0){	Rdm_out= 0;	Flag_Bt= 1;}
				ELSE{

					FOR(Int J=1; 0 < J; J--){		//同音チェック
						Rdm_out =Random(SizeOf(Elm_chd) );
						IF(Elm_sct_out==Rdm_out ){ J++;}
					}
					Elm_sct_out = Rdm_out;
				}
			}
			ELSE{
				//IF(SizeOf(Bt_rdm)-1 < Rdm_i ){	Rdm_i =0;}	//ビート
				Rdm_out= Bt_rdm(I);
				//Rdm_i++;
				IF(SizeOf(Elm_chd)-1< Rdm_out){	Rdm_out = SizeOf(Elm_chd)-1;}	//ヲーバーカット
			}

			//Print(Rdm_out);
			Pan_value = 127 /(SizeOf(Elm_chd)-1) *Rdm_out;	//パンアサイン
			Piyo_str =Piyo_str+{Panpot(}+Pan_value+{)};


			Timvalue = Tim_ary(I%SizeOf(Tim_ary));		//タイミング
			Piyo_str =Piyo_str+{t(}+(Tim+Timvalue)+{)};

			Gate_value = Gate;				//ゲート
			Piyo_str =Piyo_str+{q(}+Gate_value+{)};

			IF(Oct_phrase_rdmsw==1){				//ヲクターブ
				FOR(Int K=1; 0 < K; K--){
					Po =Random(Octave);
					IF(Po_sct_out==Po ){ K++;}
				}
				Po_sct_out = Po;
			}
			ELSE{
				IF(SizeOf(Oct_chg)-1 < Oct_i ){	Oct_i =0;}
				Po = Oct_chg(Oct_i);
				Oct_i++;
			}

			VCOvalue = -3*Po;			//ヴェロシティ
			VCOvalue = VCOvalue +VCO_ary( I%SizeOf(VCO_ary) );
			Piyo_str =Piyo_str+{v(}+(VCO+VCOvalue)+{)};

			Piyo = Piyo_key+Elm_chd(Rdm_out)+Po*12;	//ノート
			Piyo_str =Piyo_str+{n(}+Piyo+{)};
		}

		Piyo_str;	//出力
		//Print({Piyo_str:}+Piyo_str);
	} //FOR

 
	//休符差込み// 

	IF (0< Marks_count){	IF(FR_sw==0){	R_str;}	} //休符出力
	//Print(R_str);
  
} // Function 
  
//TrackName ={"休符パターン　ver0.11"}// 
//Copyright ={"庚申works"}//

//関数部---------//
	
//	Function { 

	/*	------[変数の設定例]
	Int part1 = 4;					//整数型変数定義
		Str Lgh = {l24};			//文字列型変数定義
	#crd1 = { Sqrptn(60, 63, 67, 70, 53, 24)};	//マクロ定義 = 関数呼び出し
	*/

/*Function Rptn(	Int Part,			//小節数
                 	Int Parthalf,			//1/4小節数	[1,2,3]
                 	Int Chd_typertn,		//コード型選択	[Chdcall.hファイル]
                 	Int Shift_keyrtn,		//キー		KeyC [MMLファイル]
                 	Int Module_typertn,		//モジュール型　TypeA [MMLファイル]
                 	Int Master_keyrtn ){*/		//転調

Function Rptn(	Array Ptn){

	Int Part		=Ptn(0);
	Int Parthalf		=Ptn(1);
	
	//---[初期設定] 

	//Int Module_num = 50;		//chordcallへ渡す値、旧Pad_module

//Chdcall( Ptn(2), Ptn(3), Ptn(4), Ptn(5) );


//>>>エンジンコントローラー

	//[初期設定]

	Int TB=TimeBase;	//タイムベース読込み
	//Int Marks_count = 0;

	Int Marks_count = Part*4 + Parthalf;	//音の長さ/1処理[M]

	//初期化

	Str Piyo_str;

	//ゲートアルペジ音符長

	//l%(480/4*Marks_count); //tempo = 120時、全音符で[480/4*4]

	//Print({Marks_count});
	//Print(Marks_count);

	Piyo_str = {l%(}+((TB*4)/4*Marks_count)+{)};

	Piyo_str =Piyo_str+{r};

	//Print(Piyo_str);

	Piyo_str;	//休符発行
  
} // Function 
  
//TrackName ={"ディレイパターン　ver0.11"}// 
//Copyright ={"庚申works"}//

//関数部---------//
	
//	Function { 

	/*	------[変数の設定例]
	Int part1 = 4;					//整数型変数定義
		Str Lgh = {l24};			//文字列型変数定義
	#crd1 = { Sqrptn(60, 63, 67, 70, 53, 24)};	//マクロ定義 = 関数呼び出し
	*/

/*Function Dlyptn(	Int Part,			//小節数
                 	Int Parthalf){*/		//1/4小節数	[1,2,3]

Function Dlyptn(	Array Ptn){

	Int Part		=Ptn(0);
	//Int Parthalf		=Ptn(1);
	
	//---[初期設定] 

	//Int Module_num = 60;		//chordcallへ渡す値、旧Pad_module

//>>>エンジンコントローラー

	//[初期設定]

	//Int Marks_count = 0;	//音の長さ/1処理[M]

	Int TB=TimeBase;	//タイムベース読込み
	Int TP=Tempo;		//テンポ読込み
	//Print({TB:}+TB);
	//Print({TP:}+TP);

	Int Marks_count = TB*TP*Part/60/1000;
	//[57step]		[333]
	//Print({Marks_count:}+Marks_count);

	RESULT = Marks_count;


	/*	//初期化
	Str Piyo_str;

	//ゲートアルペジ音符長
	Piyo_str = {l%(}+Marks_count+{)};

	Piyo_str =Piyo_str+{r};

	Print(Piyo_str);

	Piyo_str;	//休符発行
	*/
  
} // Function 
  
//TrackName ={"リリックパターン　ver1.01"}// 
//Copyright ={"庚申works"}//

//関数部---------//

/*Function Padptn(	Int Part,			//小節数
                 	Int Parthalf,			//1/4小節数	[1,2,3]
                 	Int Chd_typertn,		//コード型選択	[Chdcall.hファイル]
                 	Int Shift_keyrtn,		//キー		KeyC [MMLファイル]
                 	Int Module_typertn,		//モジュール型　TypeA [MMLファイル]
                 	Int Master_keyrtn ){*/		//転調

Function Lyricptn(	Array Ptn){

	//---[初期設定]

	//Int Module_num = 70;		//chordcallへ渡す値、旧Pad_module

	Int TB=TimeBase;	//タイムベース読込み
	Int TM_read=Time;	//リアルタイム読込み
	Str TM_write ={(}+((TM_read/(TB*4))+1)+{:}+(((TM_read%(TB*4))/TB)+1)+{:}+(TM_read%TB)+{)};

	Int Keyin_set_tmp = Keyin_set;	//親からローカルへコピー


	//グローバル
	Int Master_key =0;
	Int Shift_key =0;

	Array Elm_chd = ();
	Str Chd_str;


	//コードコール呼び出し
	Chdcall( Ptn(2),Ptn(3) );	//Ptn(2)[Chord],Ptn(3)[Key]


	//ローカル

	//キー出力
	Int Key_chk =Ptn(3);

	Key_chk= Key_chk%12;			IF(Key_chk< 0){Key_chk= Key_chk +12};
	Keyin_set_tmp= Keyin_set_tmp%12;	IF(Keyin_set_tmp< 0){Keyin_set_tmp= Keyin_set_tmp +12};

	Array Key_Ary = ({C}, {C#}, {D}, {D#}, {E}, {F}, {F#}, {G}, {G#}, {A}, {A#}, {B} );

	Str Key_str = Key_Ary(Key_chk);
	Str Keyin_set_str = Key_Ary(Keyin_set_tmp);


	//ボトム出力
	Array Btm_Ary = ({/C}, {/C#}, {/D}, {/D#}, {/E}, {/F}, {/F#}, {/G}, {/G#}, {/A}, {/A#}, {/B} );
	Str Btm_str;

	Int Chd_type_btm_chk = Ptn(2)/100;
	IF(0< Chd_type_btm_chk){	Btm_str = Btm_Ary(Chd_type_btm_chk);}


	// コードカラー出力
	Array Chd_Color_Ary = ({T     },{SD    },{D     },{T,SD  },{T,D   },{TM    },{SDM   },{DM    },{TM,SDM},{      } );
	Str Chd_Color_str;

	Int Chd_type_chk= Ptn(2)%100;

	Key_chk =Key_chk -Keyin_set_tmp;	IF(Key_chk< 0){Key_chk= Key_chk +12};	//Keyin Cへ変更
	//Print(Key_chk);
	SWITCH(Key_chk){
	CASE(0){	//C
		SWITCH(Chd_type_chk){
		CASE(10){	Chd_Color_str =Chd_Color_Ary(0);}	// CM  T
		CASE(16){	Chd_Color_str =Chd_Color_Ary(0);}	// C6  T
		CASE(17){	Chd_Color_str =Chd_Color_Ary(0);}	// CM7 T
		CASE(20){	Chd_Color_str =Chd_Color_Ary(5);}	// Cm  TM
		CASE(26){	Chd_Color_str =Chd_Color_Ary(5);}	// Cm6 TM
		CASE(27){	Chd_Color_str =Chd_Color_Ary(5);}	// Cm7 TM
		CASE(29){	Chd_Color_str =Chd_Color_Ary(5);}	// Cm add9 TM
		CASE(80){	Chd_Color_str =Chd_Color_Ary(0);}	// Caug7 T
		DEFAULT{	Chd_Color_str =Chd_Color_Ary(9);}
		}
	}
	CASE(1){	//C#
		SWITCH(Chd_type_chk){
		CASE(17){	Chd_Color_str =Chd_Color_Ary(6);}	// DbM7 SDM
		CASE(70){	Chd_Color_str =Chd_Color_Ary(2);}	// Db7 D
		DEFAULT{	Chd_Color_str =Chd_Color_Ary(9);}
		}
	}
	CASE(2){	//D
		SWITCH(Chd_type_chk){
		CASE(27){	Chd_Color_str =Chd_Color_Ary(1);}	// Dm7 SD
		CASE(50){	Chd_Color_str =Chd_Color_Ary(6);}	// Dm7b5 SDM
		DEFAULT{	Chd_Color_str =Chd_Color_Ary(9);}
		}
	}
	CASE(3){	//D#
		SWITCH(Chd_type_chk){
		CASE(17){	Chd_Color_str =Chd_Color_Ary(5);}	// EbM7 TM
		DEFAULT{	Chd_Color_str =Chd_Color_Ary(9);}
		}
	}
	CASE(4){	//E
		SWITCH(Chd_type_chk){
		CASE(27){	Chd_Color_str =Chd_Color_Ary(4);}	// Em7 T,D
		DEFAULT{	Chd_Color_str =Chd_Color_Ary(9);}
		}
	}
	CASE(5){	//F
		SWITCH(Chd_type_chk){
		CASE(17){	Chd_Color_str =Chd_Color_Ary(1);}	// FM7 SD
		CASE(20){	Chd_Color_str =Chd_Color_Ary(6);}	// Fm  SDM
		CASE(26){	Chd_Color_str =Chd_Color_Ary(6);}	// Fm6 SDM
		CASE(27){	Chd_Color_str =Chd_Color_Ary(6);}	// Fm7 SDM
		CASE(29){	Chd_Color_str =Chd_Color_Ary(6);}	// Fm add9 SDM
		CASE(80){	Chd_Color_str =Chd_Color_Ary(1);}	// Faug7 SD
		DEFAULT{	Chd_Color_str =Chd_Color_Ary(9);}
		}
	}
	CASE(6){	//F#
		SWITCH(Chd_type_chk){
		CASE(17){	Chd_Color_str =Chd_Color_Ary(0);}	// F#M7 T
		CASE(50){	Chd_Color_str =Chd_Color_Ary(3);}	// F#m7♭5 T,SD
		DEFAULT{	Chd_Color_str =Chd_Color_Ary(9);}
		}
	}
	CASE(7){	//G
		SWITCH(Chd_type_chk){
		CASE(27){	Chd_Color_str =Chd_Color_Ary(7);}	// Gm7 DM
		CASE(73){	Chd_Color_str =Chd_Color_Ary(7);}	// G7b9 DM
		CASE(70){	Chd_Color_str =Chd_Color_Ary(2);}	// G7 D
		CASE(47){	Chd_Color_str =Chd_Color_Ary(1);}	// G7sus4 SD
		CASE(16){	Chd_Color_str =Chd_Color_Ary(6);}	// G6 SDM
		DEFAULT{	Chd_Color_str =Chd_Color_Ary(9);}
		}
	}
	CASE(8){	//Ab
		SWITCH(Chd_type_chk){
		CASE(16){	Chd_Color_str =Chd_Color_Ary(6);}	// Ab6 SDM
		CASE(17){	Chd_Color_str =Chd_Color_Ary(8);}	// AbM7 TM,SDM
		DEFAULT{	Chd_Color_str =Chd_Color_Ary(9);}
		}
	}
	CASE(9){	//A
		SWITCH(Chd_type_chk){
		CASE(27){	Chd_Color_str =Chd_Color_Ary(0);}	// Am7 T
		CASE(50){	Chd_Color_str =Chd_Color_Ary(5);}	// Am7b5 TM
		DEFAULT{	Chd_Color_str =Chd_Color_Ary(9);}
		}
	}
	CASE(10){	//Bb
		SWITCH(Chd_type_chk){
		CASE(10){	Chd_Color_str =Chd_Color_Ary(7);}	// BbM DM
		CASE(16){	Chd_Color_str =Chd_Color_Ary(7);}	// Bb6 DM
		CASE(70){	Chd_Color_str =Chd_Color_Ary(7);}	// Bb7 DM
		CASE(17){	Chd_Color_str =Chd_Color_Ary(1);}	// BbM7 SD
		DEFAULT{	Chd_Color_str =Chd_Color_Ary(9);}
		}
	}
	CASE(11){	//B
		SWITCH(Chd_type_chk){
		CASE(50){	Chd_Color_str =Chd_Color_Ary(2);}	// Bm7b5 D
		DEFAULT{	Chd_Color_str =Chd_Color_Ary(9);}
		}
	}
	} //SWITCH

	RESULT =TM_write+{ }+{Master_key:}+Ptn(5)+{ KeyIn:}+Keyin_set_str+{ }+Chd_Color_str+{ }+Key_str+Chd_str+Btm_str;

} // Function
  	 
