Include(guitar.h);

/*
	動画用にギターメインのBGMをいくつか作ったのでまとめてみました。
	制作環境:
		midiプレイヤー:timidity++
	サウンドフォント:
		ギター:SampleSmith_Free_G1-v1
		それ以外:SGM-V2.01
	windowsデフォルトの音源だとイマイチです。
*/

Int Num = 0;
/*
	曲の選択
	Num = 0 : 休息
	Num = 1 : ビル街の朝
	Num = 2 : 朝のベーカリー
	Num = 3 : 白日の魔法
	Num = 4 : 夕暮れの空き家
	Num = 5 : 木枯らしが頬を打つ
*/
Int Repeat = 2;
//繰り返し回数を設定できます(default:2回)

Switch(Num){
	Case(0){ TrackName = {"休息"}; }
	Case(1){ TrackName = {"ビル街の朝"}; }
	Case(2){ TrackName = {"朝のベーカリー"}; }
	Case(3){ TrackName = {"白日の魔法"}; }
	Case(4){ TrackName = {"夕暮れの空き家"}; }
	Case(5){ TrackName = {"木枯らしが頬を打つ"}; }
}
Copyright = {"S.Zayo"};

Int In; Int Ltime; Int Fade; Int Tmp; Int Sig; Int SigBase; Int Out; Int Ptime;

Switch(Num) {
	Case(0){
		In = 0;//イントロからメロディースタートまでの時間
		Ltime = 20;//1ループの時間
		Fade = 8;//フェードアウトにかかる時間
		Tmp = 120;//テンポ
		Sig = 4;
		SigBase = 4;
	}
	Case(1){
		In = 0;//イントロからメロディースタートまでの時間
		Ltime = 32;//1ループの時間
		Fade = 8;//フェードアウトにかかる時間
		Tmp = 120;//テンポ
		Sig = 4;
		SigBase = 4;
	}
	Case(2){
		In = 0;//イントロからメロディースタートまでの時間
		Ltime = 32;//1ループの時間
		Fade = 8;//フェードアウトにかかる時間
		Tmp = 150;//テンポ
		Sig = 4;
		SigBase = 4;
	}
	Case(3){
		In = 0;//イントロからメロディースタートまでの時間
		Ltime = 26;//1ループの時間
		Fade = 4;//フェードアウトにかかる時間
		Tmp = 90;//テンポ
		Sig = 6;
		SigBase = 8;
	}
	Case(4){
		In = 4;//イントロからメロディースタートまでの時間
		Ltime = 32;//1ループの時間
		Fade = 6;//フェードアウトにかかる時間
		Tmp = 120;//テンポ
		Sig = 3;
		SigBase = 4;
	}
	Case(5){
		In = 8;//イントロからメロディースタートまでの時間
		Ltime = 24;//1ループの時間
		Fade = 6;//フェードアウトにかかる時間
		Tmp = 166;//テンポ
		Sig = 3;
		SigBase = 4;
	}
}

Out = Ltime*Repeat+In+1;//フェードアウト開始時間
Ptime = (In+Ltime*Repeat+Fade)*Sig*240/(Tmp*SigBase);

//---------------------------functions---------------------------------

Function Repstr(Str MML,Int Tim,Int Rep,Int Beg=0)//MML繰り返し処理関数
{
	Int I;
	
	For(I=0;I<Rep-Beg;I++){
		Time((I+Beg)*Tim+In+1:1:0) MML;
	}
}

Function PrintPlayTime(Int Tim)
{
	Int Minute = Tim/60;
	Int Second = Tim%60;
	If(Tim<60){ Print({"演奏時間:"}+Second+{"秒"}); }
	Else{Print({"演奏時間:"}+Minute+{"分"}+Second+{"秒"}); }
}

Function FadeoutVol(Int Mes,Int Prev)// Prev:pre-volume フェードアウト前のメインボリューム
{
	Str I = {!1};
	While(Mes>1){I = I+{^1}; Mes--;}
	Str CMD = {V.onTime(Prev,0,LEN)};
	CMD.s({LEN},I);
	CMD;
}

Function FadeoutAll(Int Mes,Array X)
{
	Int T = Time;
	For(Int J=1;J<=16;J++){
		TR(J); CH(J); Time(T); FadeoutVol(Mes,X(J-1));
	}
}

Function MyBb6(Int ST, Str LEN) {
	Str MML = {'t.N(-2*ST,-ST,0,ST,2*ST) o3 b->fb->dg'};
	MML = MML + LEN;
	MML;
}
Function Bbm6(Int ST, Str LEN) {
	Str MML = {'t.N(-2*ST,-ST,0,ST,2*ST) o3 b->fg>c+g'};
	MML = MML + LEN;
	MML;
}
Function MyEb(Int ST, Str LEN) {
	Str MML = {'t.N(-2*ST,-ST,0,ST,2*ST) o4 e-b->e-g'};
	MML = MML + LEN;
	MML;
}

//------------------------------system setting---------------------------------

TimeBase(96);System.MeasureShift(1);
Time(0:1:0) Tempo(Tmp);TimeSignature(Sig,SigBase);TrackSync;PrintPlayTime(Ptime);

//----------------------------------strings-----------------------------------

Str TR1In; Str TR1; Str TR1Out; Str TR2In; Str TR2; Str TR2Out; Str TR3In; Str TR3; Str TR3Out; Str TR4In; Str TR4; Str TR4Out;
Str TR5In; Str TR5; Str TR5Out; Str TR6In; Str TR6; Str TR6Out; Str TR7In; Str TR7; Str TR7Out; Str TR8In; Str TR8; Str TR8Out;
Str TR9In; Str TR9; Str TR9Out; Str TR10In; Str TR10; Str TR10Out; Str TR11In; Str TR11; Str TR11Out; Str TR12In; Str TR12; Str TR12Out;
Str TR13In; Str TR13; Str TR13Out; Str TR14In; Str TR14; Str TR14Out; Str TR15In; Str TR15; Str TR15Out; Str TR16In; Str TR16; Str TR16Out;

Switch(Num) {
	Case(0){
		TR1In = {};
		TR1 = { [4r1] l16 [[rr"a"bc+r"br "a"a-"ar:"errr]:"er"g4"f+8["g8"f+8]"d8"e8r1]erg4f+8[g8f+8]d8e8r1
					[[rr"bc+"br"b-r"b^:"f+r"f+r"a^"a-rrrrrrr r2]c+rdre-rerrrrrrr r2]};
		TR1Out = {[4r1] [rr"a"bc+r"br "a"a-"ar:"errr]"er"g4"f+8["g8"f+8]"d8"e8r1};

		TR2In = {}; TR2 = {}; TR2Out = {};
		TR3In = {}; TR3 = {}; TR3Out = {};

		TR4In = {};
		TR4 = { y74(80) l8 [4 EP(127) "a"ec+ EP(110) [A(1,4);t0] EP(127) c+]
						[[EP(127)"a"ec+ EP(110)[A(1,4);t0]EP(127)c+]"g"d"b EP(100)[G(1,4);t0]EP(127)"b "a"ec+ EP(110)[A(1,4);t0]EP(127)c+]
						 [4EP(127)"b"f+d EP(100)[Bm(1,4);t0]EP(127)d : "e""b"a- EP(110)[E(1,4);t0]EP(127)"a-]EP(120) E(1,8);r4^8 l8 EP(127) t.N(0,2,4,6,8,10)'""e""b"d"a-"bd' t0};
		TR4Out = {y74(80) l8 [4 EP(127) "a"ec+ EP(110) [A(1,4);t0] EP(127) c+]
								[EP(127)"a"ec+ EP(110)[A(1,4);t0]EP(127)c+]"g"d"b EP(100)[G(1,4);t0]EP(127)"b "a"ec+ EP(110)[A(1,4);t0]EP(127)c+};

		TR5In = {}; TR5 = {}; TR5Out = {};
		TR6In = {}; TR6 = {}; TR6Out = {};
		TR7In = {}; TR7 = {}; TR7Out = {};
		TR8In = {}; TR8 = {}; TR8Out = {};
		TR9In = {}; TR9 = {}; TR9Out = {};

		TR10In = {};
		TR10 = { l8 [12 Sub{[n75rrr]}'n35n70'rn42n35'n33n35'rn42r][7 Sub{[4n69r]}Sub{[n75rrr]}'n35n70'rn42n35'n33n35'rn42r]'n69n75n70n35'rrrn81rrr};
		TR10Out = {l8 [8 Sub{[n75rrr]}'n35n70'rn42n35'n33n35'rn42r]};

		TR11In = {};
		TR11 = {q100 l2 PS(127) PT(40) [aa-f+e] [8r1] l1[3be]b q50 l8 errrrrrr};
		TR11Out = {q100 l2 PS(127) PT(40) [aa-f+e]};

		TR12In = {};
		TR12 = {q100 l1^1 ['"ac+e'] [8r1] l1 [4EP.onTime(60,127,!1)'"bda'EP(127):'"e"a-"b']q50 l8'"e"a-"b'rrrrrrr};
		TR12Out = {q100 l1^1 ['"ac+e']};

		TR13In = {}; TR13 = {}; TR13Out = {};
		TR14In = {}; TR14 = {}; TR14Out = {};
		TR15In = {}; TR15 = {}; TR15Out = {};
		TR16In = {}; TR16 = {}; TR16Out = {};
	}
	Case(1){
		TR1In = {}; TR1 = {}; TR1Out = {};
		TR2In = {}; TR2 = {}; TR2Out = {};
		TR3In = {}; TR3 = {}; TR3Out = {};

		TR4In = {};
		TR4 = { q100 l12 [v127 D(2,6); v100 t0 "a[3d6"a][4c6"a][4d6"a][4c6"a]]
					[v127 D(2,6); v100 t0 "a[7d6"a][4c6"a]:[4d6"a]]v127 D(2,12); t0 v90 rr'd"a'rr v100 rrf+e^d
					  [v110 Bb(2,6); v90 t0 "b-[7f6"b-] v100 :[8d6"a]] [4d6"a][4c+6"a]
					  [v127 D(2,6); v100 t0 "a[3d6"a][8c6"a][4d6"a]] };
		TR4Out = {q100 l12 [v127 D(2,6); v100 t0 "a[3d6"a][4c6"a][4d6"a][4c6"a]]};

		TR5In = {}; TR5 = {}; TR5Out = {};
		TR6In = {}; TR6 = {}; TR6Out = {};
		TR7In = {}; TR7 = {}; TR7Out = {};

		TR8In = {};
		TR8 = { [4r1] l12 [4d^^^rdd^^^rr][[d^^^rdd^^^rr]c^^^rcc^^^rr : d^^^rdd^^^rr]drrdrr r2
				[["b-^^^r"b-"b-^^^rr][d^^^rdd^^^rr]][[d^^^rdd^^^rr]c^^^rcc^^^rr d^^^rdd^^^rr]};
		TR8Out = {[4r1] l12 [4d^^^rdd^^^rr]};

		TR9In = {}; TR9 = {}; TR9Out = {};

		TR10In = {};
		TR10 = {[4r1] l12 [4n35rrn42rn35n35rrn42rr][7n35rrn42rn35'n35n75'rrn42rr]n42rrn42rr rrrn58rr Sub{[32n54rr]}[8n35rrn42rn35'n35n75'rrn42rr]
				Sub{[32n54rr]}[8n35rr'n39n42'rn35'n35n75'rrn42rr]};
		TR10Out = {[4r1] l12 [4n35rrn42rn35n35rrn42rr]};

		TR11In = {}; TR11 = {}; TR11Out = {};
		TR12In = {}; TR12 = {}; TR12Out = {};
		TR13In = {}; TR13 = {}; TR13Out = {};
		TR14In = {}; TR14 = {}; TR14Out = {};
		TR15In = {}; TR15 = {}; TR15Out = {};
		TR16In = {}; TR16 = {}; TR16Out = {};
	}
	Case(2){
		TR1In = {};
		TR1 = { v80 [[4r1] l12 [araarf+br`cbaf+ erf+ec+:"ar2]ar2 [araarf+br`cbaf+ : erf+e"bc+"arrrrr]e6rf+6ra6rr4]
				[EP(40) M(40) g4 EP(127) M(0)[gb`d]r4  EP(40) M(40) c+4 EP(127) M(0)[gb`d]r4
				EP(40) M(40) f+4 EP(127) M(0)[f+b-`c+]r4  : EP(40) M(40) "b4 EP(127) M(0)[f+b`d]r4] `drbarf+erd"br"a
		};
		TR1Out = {[4r1] [araarf+br`cbaf+ erf+ec+:"ar2]ar2};

	TR2In = {};
		TR2 = { l4 [12dabf+ebae]
				["gdg12d12g12r6d12 c+f+`c+12a12`c+12r6a12 f+"f+f+12c+12f+12r6c+12 : "bdf+6b4a12]l12 `d^ba^f+e^d"b^"a
		};
		TR2Out = {l4 [4dabf+ebae]};

		TR3In = {};
		TR3 = { l12 [12r4 D(1,12);rr rrD(1,12);r2 Em(1,12);rr rrAaug(1,3);]
				[r4 G(1,12);rr rrG(1,3);r4 Dbdim(1,12);rr rrDbdim(1,3);r4 Gb(1,12);rr rrGb(1,3); : r4 Bm(1,12);rr rrBm(1,3);]
		};
		TR3Out = {l12 [4r4 D(1,12);rr rrD(1,12);r2 Em(1,12);rr rrAaug(1,3);]};

		TR4In = {};
		TR4 = { [12r1] l12 PS(127) PT(10) [r4d^"a"b^dr4 rre^rrf^^e^"a]};
		TR4Out = {};

		TR5In = {}; TR5 = {}; TR5Out = {};
		TR6In = {}; TR6 = {}; TR6Out = {};
		TR7In = {}; TR7 = {}; TR7Out = {};
		TR8In = {}; TR8 = {}; TR8Out = {};
		TR9In = {}; TR9 = {}; TR9Out = {};

		TR10In = {};
		TR10 = { l12 [6 Sub{rrrn75rrrrn75rrrrrrn75rrrrn81rrr}[4n36rn35n36rn35]]
						[Sub{rrrn75rrrrn75rrrrrrn75rrrrn81rrr}[4n36rn35'n36n82'rn35]]
						[4 Sub{rrrn75rrrrn75rrrrrrn75rrrrn81rrr}[4n36rn35n36rn35]]
						[7n36rn35'n39n75'rn35n36r'n39n75'rrn35]'n36n35n75'rrrrrrrrn81rr
		};
		TR10Out = {l12 [4 Sub{rrrn75rrrrn75rrrrrrn75rrrrn81rrr}[4n36rn35n36rn35]]};

		TR11In = {};
		TR11 = { /*y74(32) [24r1]q100 l1 ['gb`d''c+eg''f+b-`c+''"bdf+']*/ };
		TR11Out = {};

		TR12In = {};
		TR12 = { EP(70) [12r1] q100 l1 PS(127) PT(32) ['da`f+''gb`e'] [8r1] ['db`g''c+b-`g''c+b-`f+':'db`f+']  };
		TR12Out = {};

		TR13In = {}; TR13 = {}; TR13Out = {};
		TR14In = {}; TR14 = {}; TR14Out = {};
		TR15In = {}; TR15 = {}; TR15Out = {};
		TR16In = {}; TR16 = {}; TR16Out = {};
	}
	Case(3){
		TR1In = {};
		TR1 = { EP.onCycle(!8,127,110,110) [4t0 c8[CM7(1,16);r16]]
					//[4t0 c8[CM7(1,16);r16]]t0 "b-8[BbM7(1,16);r16]t0 "b-8[Bbm6(1,16);r16]t0 "a8[Am7(1,16);r16]t0 "g8[G7(1,16);r16]
					[[4t0 c8[CM7(1,16);r16]]t0 "b8[Bm7(1,16);r16]t0 "b-8[BbM7(1,16);r16]t0 "a8[Am7(1,16);r16]t0 "g8[G7(1,16);r16]]
					[[4t0 c8[CM7(1,16);r16]]:[4t0 "b-8[BbM7(1,16);r16]]]t0 "b8[Bm7(1,16);r16]t0 "b-8[BbM7(1,16);r16]t0 "a8[Am7(1,16);r16]t0 "g8[G(1,16);r16]
					[v100[t0 "f8[F(1,16);r16]][t0 "g8[G(1,16);r16]][t0 "b-8[MyBb6(1,16);r16]]:v90[t0 e-8[MyEb(1,16);r16]]]t0 "f8[F7(1,16);r16] t0 "g8[G7(1,16);r16]};
		TR1Out = {[8t0 c8[CM7(1,16);r16]]t0 "b8[Bm7(1,16);r16]t0 "b-8[BbM7(1,16);r16]t0 "a8[Am7(1,16);r16]t0 "g8[G7(1,16);r16]};

		TR2In = {};
		TR2 = {[r2^4]
				[q100 v.N(110,100) M(40) b4^8 a4^8 M(10) v.N(115,120,115,100)b8`c8b8 M(40) a4^8 : v115 a4^8g4 q90 v127 M(0)`d8 v100 M(40) g4^8r4^8]v115 a4 M.N(0,40) v.N(120,100,120,127)`c8g4`c+8 `g2 v110 M(0)g8a8
				v120 [M(0)b8a8b8 M(40)a4^8 M(0)b8`c8b8a8g8 v100 f8 v110 : M(40)a4^8g4^8 M(0) a8g8 v100 a8g8 v120 g8a8]v115 a4 M.N(0,40) v.N(120,100,120,127)`c8g4`c+8 `g2r4 
				[v120 f4^8a4^8 M(0) g8f8g8 v100 M(40) d4 v120 a8 v120 b-4^8 v127 :`d4^8 M(0) v120 g8f8g8 v100 M(40) e-4^8]`d4 v110 M(0)g8 v115 e-8d8c8 v120 a8g8f8 };
		TR2Out = {[r2^4] q100 v110 M(40) b4^8a4^8 M(10)b8`c8b8M(40) a4^8 a4^8g4 q90 v127 M(0)`d8 v110 M(40) g4^8r4^8};

		TR3In = {}; TR3 = {}; TR3Out = {};
		TR4In = {}; TR4 = {}; TR4Out = {};
		TR5In = {}; TR5 = {}; TR5Out = {};
		TR6In = {}; TR6 = {}; TR6Out = {};
		TR7In = {}; TR7 = {}; TR7Out = {};
		TR8In = {}; TR8 = {}; TR8Out = {};
		TR9In = {}; TR9 = {}; TR9Out = {};
		TR10In = {}; TR10 = {}; TR10Out = {};
		TR11In = {}; TR11 = {}; TR11Out = {};
		TR12In = {}; TR12 = {}; TR12Out = {};
		TR13In = {}; TR13 = {}; TR13Out = {};
		TR14In = {}; TR14 = {}; TR14Out = {};
		TR15In = {}; TR15 = {}; TR15Out = {};
		TR16In = {}; TR16 = {}; TR16Out = {};
	}
	Case(4){
		TR1In = {v90 q100 l12 ["a^"ac+"ac+e^^ "e^"e"a-"e"a-e^^]};
		TR1 = { v90 q100 l12 [6"a^"ac+"ac+e^^ "e^"e"a-"e"a-e^^]"b^"bd"bdf+^^ "e^"e"b"a-"be^^ "a^"ad"ade^^ "g^"gc+"ac+e^^
						[[d"adafa`c^^ "g"d"gd"bdg^^]c"gcgeg`c^^ "f"c"fc"acf^^ "b"f"bd"bdf^^ "e""b"e"b"a-"be^^]};
		TR1Out = {v90 q100 l12 [4"a^"ac+"ac+e^^ "e^"e"a-"e"a-e^^]};

		TR2In = {v90 l2^4['t.N(-4,-2,0,2,4) "aea`c+`e''t.N(-4,-2,0,2,4,6) "e"bea-b`e']};
		TR2 = { v90 l2^4[6't.N(-4,-2,0,2,4) "aea`c+`e''t.N(-4,-2,0,2,4,6) "e"bea-b`e']
						't.N(-4,-2,0,2,4) "bf+b`d`f+''t.N(-4,-2,0,2,4,6) "e"bda-b`e''t.N(-4,-2,0,2,4) "aea`d`e''t.N(-4,-2,0,2,4) "aea`c+`e'
						[['t.N(-2,0,2,4) "da`c`f''t.N(-4,-2,0,2,4,6) "g"bdgb`f']'t.N(-2,0,2,4,6) ceg`c`e''t.N(-4,-2,0,2,4,6) "fcfa`c`f''t.N(-2,0,2,4) "bfa`d':'t.N(-4,-2,0,2,4,6) "e"bea-b`e']'t.N(-4,-2,0,2,4,6) "e"bda-b`e' };
		TR2Out = { v90 l2^4[4't.N(-4,-2,0,2,4) "aea`c+`e''t.N(-4,-2,0,2,4,6) "e"bea-b`e']};

		TR3In = {};
		TR3 = { [15r2^4] EP(127) l12 c+rrdrrerr [[M(30) f2 M(0) EP(127) 'fa't0 rr EP(127) :M(30)g2^4]M(0)grrcrrdrr M(30) e2 M(0) EP(127) 'cg't0 rr EP(127) frrerrcrr M(30) d2^4 : M(0) r4drrerr]};
		TR3Out = {};

		TR6In = {};
		TR6 = {q100 PS(127) PT(6) EP.onTime(40,127,!2^4) a2^4 EP(127)a-4f+4a-4e2^4 r2c+4 e2f+4e4c+4d4 e2^4r2^4 EP.onTime(80,127,!2^4)a2^4 EP(127)a-4f+4a-4e2^4 r2c+4 e2f+4e4c+4d4 c+2^4r2^4};
		TR6Out = {q100 PS(127) PT(6) EP.onTime(40,127,!2^4) a2^4 EP(127)a-4f+4a-4e2^4 r2c+4 e2f+4e4c+4d4 e2^4r2^4};

		TR10In = {l12 [4'n33n44'rn42'n33n44'rn44n34rr]};
		TR10 = {l12 [16'n33n44'rn42'n33n44'rn44n34rr][16'n33n44'rn42'n33n44'rn44'n34n75n83'rr] };
		TR10Out = {[8'n33n44'rn42'n33n44'rn44n34rr]};

		TR11In = {};
		TR11 = {y74(0) q100 [16r2^4] [[Sub{d2^4"g2}f2^4"b2r4]Sub{c2^4"f2}e2^4"a2r4 Sub{"b2^4"e2}d2^4"b2r4] };
		TR11Out = {};

		TR4In = {}; TR4 = {}; TR4Out = {};
		TR5In = {}; TR5 = {}; TR5Out = {};
		TR7In = {}; TR7 = {}; TR7Out = {};
		TR8In = {}; TR8 = {}; TR8Out = {};
		TR9In = {}; TR9 = {}; TR9Out = {};
		TR12In = {}; TR12 = {}; TR12Out = {};
		TR13In = {}; TR13 = {}; TR13Out = {};
		TR14In = {}; TR14 = {}; TR14Out = {};
		TR15In = {}; TR15 = {}; TR15Out = {};
		TR16In = {}; TR16 = {}; TR16Out = {};
	}
	Case(5){
		TR1In = {l12 [[EP(100) "e""a"ec"aeg^e EP(127) D(1,6);t0 EP(100) d :r2]EP(80)rrdrrr]};
		TR1 = {l12 [[EP(100) "e""a"ec"aeg^e EP(127) D(1,6);t0 EP(100) d :r2]EP(80)rrdrrr[4r2^4]]
					[[EP(100) "e""a"ec"aeg^e EP(127) D(1,6);t0 EP(100) d :r2]EP(80)rrdrrr] };
		TR1Out = {[EP(100) "e""a"ec"aeg^e EP(127) D(1,6);t0 EP(100) d :r2]EP(80)rrdrrr};

		TR2In = {l12 [4r2^4][EP(127)r6 't0 "a t1 c t2 g' t0 r4 't0 "a4 t1 c4 t2 g4' EP(115) r6 't0 d t1 f+ t2 a't0 r4 't0 d4 t1 f+4 t2 a4']};
		TR2 = { l12 [12EP(127)r6 't0 "a t1 c t2 g' t0 r4 't0 "a4 t1 c4 t2 g4' EP(115) r6 't0 d t1 f+ t2 a't0 r4 't0 d4 t1 f+4 t2 a4']  };
		TR2Out = {[4EP(127)r6 't0 "a t1 c t2 g' t0 r4 't0 "a4 t1 c4 t2 g4' EP(115) r6 't0 d t1 f+ t2 a't0 r4 't0 d4 t1 f+4 t2 a4']};

		TR3In = {};
		TR3 = {l12 y74(64) PS(127) PT(8) [4r2^4][eceaea`c`d`e `d`caf+ee-dc"a]};
		TR3Out = {[4r2^4][eceaea`c`d`e `d`caf+ee-dc"a]};

		TR4In = {};
		TR4 = { y74(48) l4 [12"ace6"a12dc"b6"g12] };
		TR4Out = {l4 [4"ace6"a12dc"b6"g12]};

		TR5In = {};
		TR5 = {l12 [8r2^4][EP(100) c"gceceb^g D(1,6);t0 f+ :r2]EP(80)rrf+rrr[4r2^4][[EP(100) c"gceceb^g D(1,6);t0 f+ :r2]EP(80)rrf+rrr]};
		TR5Out = {};

		TR6In = {};
		TR6 = { [12r2^4] q100 y74(96) PS(127) PT(20) g2e4f+2^12r6 g4^6a12e4f+2^12};
		TR6Out = {};

		TR7In = {}; TR7 = {}; TR7Out = {};
		TR8In = {}; TR8 = { /*[8r2^4] l12 [8rr"arrr"a^^ rrdrrrd^^]*/ }; TR8Out = {};
		TR9In = {}; TR9 = {}; TR9Out = {};

		TR10In = {};
		TR10 = { [4r2^4] l4 v90 P(48) [12n75] [4r2^4] v100 P(96) [12n85] };
		TR10Out = {[4r2^4] l4 v90 P(48) [12n75]};

		TR11In = {}; TR11 = {}; TR11Out = {};
		TR12In = {}; TR12 = {}; TR12Out = {};
		TR13In = {}; TR13 = {}; TR13Out = {};
		TR14In = {}; TR14 = {}; TR14Out = {};
		TR15In = {}; TR15 = {}; TR15Out = {};
		TR16In = {}; TR16 = {}; TR16Out = {};
	}
}

Array Vols = (100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100);

Switch(Num) {
	Case(0){
		Vols = (127,120,075,090,100,100,100,100,100,100,060,030,100,100,100,100);//各トラックのメインボリューム
		FOR(Int A=1;A<=16;A++){CH(A); V(Vols(A-1));}

		#Scr = {Time(1:1:0) #?1In; Repstr(#?1,Ltime,Repeat); Time(Out:1:0) #?1Out;}

		TR(1)  CH(1)  Voice(73) M(0) REV(20) CHO(0) P(76) o5 #Scr(TR1)
		TR(2)  CH(2)  Voice(73) M(0) REV(20) CHO(0) P(76) o6 #Scr(TR1)
		TR(3)  CH(3)  Voice(13) M(0) REV(0) CHO(0) P(76) o5 #Scr(TR1)
		TR(4)  CH(4)  Voice(25) M(0) REV(10) CHO(0) P(64) o5 #Scr(TR4)
		TR(5)  CH(5)  Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR5)
		TR(6)  CH(6)  Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR6)
		TR(7)  CH(7)  Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR7)
		TR(8)  CH(8)  Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR8)
		TR(9)  CH(9)  Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR9)
		TR(10) CH(10) REV(0) CHO(0) P(64) #Scr(TR10)
		TR(11) CH(11) Voice(49) M(0) REV(0) CHO(20) P(32) o4 #Scr(TR11)
		TR(12) CH(12) Voice(53) M(40) REV(0) CHO(40) P(96) o5 #Scr(TR12)
		TR(13) CH(13) Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR13)
		TR(14) CH(14) Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR14)
		TR(15) CH(15) Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR15)
		TR(16) CH(16) Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR16)
	}
	Case(1){
		Vols = (100,100,100,090,100,100,100,080,100,100,100,100,100,100,100,100);//各トラックのメインボリューム
		FOR(Int A=1;A<=16;A++){CH(A); V(Vols(A-1));}

		#Scr = {Time(1:1:0) #?1In; Repstr(#?1,Ltime,Repeat); Time(Out:1:0) #?1Out;}

		TR(1)  CH(1)  Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR1)
		TR(2)  CH(2)  Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR2)
		TR(3)  CH(3)  Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR3)
		TR(4)  CH(4)  Voice(25) M(0) REV(30) CHO(0) P(64) o4 #Scr(TR4)
		TR(5)  CH(5)  Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR5)
		TR(6)  CH(6)  Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR6)
		TR(7)  CH(7)  Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR7)
		TR(8)  CH(8)  Voice(25) M(0) REV(0) CHO(0) P(64) o3 #Scr(TR8)
		TR(9)  CH(9)  Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR9)
		TR(10) CH(10) REV(0) CHO(0) P(64) #Scr(TR10)
		TR(11) CH(11) Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR11)
		TR(12) CH(12) Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR12)
		TR(13) CH(13) Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR13)
		TR(14) CH(14) Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR14)
		TR(15) CH(15) Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR15)
		TR(16) CH(16) Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR16)
	}
	Case(2){
		Vols = (100,090,070,090,063,100,100,100,100,100,050,040,040,100,100,100);//各トラックのメインボリューム
		FOR(Int A=1;A<=16;A++){CH(A); V(Vols(A-1));}

		#Scr = {Time(1:1:0) #?1In; Repstr(#?1,Ltime,Repeat); Time(Out:1:0) #?1Out;}

		TR(1)  CH(1)  Voice(12) M(0) REV(20) CHO(40) P(72) o5 #Scr(TR1)
		TR(2)  CH(2)  Voice(25) M(0) REV(0) CHO(0) P(80) o3 #Scr(TR2)
		TR(3)  CH(3)  Voice(25) M(0) REV(0) CHO(0) P(48) o5 #Scr(TR3)
		TR(4)  CH(4)  Voice(69) M(0) REV(40) CHO(0) P(96) o5 #Scr(TR4)
		TR(5)  CH(5)  Voice(69) M(0) REV(40) CHO(0) P(102) o5 t32 #Scr(TR4)
		TR(6)  CH(6)  Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR6)
		TR(7)  CH(7)  Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR7)
		TR(8)  CH(8)  Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR8)
		TR(9)  CH(9)  Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR9)
		TR(10) CH(10) REV(0) CHO(0) P(64) #Scr(TR10)
		TR(11) CH(11) Voice(53) M(0) REV(10) CHO(40) P(64) o5 #Scr(TR11)
		TR(12) CH(12) Voice(22) M(20) REV(30) CHO(80) P(88) o5 t4 #Scr(TR12)
		TR(13) CH(13) Voice(22) M(20) REV(30) CHO(80) P(56) o5 #Scr(TR12)
		TR(14) CH(14) Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR14)
		TR(15) CH(15) Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR15)
		TR(16) CH(16) Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR16)
	}
	Case(3){
		Vols = (060,090,100,100,100,100,100,100,100,100,100,100,100,100,100,100);//各トラックのメインボリューム
		FOR(Int A=1;A<=16;A++){CH(A); V(Vols(A-1));}

		#Scr = {Time(1:1:0) #?1In; Repstr(#?1,Ltime,Repeat); Time(Out:1:0) #?1Out;}

		TR(1)  CH(1)  Voice(25) M(0) REV(30) CHO(0) P(40) o5 #Scr(TR1)
		TR(2)  CH(2)  Voice(25) M(0) REV(30) CHO(0) P(80) o5 #Scr(TR2)
		TR(3)  CH(3)  Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR3)
		TR(4)  CH(4)  Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR4)
		TR(5)  CH(5)  Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR5)
		TR(6)  CH(6)  Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR6)
		TR(7)  CH(7)  Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR7)
		TR(8)  CH(8)  Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR8)
		TR(9)  CH(9)  Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR9)
		TR(10) CH(10) REV(0) CHO(0) P(64) #Scr(TR10)
		TR(11) CH(11) Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR11)
		TR(12) CH(12) Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR12)
		TR(13) CH(13) Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR13)
		TR(14) CH(14) Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR14)
		TR(15) CH(15) Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR15)
		TR(16) CH(16) Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR16)
	}
	Case(4){
		Vols = (070,080,100,100,100,100,100,100,100,090,060,100,100,100,100,100);
		FOR(Int A=1;A<=16;A++){CH(A); V(Vols(A-1));}
		
		#Scr = {Time(1:1:0) #?1In; Repstr(#?1,Ltime,Repeat); Time(Out:1:0) #?1Out;}
		
		TR(1)  CH(1)  Voice(25) M(0) REV(30) CHO(0) P(80) o5 #Scr(TR1)
		TR(2)  CH(2)  Voice(25) M(0) REV(30) CHO(0) P(48) o4 #Scr(TR2)
		TR(3)  CH(3)  Voice(25) M(0) REV(50) CHO(10) P(96) o5 #Scr(TR3)
		TR(4)  CH(4)  Voice(69) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR4)
		TR(5)  CH(5)  Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR5)
		TR(6)  CH(6)  Voice(69) M(20) REV(30) CHO(0) P(64) o5 #Scr(TR6)
		TR(7)  CH(7)  Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR7)
		TR(8)  CH(8)  Voice(34) M(0) REV(0) CHO(0) P(32) o3 #Scr(TR8)
		TR(9)  CH(9)  Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR9)
		TR(10) CH(10) REV(0) CHO(0) P(64) #Scr(TR10)
		TR(11) CH(11) Voice(49) M(0) REV(60) CHO(60) P(48) o5 #Scr(TR11)
		TR(12) CH(12) Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR12)
		TR(13) CH(13) Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR13)
		TR(14) CH(14) Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR14)
		TR(15) CH(15) Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR15)
		TR(16) CH(16) Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR16)
	}
	Case(5){
		Vols = (100,090,065,075,100,100,100,100,100,040,100,100,100,100,100,100);//各トラックのメインボリューム
		FOR(Int A=1;A<=16;A++){CH(A); V(Vols(A-1));}

		#Scr = {Time(1:1:0) #?1In; Repstr(#?1,Ltime,Repeat); Time(Out:1:0) #?1Out;}

		TR(1)  CH(1)  Voice(25) M(0) REV(20) CHO(0) P(48) o5 #Scr(TR1)
		TR(2)  CH(2)  Voice(25) M(0) REV(20) CHO(0) P(64) o4 #Scr(TR2)
		TR(3)  CH(3)  Voice(69) M(0) REV(60) CHO(60) P(80) o5 #Scr(TR3)
		TR(4)  CH(4)  Voice(25) M(0) REV(40) CHO(40) P(96) o4 #Scr(TR4)
		TR(5)  CH(5)  Voice(25) M(0) REV(20) CHO(0) P(48) o5 #Scr(TR5)
		TR(6)  CH(6)  Voice(80) M(30) REV(60) CHO(0) P(92) o5 #Scr(TR6)
		TR(7)  CH(7)  Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR7)
		TR(8)  CH(8)  Voice(36) M(0) REV(0) CHO(0) P(58) o3 #Scr(TR8)
		TR(9)  CH(9)  Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR9)
		TR(10) CH(10) REV(80) CHO(0) P(96) #Scr(TR10)
		TR(11) CH(11) Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR11)
		TR(12) CH(12) Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR12)
		TR(13) CH(13) Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR13)
		TR(14) CH(14) Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR14)
		TR(15) CH(15) Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR15)
		TR(16) CH(16) Voice(1) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR16)
	}
}

//-------------------------------others----------------------------------

Time(Out:1:0) FadeoutAll(Fade,Vols);