TrackName = {"Kick Off!"};
Copyright = {"AMIO"};

/*
	スポーツゲームやレースゲームのメニュー画面に使える……かな？
*/



Int Repeat = 2;
// 繰り返し回数を設定できます









//-----------------------------variables---------------------------------

Int In = 2;//イントロからメロディースタートまでの時間
Int Ltime = 20;//１ループの時間
Int Out = Ltime*Repeat+In+1;//フェードアウト開始時間
Int Fade = 4;//フェードアウトにかかる時間
Int Tmp = 98;//テンポ
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);
Time(0:1:0) Tempo(Tmp);TimeSignature(Sig,4);PrintPlayTime(Ptime);
ResetGM; r2 ResetGS; r2 TrackSync;

//----------------------------------strings-----------------------------------

#v1_1 = {v.N(100,95,100,105,90)};
#v1_2 = {v.N(90,90,95,105,105,100,100,100)};
#v1_3 = {v.C(!8,80,85,90,95,100,105,110,115)};
#v1_4 = {v.N(110,105,105,100,110)};
#v1_5 = {v.N(110,95,100,110,110,105,105,100)};
#v1_6 = {v.N(110,95,100,110,115,110)};
#v1_7 = {v.C(!8,90,95,100,105,110,115,120,125)};
#v1_8 = {v.N(115,110,110,105,115)};

Str TR1In = {};
Str TR1 = { q100 y71(96) y74(96)
		EP(127)
		#v1_1 e2c4e4 d4"b-2^4,80
		#v1_2 "a-4^8"b-8c4g4 f8^16e32e-32d2^4,80
		#v1_1 e2c4e4 d4"b-2^4,80
		#v1_3
		l32 "a-"c"e-"a-c"e-"a-ce-"a-ce-a-ce-a-
		`ce-a-`c`e-a-`c`e-`a-`c`e-`a-``c`e-`a-``c
		#v1_4 `b-4^16`a-16`g16`f4^16`b-4
		
		#v1_5 ``c4^8`e-8`a-4``c4 `b-8^16`a-32`g32`f2^4,85
		#v1_6 ``c4^8`e-8`a-4``c4 ``d4`b-2^4,85
		#v1_5 ``c4^8`e-8`a-4``c4 `b-8^16`a-32`g32`f2^4,85
		#v1_7
		a-ce-a-      `ce-a-`c       `e-a-`c`e-      `a-`c`e-`a- 
		``c`e-`a-``c ``e-`a-``c``e- ``a-``c``e-``a- ```c``e-``a-```c
		#v1_8 ``b-4^16``a-16``g16``f4^16``b-4-16
		
		EP.T(127,0,!1^1^16) ```c1^1^16
		};
Str TR1Out = {q100 EP(127)
		#v1_1 e2c4e4 d4"b-2^4,80
		#v1_2 "a-4^8"b-8c4g4 f8^16e32e-32d2^4,80};

Str TR2In = {};
Str TR2 = {};
Str TR2Out = {};

Str TR3In = {};
Str TR3 = {};
Str TR3Out = {};

Str TR4In = {};
Str TR4 = {};
Str TR4Out = {};

Str TR5In = {};
Str TR5 = {};
Str TR5Out = {};

#T = {t.N(0,2,4)};

Str TR6In = {};
Str TR6 = { l16 EP(127)
		v80
		[
		[t0"g,30]#T'"gce',50rt0"g,30#T'"gce',50r[3"g,30]#T'"gce',50r"g,30#T'"gce',50r
		[3t0"f,30]#T'"f"b-d',50rt0"f,30#T'"f"b-d',50r[3t0"f,30]#T'"f"b-d',50rt0"f,30#T'"f"b-d',50r
		[3t0"e-,30]#T'"e-"a-c',50rt0"e-,30#T'"e-"a-c',50r[3t0"e-,30]#T'"e-"a-c',50rt0"e-,30#T'"e-"a-c',50r
		[3t0"f,30]#T'"f"b-d',50rt0"f,30#T'"f"b-d',50r[3t0"f,30]#T'"f"b-d',50r : t0"f,30#T'"f"b-d',50r
		t0"g,30
		]
		v90 [#T'"b-df']#T'"b-df'8
		
		v100
		#T'"a-ce-'8r[5#T'"a-ce-':r][#T'"a-ce-']r
		[3#T'"b-df'8^16r[5#T'"b-df':r][#T'"b-df']r
		 #T'"a-ce-'8^16r[5#T'"a-ce-':r][#T'"a-ce-']r]
		 #T'"b-df'8^16r[5#T'"b-df':r][#T'"b-df']r
		 
		 v110 EP.T(127,0,!1^1^16) #T'ceg'1^1^16,100};
Str TR6Out = {l16 EP(127)
		v80
		[t0"g,30]#T'"gce',50rt0"g,30#T'"gce',50r[3"g,30]#T'"gce',50r"g,30#T'"gce',50r
		[3t0"f,30]#T'"f"b-d',50rt0"f,30#T'"f"b-d',50r[3t0"f,30]#T'"f"b-d',50rt0"f,30#T'"f"b-d',50r
		[3t0"e-,30]#T'"e-"a-c',50rt0"e-,30#T'"e-"a-c',50r[3t0"e-,30]#T'"e-"a-c',50rt0"e-,30#T'"e-"a-c',50r
		[3t0"f,30]#T'"f"b-d',50rt0"f,30#T'"f"b-d',50r[3t0"f,30]#T'"f"b-d',50rt0"f,30#T'"f"b-d',50r
		t0"g,30};

Str TR7In = {};
Str TR7 = {};
Str TR7Out = {};

Str TR8In = {l16 q98 v77 [3`c`c`cg]`cgr`c[3`c`c`cg]};
Str TR8 = { v100 q80
		[@34 c^cdre-rf rc @37 c,50`c,90c,50`c8,90 @34"b-
		 @34"b-"b-crd @37 `g,50 @34 "b-^ff"b- @37 [b-,90"b-,50]b-,90
		 @34"a-"a- @37 `g,50 @34 crd^ e-r"a-^ @37 [a-,90]"a-,50a-,90 @34 "b- :
		 @34"b-"b-crd^e- @37 `g,50 @34 "b-"b-"f @37 [`g,90g,50] @34 "b-]
		 @34"b-"b-crd^e- @37 `g,50 @34 "b-"b-"f @37 `g,90g,50 @34 "b-"b-"f
		 
		 @34 v110
		 [7"a-"a-"e-"a-"a-"e-^"a- r"a-^"e-"a-"a-"e-^]
		 "b-"b-"f"b-"b-"f^"b- r"b-^"f"b-"b-"f^
		  
		 l16 q98 v77 [3`c`c`cg]`cgr`c[3`c`c`cg]`c`cgr
		 [3`c`c`cg]`cgr`c[3`c`c`cg]};
Str TR8Out = {v100 q80
		 @34 c^cdre-rf rc @37 c,50`c,90c,50`c8,90 @34"b-
		 @34"b-"b-crd @37 `g,50 @34 "b-^ff"b- @37 [b-,90"b-,50]b-,90
		 @34"a-"a- @37 `g,50 @34 crd^ e-r"a-^ @37 [a-,90]"a-,50a-,90 @34 "b-
		 @34"b-"b-crd^e- @37 `g,50 @34 "b-"b-"f @37 [`g,90g,50] @34 "b-};

Str TR9In = {};
Str TR9 = {};
Str TR9Out = {};

Str TR10In = {l8 Sub{v.N(110,90)[14n43]}Sub{v80[4n35r:rr]}v100[3rr'n39n40'r]rr
		  v80 l16 n35 v100 EP.T(96,127,!8^16)[3'n35n40n46'] };
Str TR10 = {l16 [7Sub{v.N(100,60,80,60)[15n42]v100n46}Sub{v100[4n35rrr]}v100[4rrn40r]]
		Sub{v.N(100,60,80,60)[12n42]v100rn46rn46}Sub{v100[4n35rrr]}v100[4rrn40r]
		
		Sub{v100n49}Sub{v110rr[7n53r]}Sub{v.N(110,70,90,70)rr[13n42]v100n46}Sub{v110[4n35rrr]}v110[4rrn40r]
		l16 [6Sub{v100[8n53r]}Sub{v.N(110,70,90,70)[15n42]v100n46}Sub{v110[4n35rrr]}v110[4rrn40r]]
		Sub{v.N(100,0,90,0)[8n53r]}Sub{v.N(110,70,90,70)[15n42]r v100n49}Sub{v110[4n35rrr]}v110[4rrn40r]
		
		l8 [3Sub{v.N(110,90)[8n43]}Sub{v80[n35rrr]}v100[rr'n39n40'r]]
		Sub{v.N(110,90)[6n43]}Sub{v80[n35r:rr]}v100rr'n39n40'rrr
		  v80 l16 n35 v100 EP.T(96,127,!8^16)[3'n35n40n46']};
Str TR10Out = {l16 [4Sub{v.N(100,60,80,60)[15n42]v100n46}Sub{v100[4n35rrr]}v100[4rrn40r]]};

Str TR11In = {l16 q80 rSub{v60[5eg:`c]}v90[5`e`g:``c]rrSub{v60[4eg`c]rr}v90[4`e`g``c]r4-16};
Str TR11 = {[16r1]
		[3 rSub{v60[5eg`c]}v90[5`e`g``c]]
		rSub{v60[4eg`c]rr}v90[4`e`g``c]r4-16};
Str TR11Out = {};

Str TR12In = {};
Str TR12 = {};
Str TR12Out = {};

Str TR13In = {};
Str TR13 = {[8r1] y67(127)
		l16 q100
		"a-4^8"b-8c4a-8e-8 f8^16d32c32"b-2^4
		"a-4^8"b-8c4a-4 b-8^16a-32g32f2^4
		"a-4^8"b-8c4a-8e-8 f8^16d32c32"b-2^4
		"a-4^8"b-8c4a-4 b-1};
Str TR13Out = {};

Str TR14In = {};
Str TR14 = {};
Str TR14Out = {};

#Dec = {EP.T(127,80,!1)};

Str TR15In = {};
Str TR15 = {};
Str TR15Out = {};

Str TR16In = {q100 v70 y72(72) #Dec'ce'1-8r8 #Dec'ce'2^4r4};
Str TR16 = {q100 [#Dec'ce'1 #Dec'"b-d'1 #Dec'"a-c'1 #Dec'"b-d'1]
		[4#Dec'"a-c'1 #Dec'"b-d'1]
		
		[3 #Dec'ce'1] #Dec'ce'2^4r4};
Str TR16Out = {#Dec'ce'1 #Dec'"b-d'1 #Dec'"a-c'1 #Dec'"b-d'1};

//-----------------------------------Tracks--------------------------------------

/* Track      001,002,003,004,005,006,007,008,009,010,011,012,013,014,015,016 */
Array Vols = (090,060,100,100,100,090,100,095,100,100,065,065,080,100,100,080);//各トラックのメインボリューム
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(81) M(0) REV(30) CHO(60) P(48) #Scr(TR1)
TR(2)  CH(2)  Voice(82) M(0) REV(30) CHO(60) P(48) #Scr(TR1)
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(30) M(0) REV(40) CHO(0) P(40) #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(0) CHO(0) P(52) o3 #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(0) CHO(0) P(64) #Scr(TR10)
TR(11) CH(11) Voice(5) M(0) REV(0) CHO(0) P(96) o6 #Scr(TR11)
TR(12) CH(12) Voice(6) M(0) REV(0) CHO(0) P(96) o6 #Scr(TR11)
TR(13) CH(13) Voice(49) M(10) REV(20) CHO(0) P(110) o6 #Scr(TR13)
TR(14) CH(14) Voice(1) M(0) REV(0) CHO(0) P(64) #Scr(TR14)
TR(15) CH(15) Voice(91) M(10) REV(80) CHO(60) P(88) #Scr(TR16)
TR(16) CH(16) Voice(82) M(10) REV(80) CHO(60) P(88) #Scr(TR16)

//-------------------------------others----------------------------------

Time(Out:1:0) FadeoutAll(Fade,Vols);
