TrackName ={"アナログフィール ver.1.61"} 
Copyright ={"庚申works"}

/*
	ピアノと笛ともうひとつの楽器、企画でのアップ曲です。

	6分半の曲です、長めです。
	コードの流れは同一もので、アレンジ違いを3つ演奏します。
	音色は、@2 BrightPiano, @73 Piccolo, @33 AcousticBass の固定です。

	音源のCD化?? M3の話がでているようですが見送らせてください、、
	ランダム出力をかなり使っているので、外れメロディを奏でるためです...
	ここはひとつご容赦を。、


	コードの流れです。
	基本はR&Bコードです。コードの流れはマイナー展開後に転調し、
	4度上ののサブドミ - セカンダリードミナント[3SD-3D-2SD-2D-SD-D]をかませて再度、
	R&Bコードへもどります。
	テンションコードを入れることで、それらしくしました。

	参考程度ですがリリックにコードの流れは出力してます、。
	各セクションにおいて一部のコード表記(マイナーサントラなどの名前)は便宜上のものです、。


	最初のアレンジです。
	アナログフィールを目指して、ジャズぽっくしました。
	殆ど、ランダムに単・複音を呼び出していますが、リズムはある程度指定はしています。
	リズムは最初、ピアノであればスラーを多めに入れた後、
	途中から音の間にスラーが入ったり入らなかったりをランダム指定して、
	幅が膨らむようにしています。
	ベースは4ビートです、ただしウォーキングベースもどきです、、
	経過音などが省かれているため。、
	リード担当のピッコロは苦戦してます、あまりうまくいってません。

	そして、ジャンルが不明なアレンジ。
	強いていうとサイバーパンクな感じ。すみません。、
	ロック調を目指したのですが、だいぶ逸れてしまった、。
	ピアノのバッキングは、リズムマクロを利用して弾いています。
	笛は結構、不協和音に耐えるみたいなので、
	コード構成音からランダムに選択された音をオクターブのユニゾンで出力。
	高音で鳴り響くので何度も聞くとしんどいです。、

	最後は、アンビエントミニマルでいいのでしょうか、、らしきアレンジとなってます。
	ゲート値を400に指定して、ロングディレイ風になっています。
	そしてコード構成音を弾く際、各楽器ごとに始めの音が1つずれるように指定してます。
	例えばコード構成音がcegbであれば、TR1は cegbc..、TR2はegbce...、TR3はgbceg...。
	実は 惑星から木星 のStringsによるオープニングの仕組みの真似です。、
	ちょっと実験してみたかったので...。
	またこの際、各音ごとにランダムにオクターブ展開して、広がりを出しています。


	今回はTWで調整してしまったので、TWのほうが良いかもしれません。
	そのため、最低限のマスタリング行程らしきことはしました。(リバーブやコーラス、
	アレンジ間の音量調整[EP]、トラック音量調整[V]など固定値ですが、)
	MSGM,GSのほうが扱いなれてしまったので、TWは自分にはちょっとオーバースペックかも。、
	それと、聞いた感じでは、サクラ純正 & MSGSでも問題ありません。

	スクリプトはこの曲に特化してます、汎用性はありません、。今回はかなり荒っぽいです。
	殆どがファンクション呼び出しなので、いったり来たりしているのでプログラム的には
	読みづらくなってます。、

	※構造化エディタ対応です。



	最後に長文にお付き合いならびにダウンロード有難うございました。



	与太話
	期限が切られていたので、突貫工事です。
	前曲のアップしたすぐ後、企画の提言があったので、その点では有利だったかもしれません。
	提言を見てしまったのが、ことの始まり...いろいろな意味で自分の力量を思い知らされました。
*/
 
Function Elm_wte(){ 
	FOR(Int Ei=0; Ei< SizeOf(Elm_chd); Ei++){
		Elm_chd(Ei)=Elm_chd(Ei)+Shift_key+Master_key;
	}
} //Function
 
Function Unison_wte(){ 
	Int Rdm_note=Random(SizeOf(Elm_chd)-1);
	RESULT={'n(Elm_chd(Rdm_note)-12)n(Elm_chd(Rdm_note)+12)n(Elm_chd(Rdm_note)+36)'}; // RESULTへ、str出力
} //Function
 
Function Velwte(){ 
	RESULT=MML(v)+Random(2)-(Random(3)-2)*3;
} //Function

	//v( Velwte() )と呼び出す、この以下3つでグルーブを生成
 
Function Gatwte(){ 
	RESULT=MML(q)+Random(2)-(Random(3)-2)*3;
} //Function
 
Function Timwte(){ 
	RESULT=Random(2)+Mi*Random(5)*2-1;
} //Function
 
Function Gtptn(){	//　Rhythmマクロ,q,v 外部指定　 

	Elm_chd(0)=Elm_chd(0)-12;	// drop1&3

	IF(3<= SizeOf(Elm_chd) ){	//ボイシング拡張
		Elm_chd(2)=Elm_chd(2)-12;
		Elm_chd=(Elm_chd, Elm_chd(2)+12, Elm_chd(0)+24);
	}


	Elm_wte();

	Macro={};
	FOR(Int Mi=0; Mi< SizeOf(Elm_chd); Mi++){

		Macro= Macro+{
		v(}+Velwte()+{)
		q(}+Gatwte()+{)
		t(}+Timwte()+{)
		n(Elm_chd(}+Mi+{)+}+RandomSelect(0,-12)+{)};	//ヲクターブ展開
	}

} //Function
 
Function Rodesptn(){	// lは5以上,v,q 外部指定 

	Elm_chd(0)=Elm_chd(0)-12;	// drop1&3

	IF(3<= SizeOf(Elm_chd)){	//ボイシング拡張
		Elm_chd(2)=Elm_chd(2)-12;
		Elm_chd=(Elm_chd, Elm_chd(2)+12, Elm_chd(0)+24);
	}


	Elm_wte();

	Beat={};
	FOR(Int Li=0; Li< 480/MML(l); Li++){

		IF(5< Li & Random(2)==0){Beat= Beat+{^};}
		ELSE{

			IF(Li==1 | Li==2 | Li==3 | Li==4 ){Beat= Beat+{^};}
			ELSE{
				Beat= Beat+{
				v(}+Velwte()+{)
				t(}+Timwte()+{)
				'n(Elm_chd(}+Random(SizeOf(Elm_chd)-1)+{) )
				 n(Elm_chd(}+Random(SizeOf(Elm_chd)-1)+{) )'};
			}
		}
	}
} //Function
 
Function Rodes_Lptn(){	// lは5以上,v,q 外部指定 

	Elm_chd(0)=Elm_chd(0)-12;	// drop1&3

	IF(3<= SizeOf(Elm_chd)){	//ボイシング拡張
		Elm_chd(2)=Elm_chd(2)-12;
		Elm_chd=(Elm_chd, Elm_chd(2)+12, Elm_chd(0)+24);
	}


	Elm_wte();

	Beat={};
	FOR(Int Li=0; Li< 480/MML(l); Li++){

		IF(5< Li & Random(2)==0){Beat= Beat+{^};}
		ELSE{

			IF(Li==1 | Li==2 | Li==3 | Li==4 ){Beat= Beat+{^};}
			ELSE{
				Beat= Beat+{
				v(}+Velwte()+{)
				t(}+Timwte()+{)
				'n(Elm_chd(}+Random(SizeOf(Elm_chd)-1)+{)+}+RandomSelect(0,12)+{ )
				 n(Elm_chd(}+Random(SizeOf(Elm_chd)-1)+{) )'};
			}
		}
	}
} //Function
 
Function PP_Iapgptn(){	//l,q,v 外部指定 

	Elm_wte();

	Beat={};
	FOR(Int Li=0; Li< 480/MML(l); Li++){

	IF(Li<= SizeOf(Elm_chd)+1){

		IF(0< Li & Random(3)==0){Beat= Beat+{^};}	// 1以上 & 確率1/3
		ELSE{
			IF(SizeOf(Elm_chd)<= Li){Beat= Beat+{^};}
			ELSE{
				IF(Li==0){
					Beat= Beat+{
					q(}+Gatwte()+{)
					v(}+Velwte()+{)
					t(}+Timwte()+{)
					'n(Elm_chd(}+0+{) )
					 n(Elm_chd(}+Random(SizeOf(Elm_chd)-1)+{) )'};
				}
				ELSE{
					IF(Li==1){Beat= Beat+{^};}
					ELSE{
					Beat= Beat+{
					q(}+Gatwte()+{)
					v(}+Velwte()+{)
					t(}+Timwte()+{)
					n(Elm_chd(}+0+{))};
					}
				}
			}
		}
	}
	ELSE{Beat= Beat+{r};}

	} //FOR
} //Function
 
Function PP_Papgptn(){	//l,v 外部指定 

	Elm_wte();

	Beat={};
	FOR(Int Li=0; Li< 480/MML(l); Li++){

	IF(Li< SizeOf(Elm_chd)+1){

		IF(0< Li & Random(3)==0){Beat= Beat+{^};}	// 1以上 & 確率1/3
		ELSE{
			IF(Li==0){
				Beat= Beat+{
				q(}+Gatwte()+{)
				v(}+Velwte()+{)
				t(}+Timwte()+{)
				'n(Elm_chd(}+0+{) )
				 n(Elm_chd(}+Random(SizeOf(Elm_chd)-1)+{)+}+RandomSelect(0,12)+{)'};
			}
			ELSE{
				IF(Li==1){Beat= Beat+{^};}
				ELSE{
				Beat= Beat+{
				q(}+Gatwte()+{)
				v(}+Velwte()+{)
				t(}+Timwte()+{)
				 n(Elm_chd(}+Random(SizeOf(Elm_chd)-1)+{)+}+RandomSelect(0,12)+{)};
				}
			}
		}
	}
	ELSE{Beat= Beat+{r};}

	}
} //Function
 
Function PP_Lapgptn(){	//l,q,v 外部指定 

	Elm_wte();

	Beat={};
	FOR(Int Li=0; Li< 480/MML(l); Li++){

	IF(Li<= SizeOf(Elm_chd)+1){

		IF(0< Li & Random(3)==0){Beat= Beat+{^};}	// 1以上 & 確率1/3
		ELSE{
			IF(SizeOf(Elm_chd)+1<= Li){Beat= Beat+{^};}
			ELSE{
				IF(Li==0){
					Beat= Beat+{
					q(}+Gatwte()+{)
					v(}+Velwte()+{)
					t(}+Timwte()+{)
					'n(Elm_chd(}+Random(SizeOf(Elm_chd)-1)+{))
					 n(Elm_chd(}+Random(SizeOf(Elm_chd)-1)+{) )'};
				}
				ELSE{
					IF(Li==1 | Li==2){Beat= Beat+{^};}
					ELSE{
					Beat= Beat+{
					q(}+Gatwte()+{)
					v(}+Velwte()+{)
					t(}+Timwte()+{)
					n(Elm_chd(}+Random(SizeOf(Elm_chd)-1)+{))};
					}
				}
			}
		}
	}
	ELSE{Beat= Beat+{r};}

	} //FOR
} //Function

 
Function PP_Kapgptn(){	//l,q,v 外部指定 

	Elm_wte();

	Beat={};
	FOR(Int Li=0; Li< 480/MML(l); Li++){

	IF(Li<= SizeOf(Elm_chd)+1){

		IF(0< Li & Random(2)==0){Beat= Beat+{^};}	// 1以上 & 確率1/2
		ELSE{
			IF(SizeOf(Elm_chd)+1<= Li){Beat= Beat+{^};}
			ELSE{
				IF(Li==0){
					Beat= Beat+{
					q(}+Gatwte()+{)
					v(}+Velwte()+{)
					t(}+Timwte()+{)
					'n(Elm_chd(}+Random(SizeOf(Elm_chd)-1)+{))
					 n(Elm_chd(}+Random(SizeOf(Elm_chd)-1)+{) )'};
				}
				ELSE{
					IF(Li==1 | Li==2){Beat= Beat+{^};}
					ELSE{
					Beat= Beat+{
					q(}+Gatwte()+{)
					v(}+Velwte()+{)
					t(}+Timwte()+{)
					n(Elm_chd(}+Random(SizeOf(Elm_chd)-1)+{))};
					}
				}
			}
		}
	}
	ELSE{Beat= Beat+{r};}

	} //FOR
} //Function

 
Function W_bassptn(){	//l,v 外部指定 

	Elm_wte();

	Beat={};
	FOR(Int Li=0; Li< 480/MML(l); Li++){

		IF(Li==0){
			Beat= Beat+{
			q(}+100+{)
			v(}+Velwte()+{)
			t(}+Timwte()+{)
			'n(Elm_chd(}+Random(SizeOf(Elm_chd)-1)+{) )n(Elm_chd(}+Random(SizeOf(Elm_chd)-1)+{) )'};
		}
		ELSE{
			Beat= Beat+{
			q(}+75+{)
			v(}+Velwte()+{)
			t(}+Timwte()+{)
			n(Elm_chd(}+Random(SizeOf(Elm_chd)-1)+{) )};
		}
	}
} //Function
	
/*	Elm_wte(); 

	Beat={};
	FOR(Int Li=0; Li< 480/MML(l); Li++){

		IF(Li< SizeOf(Elm_chd)){
			Beat= Beat+{
			v(}+Velwte()+{)
			t(}+Timwte()+{)
			n(Elm_chd(}+Random(SizeOf(Elm_chd)-1)+{) )};
		}
		ELSE{r}
*/
  
Function Loopptn(){	//l,v 外部指定 

	Elm_wte();

	Beat={};
	FOR(Int Li=0; Li< 480/MML(l); Li++){

			Beat= Beat+{
			q(}+200+{)
			v(}+Velwte()+{)
			t(}+Timwte()+{)
			}+Unison_wte();
	} //FOR
} //Function
 
Function R_bassptn(){	//l,v 外部指定 

	Elm_wte();

	Beat={};
	FOR(Int Li=0; Li< 480/MML(l); Li++){

		Beat= Beat+{
		q(}+75+{)
		v(}+Velwte()+{)
		t(}+Timwte()+{)
		n(Elm_chd(}+((SizeOf(Elm_chd)-1)-(Li %SizeOf(Elm_chd)))+{) )};
	}
} //Function
 
Function Planetptn(){	//l,v 外部指定 

	Elm_wte();

	Beat={};
	FOR(Int Li=0; Li< 480/MML(l); Li++){

	SWITCH(Trk){
		CASE(0){
			Beat= Beat+{
			q(}+400+{)
			v(}+Velwte()+{)
			t(}+Timwte()+{)
			'n(Elm_chd(}+(Li % SizeOf(Elm_chd) )+{)+18+RandomSelect(0,12) )
			 n(Elm_chd(}+(Li % SizeOf(Elm_chd) )+{)+6-RandomSelect(0,12) )'};
		}
		CASE(1){
			Beat= Beat+{
			q(}+400+{)
			v(}+Velwte()+{)
			t(}+Timwte()+{)
			'n(Elm_chd(}+((Li+1) % SizeOf(Elm_chd) )+{)-6-RandomSelect(0,12) )
			 n(Elm_chd(}+((Li+1) % SizeOf(Elm_chd) )+{)+6+RandomSelect(0,12) )'};
		}
		CASE(2){
			Beat= Beat+{
			q(}+400+{)
			v(}+Velwte()+{)
			t(}+Timwte()+{)
			'n(Elm_chd(}+((Li+2) % SizeOf(Elm_chd) )+{)+42+RandomSelect(0,12) )
			 n(Elm_chd(}+((Li+2) % SizeOf(Elm_chd) )+{)+30-RandomSelect(0,12) )'};
		}
		} //SW
	}
} //Function
 
		//初期化---------// 

		Include(stdmsg.h);		//ミディ音源リセットのおまじない

		Time( 0: 1: 0);
		System.MeasureShift(1);
		ResetGS;ResetXG;ResetGM;r1;	//音源リセット命令
		TrackSync;
 
TimeBase=120; 	// 120のみ 
Tempo=142;

Int AllMkey=2;		//マスターキー

	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;

Array Elm_chd=();
Int Shift_key=0;

Int Master_key=48;
Int Part_key=0;
Str Macro={};
Str Rym={};
Str Beat ={};
Str Chd ={};
Str Prog ={};

Array Elm_set=();
Array Mod_set=();
 
FOR(Int Trk=0; Trk< 3; Trk++){ 

	SWITCH(Trk){
	CASE(0){	TR=1 @2	 Time(1:1:0) Panpot=12  V=95		M(1) REV(54)}
	CASE(1){	TR=2 @73 Time(1:1:0) Panpot=64  V=90	l%1 r	M(3) REV(54) CHO(45)}
	CASE(2){	TR=3 @33 Time(1:1:0) Panpot=115 V=100	l%6 r	M(2) REV(54)}
	} //SW
 
FOR(Int Select=0; Select< 3; Select++){ 
 
FOR(Int Part=0; Part< 12; Part++){ 

	SWITCH(Part){
	CASE(0){
	Part_key=0;
	Elm_set=(14,14,14,14);	Prog ={"Key:D フリジアン"};
	Mod_set=( 0, 1, 2, 4);
	}
	CASE(1){
	Part_key=0;
	Elm_set=( 0, 1, 2, 3, 0, 1, 2, 3);	Prog ={"Key:D R&Bコード"};
	Mod_set=( 0, 1, 2, 4, 0, 1, 2, 3);
	}
	CASE(2){
	Part_key=0;
	Elm_set=( 21,22,23,24,21,22,23,24);	Prog ={"Key:D マイナーサントラ"};
	Mod_set=(  0, 1, 2, 4, 0, 1, 2, 3);
	}
	CASE(3){
	Part_key=0;
	Elm_set=( 0, 1,17, 2);	Prog ={"Key:D ORIGINAL 同主調"};
	Mod_set=( 0, 1, 2, 3);
	}
	CASE(4){
	Part_key=0;
	Elm_set=( 5, 6, 7, 8);	Prog ={"Key:D ORIGINAL マイナー"};
	Mod_set=( 0, 1, 2, 4);
	}
	CASE(5){
	Part_key=0;
	Elm_set=( 0, 1,17, 2);	Prog ={"Key:D ORIGINAL 同主調"};
	Mod_set=( 0, 1, 2, 4);
	}
	CASE(6){
	Part_key=0;
	Elm_set=( 5, 6, 7, 8);	Prog ={"Key:D ORIGINAL マイナー"};
	Mod_set=( 0, 1, 2, 3);
	}
	CASE(7){
	Part_key=3;
	Elm_set=(15,16,17,18,19,20);	Prog ={"Key:F# ドミナントモーション"};
	Mod_set=( 0, 1, 2, 4, 2, 3);
	}
	CASE(8){
	Part_key=3;
	Elm_set=( 0, 1, 2, 4, 0, 1, 2, 3);	Prog ={"Key:F# R&Bコード"};
	Mod_set=( 0, 1, 2, 4, 0, 1, 2, 3);
	}
	CASE(9){
	Part_key=4;
	Elm_set=( 0, 1, 2, 3, 0, 1, 2, 3);	Prog ={"Key:G R&Bコード"};
	Mod_set=( 0, 1, 2, 4, 0, 1, 2, 3);
	}
	CASE(10){
	Part_key=4;
	Elm_set=( 0, 1, 3, 3, 0, 1, 0, 1);	Prog ={"Key:G R&Bコード"};
	Mod_set=( 0, 1, 2, 4, 0, 1, 2, 3);
	}
	CASE(11){
	Part_key=4;
	Elm_set=(14, 0,14, 0,14, 0,14, 0,14, 0,14, 0);	Prog ={"Key:G フリジアン"};
	Mod_set=( 0, 1, 2, 3, 2, 4, 3, 4, 2, 4, 3, 4);
	}
	} //SW
 
FOR(Int I=0; I< SizeOf(Elm_set); I++){ 

SWITCH(Elm_set(I) ){
CASE(0){	Shift_key=KeyF;	Elm_chd=(0, 4, 7,11,14);	Chd ={FM9:KeyinC};	}	//SD
CASE(1){	Shift_key=KeyE;	Elm_chd=(0, 4, 7,10,15);	Chd ={E7#9:KeyinC};	}	//2D
CASE(2){	Shift_key=KeyA;	Elm_chd=(0, 3, 7,10,14);	Chd ={Am9:KeyinC};	}	//T
CASE(3){	Shift_key=KeyG;	Elm_chd=(-5,0, 3, 7,10);	Chd ={Gm7/C:KeyinC};	}	//DM
CASE(4){	Shift_key=KeyC;	Elm_chd=(-5,0, 4, 7,10);	Chd ={C7/G:KeyinC};	}

CASE(15){	Shift_key=KeyFs;Elm_chd=(0, 3, 7,10);		Chd ={F#m7:KeyinC};	}	//3SD
CASE(16){	Shift_key=KeyB;	Elm_chd=(0, 4, 7,10);		Chd ={B7:KeyinC};	}	//3D
CASE(17){	Shift_key=KeyE;	Elm_chd=(0, 3, 7,10,14);	Chd ={Em9:KeyinC};	}	//2SD
CASE(18){	Shift_key=KeyA;	Elm_chd=(0, 4, 7,10);		Chd ={A7:KeyinC};	}	//2D

CASE(19){	Shift_key=KeyD;	Elm_chd=(0, 3, 7,10);		Chd ={Dm7:KeyinC};	}	//SD
CASE(20){	Shift_key=KeyG;	Elm_chd=(0, 4, 7,10);		Chd ={G7:KeyinC};	}	//D


CASE(5){	Shift_key=KeyF;	Elm_chd=(0, 3, 7,10);		Chd ={Fm7:KeyinC};	}
CASE(6){	Shift_key=KeyGs;Elm_chd=(0, 4, 8);		Chd ={G#aug:KeyinC};	}
CASE(7){	Shift_key=KeyGs;Elm_chd=(0, 4, 7,11);		Chd ={G#M7:KeyinC};	}
CASE(8){	Shift_key=KeyF;	Elm_chd=(0, 3, 7, 9);		Chd ={Fm6:KeyinC};	}

CASE(11){	Shift_key=KeyE;	Elm_chd=(0, 4, 7,11);		Chd ={EM7:KeyinC};	}
CASE(12){	Shift_key=KeyF;	Elm_chd=(0, 4, 7,11);		Chd ={FM7:KeyinC};	}
CASE(13){	Shift_key=KeyG;	Elm_chd=(0, 4, 7,10);		Chd ={G7:KeyinC};	}
CASE(14){	Shift_key=KeyG;	Elm_chd=(0, 3, 5, 7,10);	Chd ={G Phrygian omit b2,#5};}

CASE(21){	Shift_key=KeyA;	Elm_chd=(0, 3, 7,10,14);	Chd ={Am9:KeyinC};	}
CASE(22){	Shift_key=KeyD;	Elm_chd=(0, 3, 7,10,14);	Chd ={Dm9:KeyinC};	}
CASE(23){	Shift_key=KeyB;	Elm_chd=(0, 3, 6, 8,10);	Chd ={B Super Locrian omit b2,M3};}
CASE(24){	Shift_key=KeyE;	Elm_chd=(0, 4, 7,10,15);	Chd ={E7#9:KeyinC};	}
} //SW

 
SWITCH(Trk){ 
CASE(0){
		Lyric=Prog+{ }+Chd;
	l12
	v88

	Master_key=60+Part_key;

	SWITCH(Select){
	CASE(0){
		EP=127
		IF(7< Part){	q75	Rodes_Lptn();	}
		ELSE{		q75	Rodesptn();	}
	}
	CASE(1){
		q85 EP=114 M=0
		Gtptn();

		$7{'Macro'}	//$7{'n(Elm_chd(0))n(Elm_chd(1))n(Elm_chd(2))'}

		SWITCH(Mod_set(I)+RandomSelect(0,10) ){
		CASE(0){	Rym={l8 r7^^ 7^7r};	}
		CASE(1){	Rym={l8 r7^^ 7^^^};	}
		CASE(2){	Rym={l8 r7^^ 7r7r};	}
		CASE(3){	Rym={l8 7^^^ r7^r};	}
		CASE(4){	Rym={l8 7^^^ rrr7};	}

		CASE(10){	Rym={l8 r7^^ ^^7r};	}
		CASE(11){	Rym={l8 r7^^ ^^^r};	}
		CASE(12){	Rym={l8 7^^^ ^r7r};	}
		CASE(13){	Rym={l8 7^^^ r7^r};	}
		CASE(14){	Rym={l8 7^^^ rr7^};	}
		} //SW

		Beat ={Rhythm}+CHR(123)+Rym+CHR(125);
	}
	CASE(2){
		EP=87 l8 v100 M=0
		Planetptn();
	}
	} //SW

	Beat;	//ここでMML出力
}
CASE(1){
	v85
	q96
	IF(6<=Part){	Master_key=84+Part_key;}
	ELSE{		Master_key=72+Part_key;}

	SWITCH(Select){
	CASE(0){
		EP=127
		IF(Part< 4){		l15	PP_Lapgptn();	}
		IF(4<=Part & Part<=6){	l15	PP_Papgptn();	}
		IF(Part==7){		l15	PP_Iapgptn();	}
		IF(7< Part){		l15	PP_Kapgptn();	}
	}
	CASE(1){
		EP=114 l1 v56 V=90 M=0 CHO(0)
		Loopptn();
	}
	CASE(2){
		EP=87 l8 v93 V=99
		Planetptn();
	}
	} //SW

	Beat;
}
CASE(2){
	v115
	q60
	Master_key=36+Part_key;

	SWITCH(Select){
	CASE(0){
		EP=127 l4
		W_bassptn();
	}
	CASE(1){
		EP=114 l8 M=1
		R_bassptn();
	}
	CASE(2){
		EP=87 l8 v90 M=0
		Planetptn();
	}
	} //SW

	Beat;
}
} //SW
	
/* 
	Rhythm{v90 l8 r7^r 7^7r}
	Rhythm{ <- プリプロセッサ指定
	一度、7を書き換えたら、変数ではないため変更できない
*/
  
} //FOR 

} //FOR

} //FOR

} //FOR
 
