TrackName = {"Crying"};
Copyright = {"AMIO"};

/*

*/



Int Repeat = 2;
// 繰り返し回数を設定できます







//-----------------------------variables---------------------------------

Int In = 1;//イントロからメロディースタートまでの時間
Int Ltime = 52;//１ループの時間
Int Out = Ltime*Repeat+In+1;//フェードアウト開始時間
Int Fade = 8;//フェードアウトにかかる時間
Int Tmp = 74;//テンポ
Int Sig = 4;

Int Ptime = (In+Ltime*Repeat+Fade)*Sig*60/Tmp;

//---------------------------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));
	}
}

//------------------------------system setting---------------------------------

SoundType=1;TimeBase(96);System.MeasureShift(1);Include(guitar.h);Include(gs.h);Include(unison.h);
Time(0:1:0) Tempo(Tmp);TimeSignature(Sig,4);PrintPlayTime(Ptime);
ResetGM; r2 ResetGS; r2 TrackSync;

//----------------------------------strings-----------------------------------

Str TR1In = {};
Str TR1 = {l12 o6 q96
		[Slur(0,!24) M(10) "e-24,,80&24"e1-24,,80 Slur(2,100) [5d24&e24&g24&e24] Slur(0,!24) d16&e48d edc M(30) "g4,80 :M(10) "a2,80 "b2-12"a24"g24 M(30)"a2,80]
		M(30) "a4,80 M(50) a-24&24a4-24,80,110 M(30) "b4,80 M(40) a24&24b8,,110a24,,110g24,,110 M(50) f+2-12,,105r12
		
		[M(10) e4^12f+g f+ M(50) d4rr M(10) e4^12f+g a M(50) b4 M(10) r:r  "a4"a"bc "b4"g^"e e4,90eae M(50)g4f+4,80] a24b24
		`c4,85,105`c,,105`d,,105`c,,105 b4,90g4,80 e4,90eae M(50) g4,100f+4,85
		
		[4r1]
		
		[Slur(0,!24) M(10) "e-24,,80&24"e1-24,,80 Slur(2,100) [5d24&e24&g24&e24] Slur(0,!24) d16&e48d edc M(30) "g4,80 :M(10) "a2,80 "b2-12"a24"g24 M(30)"a2,80]
		M(30) "a4,80 M(50) a-24&24a4-24,80,110 M(30) "b4,80 M(40) a24&24b8,,110a24,,110g24,,110 M(50) f+2-12,,105r12
		
		[M(10) e4^12f+g f+ M(50) d4rr M(10) e4^12f+g a M(50) b4 M(10) r:r  "a4"a"bc "b4"g^"e e4,90eae M(50)g4f+4,80] a24b24
		`c4,85,105`c,,105`d,,105`c,,105 b4,90g4,80 e4,90eae M(50) g4,100f+4,85
		
		Slur(1) M(20) e1&`e1r1r1 Slur(0,!12) M(20) `e-12&12`e1^1-12r1r1};
Str TR1Out = {l12 o6 q96
		[Slur(0,!24) M(10) "e-24,,80&24"e1-24,,80 Slur(2,100) [5d24&e24&g24&e24] Slur(0,!24) d16&e48d edc M(30) "g4,80 :M(10) "a2,80 "b2-12"a24"g24 M(30)"a2,80]
		M(30) "a4,80 M(50) a-24&24a4-24,80,110 M(30) "b4,80 M(40) a24&24b8,,110a24,,110g24,,110 M(50) f+2-12,,105r12};

Str TR2In = {};
Str TR2 = {l12 o5 q96
		[8r1]
		
		[8r1]
		
		[4r1]
		
		[8r1]
		
		[M(10) c4^12de d M(50) "b4rr M(10) c4^12de f+ M(50) g4 M(10) r:r "f4"f"g"a "g4"b^"g "a4"a"g"a M(50)c4"b4,80] f24g24
		a4aga g4e4,80 "f+4"f+"ac "b4,100"f+4
		
		"e1^1r1r1};
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 = {l4 o3 q96
		[e`e`db c`cbg "aage : "f+f+ "b6f+12b6f+12] "f+f+"bb
		
		[[cc"g12g12d12g6d12]f"fb`e"f+c:"b6f+12b]"b"f+
		
		[eabe ea:bb]EP.T(96,127,!2)[6b12]
		
		[e`e`db c`cbg "aage "f+f+"b6,80f+12,80b6,80:f+12,80]f+12
		
		[[cc"g12g12d12g6d12]f"fb`e"f+c:"b6f+12b]["b6"f+12]
		
		[4e`e`db c`cbg "aage "f+f+"bb]};
Str TR8Out = {l4 o3 q96
		[e`e`db c`cbg "aage : "f+f+ "b6f+12b6f+12] "f+f+"bb};

Str TR9In = {};
Str TR9 = {};
Str TR9Out = {};

Str TR10In = {l12 r2^4 t.N(-16,-8,0)'n43n41n35't0['n35n42']};
Str TR10 = {Sub{n49}
		[8Sub{[v.N(100,0,95)n46rn46]v.N(90,100,0,100,0,95)n46n46rn46rn46}
		  Sub{[v.N(100,0,95)n35rn35]v100rn35rn35rr}Sub{rrrn65rr[rn65]rr}rrrn38rr[3rn38]]

		[8Sub{[v.N(100,0,95)n46rn46]v.N(90,100,0,100,0,95)n46n46rn46rn46}
		  Sub{[v.N(100,0,95)n35rn35]v100rn35rn35rr}Sub{rrrn65rr[rn65]rr}rrrn38rr[3rn38]]
		
		Sub{v110[4n46rr]}Sub{v.N(105,95,95)[12n35]}v100[n38rr]n38[r24n38,24]n38rr
		Sub{v110[4n46rr]}Sub{v.N(105,95,95)[12n35]}v100[n38rr][n38[r24n38,24]]
		Sub{v110[4n46rr]}Sub{v.N(105,95,95)[12n35]}v100[3n38rr]n38[r24n38,24]
		Sub{v110[3n46rr]v100[3n46]}Sub{v.N(105,95,95)[9n35]v100[3n35]}v100[n38rr]n38[r24n38,24][3n38] 
		
		Sub{n49}
		[8Sub{[v.N(100,0,95)n46rn46]v.N(90,100,0,100,0,95)n46n46rn46rn46}
		  Sub{[v.N(100,0,95)n35rn35]v100rn35rn35rr}Sub{rrrn65rr[rn65]rr}rrrn38rr[3rn38]]
		
		[8Sub{[v.N(100,0,95)n46rn46]v.N(90,100,0,100,0,95)n46n46rn46rn46}
		  Sub{[v.N(100,0,95)n35rn35]v100rn35rn35rr}Sub{rrrn65rr[rn65]rr}rrrn38rr[3rn38]]
		
		Sub{n49}
		[16Sub{[v.N(100,0,95)n46rn46]v.N(90,100,0,100,0,95)n46n46rn46rn46}
		   Sub{[v.N(100,0,95)n35rn35]v100rn35rn35rr}Sub{rrrn65rr[rn65]rr}rrrn38rr[3rn38]]};
Str TR10Out = {Sub{n49}
		[8Sub{[v.N(100,0,95)n46rn46]v.N(90,100,0,100,0,95)n46n46rn46rn46}
		  Sub{[v.N(100,0,95)n35rn35]v100rn35rn35rr}Sub{rrrn65rr[rn65]rr}rrrn38rr[3rn38]]};

Str TR11In = {};
Str TR11 = {l12 o5 y64(127) EP.onCycle(!12,127,127,112)
		[[4'egb'r'egb'][4'cgb'r'cgb']['cea'r'cea']['"bdg'r'"bdg']['"acf+'r'"acf+']['e-f+b'r'e-f+b']]
		
		[[['eg`c'r'eg`c']['"bdg'r'"bdg']]['cfa'r'cfa']['"g"be'r'"g"be']['"f+"ac'r'"f+"ac']:['e-f+b'r'e-f+b']]
		['e-f+a'r'e-f+a']
		
		y64(0) EP(127)
		['"e"g"b'4'"e"ac'4'"f+"be-'4:'"e"g"b'4]'"f+"be-'4
		['"e"g"b'4'"e"ac'4:'"f+"be-'4'"e"g"b'4]EP.T(96,127,!2)[6'e-f+b'12]
		
		y64(127) EP.onCycle(!12,127,127,117)
		[[4'egb'r'egb'][4'cgb'r'cgb']['cea'r'cea']['"bdg'r'"bdg']['"acf+'r'"acf+']['e-f+b'r'e-f+b']]
		
		[[['eg`c'r'eg`c']['"bdg'r'"bdg']]['cfa'r'cfa']['"g"be'r'"g"be']['"f+"ac'r'"f+"ac']:['e-f+b'r'e-f+b']]['e-f+a'r'e-f+a']
		
		[4[4'egb'r'egb'][4'cgb'r'cgb']['cea'r'cea']['"bdg'r'"bdg']['"acf+'r'"acf+']['e-f+b'r'e-f+b']]};
Str TR11Out = {l12 o5 y64(127) EP.onCycle(!12,127,127,117)
		[[4'egb'r'egb'][4'cgb'r'cgb']['cea'r'cea']['"bdg'r'"bdg']['"acf+'r'"acf+']['e-f+b'r'e-f+b']]};

Str TR12In = {};
Str TR12 = {};
Str TR12Out = {};

Str TR13In = {};
Str TR13 = {[8r1]

		[8r1]
		
		l24 o5 q90
		e8f+rg a4 a8grf+ e4 e8f+rga12g12a12 b8`d`c+a b4
		OctaveUnison{e8f+rg a4 a8grf+ e4 e8f+rga12g12a12 b8`d`c+a b4}
		
		[8r1]
		
		[8r1]
		
		o6 l24
		r1r4 e^^f+g^ arb4^12gf+ e4e^d^c^ "b4"b^"a^"g^ "a4"a^"g^"a^ "b^e-^f+^ b^a^gf+
		e4e^f+^g^ d4f+^e^d^ c4e^d^c^ "b4^8rc"b "a4"a^"b^c^ "g^"a^"b^d^^^g^ a4,96a^g^a^ b^a^b^`d^^^b^
		Slur(2,100)`e-24&`e1^24 `d`e`e`d`e^`d^`e`d`e^`d`e`d^b^a^g^ `c8a`c^a^b^`c^ b^a^b^g4,80 a4g^^^a^ b4a^^^g^
		e1^1,96 'eg'2,80'da'2,80 'cb'2,80 b^a^b^`d^^^b^ 
		  
		 
		};
Str TR13Out = {};

Str TR14In = {};
Str TR14 = {};
Str TR14Out = {};

Str TR15In = {};
Str TR15 = {};
Str TR15Out = {};

Str TR16In = {};
Str TR16 = {};
Str TR16Out = {};

//-----------------------------------Tracks--------------------------------------

/* Track      001,002,003,004,005,006,007,008,009,010,011,012,013,014,015,016 */
Array Vols = (100,100,100,100,100,100,100,075,100,090,080,100,105,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(31) M(10) REV(30) CHO(0) P(48) #Scr(TR1)
TR(2)  CH(2)  Voice(31) M(10) REV(30) CHO(0) P(48) #Scr(TR2)
TR(3)  CH(3)  Voice(1) M(0) REV(0) CHO(0) P(64) #Scr(TR3)
TR(4)  CH(4)  Voice(1) M(0) REV(0) CHO(0) P(64) #Scr(TR4)
TR(5)  CH(5)  Voice(1) M(0) REV(0) CHO(0) P(64) #Scr(TR5)
TR(6)  CH(6)  Voice(1) M(0) REV(0) CHO(0) P(64) #Scr(TR6)
TR(7)  CH(7)  Voice(1) M(0) REV(0) CHO(0) P(64) #Scr(TR7)
TR(8)  CH(8)  Voice(34) M(0) REV(20) CHO(0) P(32) #Scr(TR8)
TR(9)  CH(9)  Voice(1) M(0) REV(0) CHO(0) P(64) #Scr(TR9)
TR(10) CH(10) Voice(1) REV(20) CHO(0) P(72) #Scr(TR10)
TR(11) CH(11) Voice(1) M(0) REV(40) CHO(0) P(96) #Scr(TR11)
TR(12) CH(12) Voice(1) M(0) REV(0) CHO(0) P(64) #Scr(TR12)
TR(13) CH(13) Voice(19) M(0) REV(30) CHO(0) P(104) #Scr(TR13)
TR(14) CH(14) Voice(1) M(0) REV(0) CHO(0) P(64) #Scr(TR14)
TR(15) CH(15) Voice(1) M(0) REV(0) CHO(0) P(64) #Scr(TR15)
TR(16) CH(16) Voice(1) M(0) REV(0) CHO(0) P(64) #Scr(TR16)

//-------------------------------others----------------------------------

Time(Out:1:0) FadeoutAll(Fade,Vols);
