TrackName ={"カノンアレンジ ver.1.891"} 
Copyright ={"庚申works"}

/*	4分29秒の曲です。

	ダウンロード有難うございます。
	TW-music2で、バランスを整えてます、サクラ純正でも問題はないです。

	参考程度ですがリリックにコードの流れは出力してます、。
	各セクションにおいてのコード表記(カノンなどの名前)は便宜上のものです、。



	最近、聞く曲がロックに回帰しているので、
	それらしい曲を目指しました、カノンのロックアレンジです。


	ロックの基本は 3和音で 3度抜きもありです、らしくなります。
	3度抜きをパワーコードとか空虚五度などとも言います。、


	まず、
	ギターソロをシュミレーションしてみました、。

	q127を設定、ゲートを長めにします。
	-- ただし、q101以上とスラー[^]は相性が良くないようです...

	ギターのコード構成はユニゾンで鳴るケースが多いのでそれらしくしてみました。
	コード構成音の、下から1,3,5番目の音を1oct.下へ移動し、
	そしてユニゾンの音を下から1,3のみ1oct.上に加えています。、

	弦は減衰特性があるので、EP.Wでコントロール。
		EP.W(120,120,!8, 120,75+Random(10),!1+1)

	以下で弦のピッチずれを再現してます。
		BR(12)
		PitchBend.WR(60,-30,!4, 40,-50,!2, 20,-70,!1+1+1)
		PitchBend.Random=44

	2小節単位でランダムにソロフレーズを生成し、繰り返します。
	小節終わりの帳尻は、1oct.上の構成に変更して下から順に弾き、
	つなぎを明確にしました。



	ドラムです。ビートはシャッフル(ただし、3連)に頼ってます。、
	リバーブは深めです。ゲートリバーブの代りです。
	2小節ごとに固定ピッチを変更して、グループ感を足しています。
	スネアは、リムとスネアの同時打ちで迫力を出しています。


	ベースはドラムのスネアに被らないように弾いています。
	1oct.上とユニゾン配置にしました。


	ロックオルガンにモジュレーションを深めに入れています。


	FX、効果音です、。sus4 add2のコードを徐々にピッチを上げています。、


	全体のグループ感は、ベロシティであればこんな感じに読み出し、
	各音ごとに、加算することでヒューマングループを出しています。


		Function Velwte(){
			RESULT=MML(v)+Random(2)-(Random(3)-2)*4;
		} //Function

		Str Beat= {};

		v100
		Beat= {v(}+Velwte()+{)n(}+60+{)};
		Beat;	// -> v(100+1+(1*4))n(60) -> v(105)n(60)
		Print(Beat);

		Beat= {v(}+Velwte()+{)n(}+60+{)};
		Beat;	// -> v(100+0+(2*4))n(60) -> v(108)n(60)
		Print(Beat);



	基本的なコードの流れは、
	クリシェパターンからつなぎコードを挟み、カノンへとたどり着きます。


	最後に、フェードアウトします。
	EP.T(120,0,!1+1+1+1+1+1+1+1+1+1)	//全音符 10個でEP(120)からEP(0)



	※構造化エディタ対応です。



	与太話です。、


	当初はリズムギターをシュミレートしていたのです。、挫折しました。
	弦ごとにトラック分けし、ピッチずれを加えればうまくいくかもしれません。


	ソロGt.であってもチョーキング(ベンディング)やフィードバック奏法、
	ピッキングハーモニクスなど、音のバリエーションだけでもソロの再現は難しいです。、
	さらに、音色の高音域に難がありまして、、サスティン不足でうまく再現出来ません、。


	色々なテンションを試したかったので、3和音のくくりを超えてしまいました。
	aug,dim,halfdimテンション以外は、すべて使っています。、

	TimeBase=480 のままでした、後で気がついた...




	以下は、読みたい方だけでいいです。...


	== コード展開-- こんな展開をしましたという事例です、、難しめです。、 ==


	クリシェは、半音づつ下がるパターン、独自変数 Elm_chdを見れば一目瞭然なので、。
//	Elm_chd　=(0, 5, 7);	ド  ファソ	Csus4
//	Elm_chd　=(0, 4, 7);	ド  ミ  ソ	CM7
//	Elm_chd　=(0, 3, 7);	ド  ミ♭ソ	Cm7
//	Elm_chd　=(0, 2, 7);	ド  レ  ソ	Csus2



	-- このコードが基本です、、カノンの基本コードを四和音へ転回 --
	--------------------------------------------------------------------------------------
	CM {CM7 [T]}		GM {G7 [D]}		Am {Am7 [T]}		Em {Em7 [T,D]}
	FM {FM7 [SD]}		CM-12 {CM7 [T]}		Dm/F {Dm7/F [SD]}	GM {G7 [D]}
	--------------------------------------------------------------------------------------

	ダイアトニックコードの差替え
//	CM			GM			Em {Am7->Em7[T]}	Am {Em7->Am7[T]}
//	Dm {FM7->Dm7[SD]}	CM			FM {Dm7/F->FM7[SD]}	GM


	9th転回
//	CM9{M7->M9}		G7#9 {7->7#9}		Am9 {m7->m9}		Em69 {m7->m6->m69}
//	・F9th{M7..7->9}	・C69th{M7..6->69}	Dm9/F{m7/F->m9/F}	G7b9 {7->7b9}

	・F9th,C69thのケースでは、9thであれば、M7の代理も可みたいです。、


	11-13th転回
//	CM11 {M7->M11}		G7(11) {7->7(11)}	Am11 {m7->m11}		・E7#11 {m7..7#11}
//	F9b5 {M7..6->9b5}	・Cm13 {M7..m7->m13}	・D9th omit3/F {m7..9}	G13th {7->13}

	・E7#11のケースは、Em7はドミナント[D]機能があるので7thに近いコードをあてはめても良い。、
	・Cm13 CM7[T]を、Cm7[TM]へ変更
	・D9th omit3/Fは、3度音がないので、M,mどちらでも可
*/

	 
Function Elm_bas(Int Ptn){ 

	IF(Ptn==3){	//外部テータ参照
	}

	FOR(Int Ei=0; Ei< SizeOf(Elm_copy); Ei++){

		Elm_copy(Ei)=Elm_copy(Ei)+Shift_key+Master_key+Part_key;
	}
} //Function
 
Function Elm_wte(Array Ptn){ 

	Elm_copy=(Elm_copy, Elm_copy(0)+12);	//ボイシング拡張

	Elm_copy(0)=Elm_copy(0)-12;	// drop1&3&5

	IF(3<= SizeOf(Elm_copy) ){
		Elm_copy=(Elm_copy, Elm_copy(2)+12);
		Elm_copy(2)=Elm_copy(2)-12;
	}
	IF(5<= SizeOf(Elm_copy) ){
		Elm_copy(4)=Elm_copy(4)-12;
	}

	IF(Ptn(0)==1){		//外部テータ参照
		Elm_copy= ArraySortNum(Elm_copy); // 再ソート

		FOR(Int ELi=0; ELi< SizeOf(Elm_copy); ELi++){	//ヲクターブチェンジ
			Elm_copy(ELi)=Elm_copy(ELi)+12;
		}
	}
	ELSE{
		Int Rev_tmp = Elm_copy(SizeOf(Elm_copy)-1);	//トップフレーズ入替え
		Int Rdm_select = Random(SizeOf(Elm_copy)-1 );
		Elm_copy(SizeOf(Elm_copy)-1)= Elm_copy(Rdm_select);
		Elm_copy(Rdm_select) =Rev_tmp;

		IF(Random(2)==0){	//リバースフレーズ
			FOR(Int Rev_i=0; Rev_i< SizeOf(Elm_copy)/2; Rev_i++){

				Rev_tmp= Elm_copy(0+ Rev_i);
				Elm_copy(0+ Rev_i) = Elm_copy( SizeOf(Elm_copy)-1 -Rev_i);	//最後を最初へ代入

				Elm_copy( SizeOf(Elm_copy)-1 -Rev_i) =Rev_tmp;
			}
		}
	}

	FOR(Int Ei=0; Ei< SizeOf(Elm_copy); Ei++){

		Elm_copy(Ei)=Elm_copy(Ei)+Shift_key+Master_key+Part_key;	// +RandomSelect(0,12)
	}
} //Function
 
Function Velwte(){ 
	RESULT=MML(v)+Random(2)-(Random(3)-2)*4;
} //Function

	//v( Velwte() )と呼び出す、この以下3つでグルーブを生成
 
Function Gatwte(){ 
	RESULT=MML(q)+Random(2)-(Random(3))*3-2;
} //Function
 
Function Timwte(){ 
	RESULT=MML(t)+Random(5)+Mi*Random(4)-4;
} //Function
 
Function Tim_Dwte(){ 
	RESULT=Random(2)-1;
} //Function
 
Function R_Gtptn(){	//　Rhythmマクロ,q,v 外部指定　 

	Array Elm_copy=Elm_chd;
	Elm_wte();

	Chd={'};
	FOR(Int Mi=0; Mi< SizeOf(Elm_copy); Mi++){

		Chd= Chd+{
			v(}+Velwte()+{)
			//q(}+Gatwte()+{)
			t(}+Timwte()+{)
			n(}+Elm_copy(Mi)+{)
			};
	}

	Chd= Chd+{'};

} //Function
 
Function S_Gtptn(Array Ptn){	//l,v 外部指定 

	//Elm_last
	Array Elm_copy=Elm_chd;
	Elm_wte(1);

	Array Elm_last=Elm_copy;



	//Elm_copy
	Elm_copy=Elm_chd;
	Elm_wte(0);

	Beat={};
	Array Elm_tmp=Elm_copy;
	Array RS_ary=();

	FOR(Int Li=0; Li< TimeBase*4*Ptn(1)/MML(l); Li++){	//外部テータ参照

		IF(Ptn(0)!=3){	RS_ary=(6,4);}	//外部テータ参照
		ELSE{		RS_ary=(7);}

		IF(TimeBase*8/MML(l)-RandomSelect(RS_ary)<= Li){	Elm_copy=Elm_last;}

		Beat= Beat+{
		v(}+Velwte()+{)
		q(}+Gatwte()+{)
		t(}+Timwte()+{)
		//n(}+Elm_copy((SizeOf(Elm_copy)-1)-(Li %SizeOf(Elm_copy)))+{)};	//逆さ読み
		n(}+Elm_copy(Li %SizeOf(Elm_copy))+{)};
	}
} //Function
 
Function Basptn(Int Ptn){	//l,v 外部指定 

	Array Elm_copy=Elm_chd;
	Elm_bas(Ptn);		//外部テータ参照

	Elm_copy=(Elm_copy(0), Elm_copy(0)+12);

	Chd={'};
	FOR(Int Mi=0; Mi< SizeOf(Elm_copy); Mi++){

		Chd= Chd+{
			v(}+(Velwte()-(Mi*6))+{)
			//q(}+Gatwte()+{)
			//t(}+Timwte()+{)
			n(}+Elm_copy(Mi)+{)
			};
	}

	Chd= Chd+{'};
} //Function
 
		//初期化---------// 

		Include(stdmsg.h);		//ミディ音源リセットのおまじない

		System.MeasureShift(1);
		Time( 0: 1: 0);
		ResetXG();ResetGS();ResetGM();	//音源リセット命令

 
//変数初期化 ------ 

	TimeBase=480;
	Tempo=126;

	Int AllMkey=1;		//マスターキー

	Int KeyCs=-11+AllMkey;	Int KeyDf= KeyCs+AllMkey;
	Int KeyD =-10+AllMkey;
	Int KeyDs= -9+AllMkey;	Int KeyEf= KeyDs+AllMkey;
	Int KeyE = -8+AllMkey;
	Int KeyF = -7+AllMkey;
	Int KeyFs= -6+AllMkey;	Int KeyGf= KeyFs+AllMkey;
	Int KeyG = -5+AllMkey;
	Int KeyGs= -4+AllMkey;	Int KeyAf= KeyGs+AllMkey;
	Int KeyA = -3+AllMkey;
	Int KeyAs= -2+AllMkey;	Int KeyBf= KeyAs+AllMkey;
	Int KeyB = -1+AllMkey;
	Int KeyC =  0+AllMkey;

	Str Part_str={};
	Str Chd_str={};
	Int Part_num=0;
	Array DrmPitch=(0,-6, 12, 6);
	Int SectorNum=0;
	Int Part_key =0;
	Array Elm_set=();
	Array Mod_set=();

	Int Master_key=48;
	Int Shift_key =KeyC;
	Array Elm_chd =();

	Str Chd	={};
	Str Keb	={};
	Str Bas	={};

	Str Beat={};

	Str LH  ={};
	Str LF  ={};
	Str RH  ={};
	Str RF  ={};
 
	FOR(Int Trk=1; Trk<= 5; Trk++){ 

	SWITCH(Trk){
	CASE(1){
		TR=Trk @19 Time(1:1:0) Panpot(36) V(63) EP(120) M(32) REV(36) CHO(6)
		Master_key=60;
	}
	CASE(2){
		TR=Trk @30 Time(1:1:0) Panpot(115) V(90) EP(120) M(0) REV(30) CHO(0)

		BR(12)
		PitchBend.WR(60,-30,!4, 40,-50,!2, 20,-70,!1+1+1)	//弦のピッチずれ
		PitchBend.Random=44
		Master_key=48;

		EP.W(120,120,!8, 120,75+Random(10),!1+1);	//減衰特性
	}
	CASE(3){
		TR=Trk @40 Time(1:1:0) Panpot(15) V(96) EP(120) M(1) REV(15) CHO(1)

		BR(18)
		PitchBend.WR(60,-30,!4, 40,-50,!2, 20,-70,!1+1+1)
		PitchBend.Random=11
		Master_key=24;

		EP.W(120,120,!8, 120,75+Random(10),!1+1);
	}
	CASE(4){
		TR=10 Time(1:1:0) Panpot(63) V(126) EP(120) M(0) REV(60)

		//音源部
		$X{v(120)t(3+Tim_Dwte())n(35)0n(36),}
		$x{v( 85)t(3+Tim_Dwte())n(35)0n(36),}	//BD

		$J{v(108)t(Tim_Dwte())n(42),}		$j{v(80)t(Tim_Dwte())n(42),}	//HH close
		$P{v( 60)t(Tim_Dwte())n(44),}		$p{v(30)t(Tim_Dwte())n(44),}	//HH pedal
		$H{v( 70)t(Tim_Dwte())n(46),}		$h{v(40)t(Tim_Dwte())n(46),}	//HH open

		//$G{v(108)t(Tim_Dwte())n(40),}		$g{v(48)t(Tim_Dwte())n(40),}			//Sn
		$K{'n40,,,106,(1+Tim_Dwte())n37,,,110,'}$k{'n40,,, 30,(1+Tim_Dwte())n37,,, 20,'}	//Sn&Rim

		$L{'n40,,,110,( 1+Tim_Dwte())n37,,,115,    Tim_Dwte() '}
		$l{'n40,,,110,(13+Tim_Dwte())n37,,,115,(12+Tim_Dwte())'} //Sn&Dub LH,RH同時使用でのみ

		$C{v(120)t(1)n(57),Tim_Dwte()}	$c{v(60)t(1)n(57),Tim_Dwte()}		//Cym,Tom
		$D{v(120)t(1)n(51),Tim_Dwte()}	$d{v(60)t(1)n(51),Tim_Dwte()}		//RideCym

	}
	CASE(5){
		TR=Trk Time(1:1:0) @112 Panpot(96) V(48) EP(120) REV(84) CHO(32)
		Master_key=36;
		BR(2)
	}
	} //SW
 
	FOR(Int Part=1; Part<=13; Part++){ 

	IF(Part==12){EP.T(120,120,!1+1+1+1+1+1+1+1+1+1+1+1+1+1,120,96,!1+1)}
	IF(Part==13){EP.T(96,0,!1+1+1+1+1+1+1+1)}

	IF(Trk==2){
		IF(3<=Part & Part<=4){	Master_key=60;}
		IF(5<=Part & Part<=7){	Master_key=48;}
		IF(8<=Part){		Master_key=60;}
	}
	//IF(Trk==5 & 8<= Part){	Master_key=50;}

	IF(Part<= 6){		Part_key =0;	SectorNum=4;}
	IF(7== Part){		Part_key =1;	SectorNum=4;}
	IF(8== Part){		Part_key =4;	SectorNum=8;}
	IF(Part==9 | Part==10){	Part_key =5;	SectorNum=8;}
	IF(Part==11| Part==12){	Part_key =5;	SectorNum=8;}
	IF(Part==13){		Part_key =5;	SectorNum=4;}

	SWITCH(Trk){
	CASE(5){
	IF(Part<= 11){
		IF(Part<= 6 | 8<= Part){

			q100 v100

			l1+1+1+1 r

			l1+1+1+1
			BR(12)
			PitchBend.W(0,1,!2, 1,7860,!2+1+1, 7860,8075,!1);

			EP.W(0,120,!1+1+4, 120,127,!2+1, 127,0,!4)
			'n(0+Master_key)n(2+Master_key)n(5+Master_key)n(7+Master_key)'

			PitchBend=0;
			EP=0;
		}
		ELSE{
			l1+1+1+1 r
		}
	}

	}
	} //SW
 
	FOR(Int Sector=0; Sector< SectorNum; Sector++){ 
	 
	IF(Part<= 6){ 

	Part_str={"クリシェ"};
	Part_num=2;
	Shift_key =KeyC;

	SWITCH(Sector%4){
	CASE(0){	 v100 q99 t0
		Elm_chd	=(0, 5, 7);
		Chd_str={Csus4};

		Keb={l12         ZZ^ ^^^  ^^^ ^^^    ^^^ ^^^  ^^^ ^^^};
		Bas={l12         A^^ ^^^  ^^^ A^A    A^^ ^^^  ^^^ A^^};

		LH ={l12  Rhythm{Jrr jrr  Jrr jrr    jrr jrr  Jrr jrr}};
		LF ={l12  Rhythm{rhr rrr  rrr rhr    rrr rrr  rrr rrr}};
		RH ={l12  Rhythm{krr krr  Krr krr    krr krr  Krr rrr}};
		RF ={l12  Rhythm{Xrx rrr  rrr XrX    rrr rrx  rrr rrx}};

	}
	CASE(1){	 v100 q99 t0
		Elm_chd	=(0, 4, 7);
		Chd_str={CM};

		Keb={l12         Z^^ ^^^  ^^^ ^^^    ^^^ ^^^  ^^^ ^^r};
		Bas={l12         A^^ ^^^  ^^^ A^A    A^^ ^^^  ^^^ A^^};

		LH ={l12  Rhythm{Jrr jrr  Jrr jrr    jrr jrr  Jrr jrr}};
		LF ={l12  Rhythm{rhr rrr  rrr rrr    rhr rrr  rrr rhr}};
		RH ={l12  Rhythm{krr krr  Krr krr    krr krr  Krr rrr}};
		RF ={l12  Rhythm{Xrx rrr  rrr XrX    rrr rrx  rrr rrr}};
	}
	CASE(2){	 v100 q99 t0
		Elm_chd	=(0, 3, 7);
		Chd_str={Cm};

		Keb={l12         ZZ^ ^^^  ^^^ ^^^    ^^^ ^^^  ^^^ ^^^};
		Bas={l12         A^^ ^^^  ^^^ A^A    A^^ ^^^  ^^^ A^^};

		LH ={l12  Rhythm{Jrr jrr  Jrr jrr    jrr jrr  Jrr jrr}};
		LF ={l12  Rhythm{rhr rrr  rrr rhr    rrr rrr  rrr rrr}};
		RH ={l12  Rhythm{krr krr  Krr krr    krr krr  Krr rrr}};
		RF ={l12  Rhythm{Xrx rrr  rrr XrX    rrr rrx  rrr rrx}};
	}
	CASE(3){	 v100 q99 t0
		Elm_chd	=(0, 2, 7);
		Chd_str={Csus2};

		Keb={l12         Z^^ ^^^  ^^^ ^^^    ^^^ ^^^  ^^^ ^rr};
		Bas={l12         A^^ ^^^  ^^^ ^^A    A^A ^^^  ^^^ ^^^};

		LH ={l12  Rhythm{Jrr jrr  Jrr jrr    jrr jrr  Jrr rrr}};
		LF ={l12  Rhythm{rhr rrr  rrr rrr    rhr rrr  rrr rrr}};
		RH ={l12  Rhythm{krr krr  Krr krr    krr krr  Krr rrr}};
		RF ={l12  Rhythm{Xrx rrr  rrr XrX    rrr rrx  rrr rrr}};
	}
	} //SW

	} //IF
 
	IF(Part== 7){ 

	Part_str={"つなぎコード"};
	Part_num=1;

	SWITCH(Sector%4){
	CASE(0){	 v100 q99 t0

		Shift_key =KeyC;
		Elm_chd	=(0, 5, 7);
		Chd_str={Csus4};
		Keb={l12         ZZ^ ^^^  ^^^ ^^^};
		Bas={l12         A^A A^A  A^A A^A};

		LH ={l12  Rhythm{Jrr jrr  Jrr jrr}};
		LF ={l12  Rhythm{rhr rhr  rhr rhr}};
		RH ={l12  Rhythm{krr krr  Krr krr}};
		RF ={l12  Rhythm{Xrx rrr  rrr XrX}};

	}
	CASE(1){	 v100 q99 t0

		Shift_key =KeyC;
		Elm_chd	=(0, 4, 7);
		Chd_str={CM};

		Keb={l12         Z^^ ^^^  ^^^ ^^r};
		Bas={l12         A^A A^A  A^A A^A};

		LH ={l12  Rhythm{jrr jrr  Jrr jrr}};
		LF ={l12  Rhythm{rhr rhr  rhr rhr}};
		RH ={l12  Rhythm{krr krr  Krr rrr}};
		RF ={l12  Rhythm{rrr rrx  rrr rrx}};
	}
	CASE(2){	 v100 q99 t0

		Shift_key =KeyCs+12;
		Elm_chd	=(0, 5, 7,10);
		Chd_str={C#7sus4};

		Keb={l12 ZZ^ ^^^  ^^^ ^^^};
		Bas={l12 A^A A^A  A^A A^A};

		LH ={l12  Rhythm{Jrr jrr  Jrr jrr}};
		LF ={l12  Rhythm{rhr rhr  rhr rhr}};
		RH ={l12  Rhythm{krr krr  Krr krr}};
		RF ={l12  Rhythm{Xrx rrr  rrr XrX}};
	}
	CASE(3){	 v100 q99 t0

		Shift_key =KeyCs+12;
		Elm_chd	=(0, 4, 7, 10);
		Chd_str={C#7};

		Keb={l12 Z^^ ^^^ ^^^ ^^r};
		Bas={l12 A^A A^A A^A A^A};

		LH ={l12  Rhythm{jrr jrr  Jrr rrr}};
		LF ={l12  Rhythm{rhr rhr  rhr rrr}};
		RH ={l12  Rhythm{krr krr  Krr rrr}};
		RF ={l12  Rhythm{rrr rrx  rrr rrr}};
	}
	} //SW

	} //IF
 
	IF(8<= Part & Part<= 13){ 

	Part_num=2;

	IF(Part==10 | Part==12){	v100 q99 t0
	Part_str={"カノン 11,13th転回"};
	SWITCH(Sector%8){
	CASE(0){	Shift_key =KeyC;	Elm_chd	=( 0, 4, 7,11, 14, 17);		Chd_str={CM11};	}
	CASE(1){	Shift_key =KeyG;	Elm_chd	=( 0, 4, 7,10, 17);		Chd_str={G7(11)};}
	CASE(2){	Shift_key =KeyA;	Elm_chd	=( 0, 3, 7,10, 14, 17);		Chd_str={Am11};	}
	CASE(3){	Shift_key =KeyE;	Elm_chd	=( 0, 4, 7,10, 18);		Chd_str={E7#11};}
	CASE(4){	Shift_key =KeyF;	Elm_chd	=( 0, 4, 6,10, 14);		Chd_str={F9b5};}
	CASE(5){	Shift_key =KeyC-12;	Elm_chd	=( 0, 3, 7,10, 14, 17, 21);	Chd_str={Cm13};}
	CASE(6){	Shift_key =KeyD;	Elm_chd	=(-9, 0, 7, 10, 14);		Chd_str={D9th omit3/F};}
	CASE(7){	Shift_key =KeyG;	Elm_chd	=( 0, 4, 7,10, 14, 17, 21);	Chd_str={G13th};}
	} //SW
	} //IF
	IF(Part==9 | Part==11 | Part==13){	v100 q99 t0
	Part_str={"カノン 9th転回"};
	SWITCH(Sector%8){
	CASE(0){	Shift_key =KeyC;	Elm_chd	=(0, 4, 7, 11, 14);		Chd_str={CM9};	}
	CASE(1){	Shift_key =KeyG;	Elm_chd	=(0, 4, 7, 10, 15);		Chd_str={G7#9};	}
	CASE(2){	Shift_key =KeyA;	Elm_chd	=(0, 3, 7, 10, 14);		Chd_str={Am9};	}
	CASE(3){	Shift_key =KeyE;	Elm_chd	=(0, 3, 7,  9, 14);		Chd_str={Em69};	}
	CASE(4){	Shift_key =KeyF;	Elm_chd	=(0, 4, 7, 10, 14);		Chd_str={F9th};	}
	CASE(5){	Shift_key =KeyC-12;	Elm_chd	=(0, 4, 7,  9, 14);		Chd_str={C69th};}
	CASE(6){	Shift_key =KeyD;	Elm_chd	=(-9, 0, 5, 7, 14);		Chd_str={Dm9/F};}
	CASE(7){	Shift_key =KeyG;	Elm_chd	=(0, 4, 7, 10, 13);		Chd_str={G7b9};	}
	} //SW
	} //IF
	IF(Part==8){	v100 q99 t0
	Part_str={"カノン コード差替え"};
	SWITCH(Sector%8){
	CASE(0){	Shift_key =KeyC;	Elm_chd	=(0, 4, 7);		Chd_str={CM};}
	CASE(1){	Shift_key =KeyG;	Elm_chd	=(0, 4, 7);		Chd_str={GM};}
	CASE(2){	Shift_key =KeyE;	Elm_chd	=(0, 3, 7);		Chd_str={Em};}
	CASE(3){	Shift_key =KeyA;	Elm_chd	=(0, 3, 7);		Chd_str={Am};}
	CASE(4){	Shift_key =KeyD;	Elm_chd	=(0, 3, 7);		Chd_str={Dm};}
	CASE(5){	Shift_key =KeyC-12;	Elm_chd	=(0, 4, 7);		Chd_str={CM};}
	CASE(6){	Shift_key =KeyF;	Elm_chd	=(0, 4, 7);		Chd_str={FM};}
	CASE(7){	Shift_key =KeyG;	Elm_chd	=(0, 4, 7);		Chd_str={GM};}
	} //SW
	} //IF


	SWITCH(Sector%8){
	CASE(0){	 v100 q99 t0
		Keb={l12         ZZ^ ^^^  ^^^ ^^^    ^^^ ^^^  ^^^ ^^^};
		Bas={l12         A^^ A^A  A^A A^A    A^A A^A  A^A A^A};

		LH ={l12  Rhythm{Jrr jrr  Jrr jrr    jrr jrr  Jrr jrr}};
		LF ={l12  Rhythm{rhr rrr  rrr rhr    rrr rrr  rrr rrr}};
		RH ={l12  Rhythm{krr krr  Krr krr    krr krr  Krr rrr}};
		RF ={l12  Rhythm{Xrx rrr  rrr XrX    rrr rrx  rrr rrx}};

	}
	CASE(1){	 v100 q99 t0
		Keb={l12         Z^^ ^^^  ^^^ ^^^    ^^^ ^^^  ^^^ ^^r};
		Bas={l12         A^A A^A  A^A A^A    A^A A^A  A^A A^A};

		LH ={l12  Rhythm{Jrr jrr  Jrr jrr    jrr jrr  Jrr jrr}};
		LF ={l12  Rhythm{rhr rrr  rrr rrr    rhr rrr  rrr rhr}};
		RH ={l12  Rhythm{krr krr  Krr krr    krr krr  Krr rrr}};
		RF ={l12  Rhythm{Xrx rrr  rrr XrX    rrr rrx  rrr rrr}};
	}
	CASE(2){	 v100 q99 t0
		Keb={l12         ZZ^ ^^^  ^^^ ^^^    ^^^ ^^^  ^^^ ^^^};
		Bas={l12         A^A A^A  A^A A^A    A^A A^A  A^A A^A};

		LH ={l12  Rhythm{Jrr jrr  Jrr jrr    jrr jrr  Jrr jrr}};
		LF ={l12  Rhythm{rhr rrr  rrr rhr    rrr rrr  rrr rrr}};
		RH ={l12  Rhythm{krr krr  Krr krr    krr krr  Krr rrr}};
		RF ={l12  Rhythm{Xrx rrr  rrr XrX    rrr rrx  rrr rrx}};
	}
	CASE(3){	 v100 q99 t0
		Keb={l12         Z^^ ^^^  ^^^ ^^^    ^^^ ^^^  ^^^ ^^r};
		Bas={l12         A^A A^A  A^A A^A    A^A A^A  A^A A^^};

		LH ={l12  Rhythm{Jrr jrr  Jrr jrr    jrr jrr  Jrr rrr}};
		LF ={l12  Rhythm{rhr rrr  rrr rrr    rhr rrr  rrr rrr}};
		RH ={l12  Rhythm{krr krr  Krr krr    krr krr  Krr rrr}};
		RF ={l12  Rhythm{Xrx rrr  rrr XrX    rrr rrx  rrr rrr}};
	}
	CASE(4){	 v100 q99 t0
		Keb={l12         ZZ^ ^^^  ^^^ ^^^    ^^^ ^^^  ^^^ ^^^};
		Bas={l12         A^^ A^A  A^A A^A    A^A A^A  A^A A^A};

		LH ={l12  Rhythm{Jrr jrr  Jrr jrr    jrr jrr  Jrr jrr}};
		LF ={l12  Rhythm{rhr rrr  rrr rhr    rrr rrr  rrr rrr}};
		RH ={l12  Rhythm{krr krr  Krr krr    krr krr  Krr rrr}};
		RF ={l12  Rhythm{Xrx rrr  rrr XrX    rrr rrx  rrr rrx}};

	}
	CASE(5){	 v100 q99 t0
		Keb={l12         Z^^ ^^^  ^^^ ^^^    ^^^ ^^^  ^^^ ^^r};
		Bas={l12         A^A A^A  A^A A^A    A^A A^A  A^A A^A};

		LH ={l12  Rhythm{Jrr jrr  Jrr jrr    jrr jrr  Jrr jrr}};
		LF ={l12  Rhythm{rhr rrr  rhr rrr    rrr rrr  rhr rrr}};
		RH ={l12  Rhythm{krr krr  Krr krr    krr krr  Krr rrr}};
		RF ={l12  Rhythm{Xrx rrr  rrr XrX    rrr rrx  rrr rrr}};
	}
	CASE(6){	 v100 q99 t0
		Keb={l12         ZZ^ ^^^  ^^^ ^^^    ^^^ ^^^  ^^^ ^^^};
		Bas={l12         A^A A^A  A^A A^A    A^A A^A  A^A A^A};

		LH ={l12  Rhythm{Jrr jrr  Jrr jrr    jrr jrr  Jrr jrr}};
		LF ={l12  Rhythm{rhr rrr  rrr rhr    rrr rrr  rrr rrr}};
		RH ={l12  Rhythm{krr krr  Krr krr    krr krr  Krr rrr}};
		RF ={l12  Rhythm{Xrx rrr  rrr XrX    rrr rrx  rrr rrx}};

	}
	CASE(7){	 v100 q99 t0
		Keb={l12         Z^^ ^^^  ^^^ ^^^    ^^^ ^^^  ^^^ ^^r};
		Bas={l12         A^A A^A  A^A A^A    A^A A^A  A^A A^^};

		LH ={l12  Rhythm{Jrr jrr  Jrr jrr    jrr jrr  Jrr jrr}};
		LF ={l12  Rhythm{rhr rrr  rhr rrr    rrr rrr  rhr rrr}};
		RH ={l12  Rhythm{krr krr  Krr krr    krr krr  Krr rrr}};
		RF ={l12  Rhythm{Xrx rrr  rrr XrX    rrr rrx  rrr rrr}};
	}
	} //SW

	} //IF
 
//	/Keb/ q101以上とスラー[^]は組み合わせないこと !  和音に難あり。 
  
	SWITCH(Trk){ 
	CASE(1){	q99
		Lyric= {MKey:}+(Part_key+AllMkey)+{ }+Chd_str+{ /KeyinC }+Part_str;
		WHILE(1){
			IF(POS({Z}, Keb)==0){ EXIT}
			ELSE{
				R_Gtptn();	// Chd出力

				Keb=Replace( Keb, {Z}, Chd,off);	//Z -> Chd差替え
			}
		}
		Keb;	//MML出力

	}
	CASE(2){	q127
			 	IF(Part==11 & 4<=Sector){
					IF(Sector==6){	l24}
					ELSE{		l20}
				}
				ELSE{
			 		IF(Part==12 & Sector<= 0){
						l20
					}
					ELSE{
						l16
					}
				}

		S_Gtptn(Sector%4,Part_num);

		Beat;	//MML出力
	}
	CASE(3){	v120 q99
		WHILE(1){
			IF(POS({A}, Bas)==0){ EXIT}
			ELSE{
				Basptn(Sector%4);	// Chd出力

				Bas=Replace( Bas, {A}, Chd,off);	//A -> Chd差替え
			}
		}
		Bas;	//MML出力
	}
	CASE(4){
		//Beat ={Rhythm}+CHR(123)+Rym+CHR(125);

		BR(12)
		PitchBend.onNote(DrmPitch(Sector%4) );

		Sub{	LF;}
		Sub{	RF;}
		Sub{	LH;}
			RH;
	}
	} //SW
 
	} //FOR 
	} //FOR
	} //FOR
  
