TrackName = {"真夜中"};
Copyright = {"AMIO"};

/*

*/



Int Repeat = 2;
// 繰り返し回数を設定できます







//-----------------------------variables---------------------------------

Int In = 0;//イントロからメロディースタートまでの時間
Int Ltime = 28;//１ループの時間
Int Out = Ltime*Repeat+In+1;//フェードアウト開始時間
Int Fade = 6;//フェードアウトにかかる時間
Int Tmp = 84;//テンポ
Int Sig = 6;
Int SigBase = 8;

Int 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));
	}
}

//------------------------------system setting---------------------------------

SoundType=1;TimeBase(96);System.MeasureShift(1);Include(guitar.h);Include(gs.h);
Time(0:1:0) Tempo(Tmp);TimeSignature(Sig,SigBase);PrintPlayTime(Ptime);
ResetGM; r4 ResetGS; r4 TrackSync;

//----------------------------------strings-----------------------------------

#v1 = {v.N(0,80,90,100,105,110,115,120,127,113,90)};
#v6 = {v.N(105,100,100,105,108,110,105,100,100,100)};
#v7 = {v.N(105,100,100)};

Str TR1In = {};
Str TR1 = {l8 [4r2^4]
		[#v1 rdfgab- `d`e`f`e`c^ [r2^4]]
		[4r2^4]
		#v6 `db-`c`d`e`f `e`cb-a^r
		#v7 `db-`crrr    v100 `d^^^^^,96
		[#v1 rdfgab- `d`e`f`e`c^ [r2^4]]};
Str TR1Out = {[4r2^4]
		#v1 rdfgab- `d`e`f`e`c^ [r2^4]};

#v8 = {v.N(80,65,85,65, 80,65,85,65)};	

Str TR2In = {};
Str TR2 = {l8 [r2^4] o6 P(96) #v8 adag^^ fcfg^^
		o5 P(52)
		[#v1 rdfgab- `d`e`f`e`c^ [r2^4]]
		[4r2^4]
		#v6 `db-`c`d`e`f `e`cb-a^r
		#v7 `db-`crrr    v100 `d^^`c+^^
		[#v1 rdfgab- `d`e`f`e`c^ [r2^4]]};
Str TR2Out = {l8 [r2^4] o6 P(96) #v8 adag^^ fcfg^^
		o5 P(52)
		#v1 rdfgab- `d`e`f`e`c^ [r2^4]};

Str TR3In = {};
Str TR3 = {l8 EP(100) [4r2^4]
		[#v1 r"acefg b-`c`d`cf^ [r2^4]]
		[4r2^4]
		#v6 gdfgab- ac"b-"a^r
		#v7 gdfrrr  v100 a^^^^^,96
		[#v1 r"acefg b-`c`d`cf^ [r2^4]]};
Str TR3Out = {l8 EP(100) [4r2^4]
		#v1 r"acefg b-`c`d`cf^ [r2^4]};

#v2 = {v.N(105,90,100,90,100,100,95,95,105,95,90,90)};
#v3 = {v.N(105,100,100,100,105,100,100,100,105)};
#v4 = {v.N(105,100,100,105,108,110,105,105,100,90,90)};
#v5 = {v.N(105,100,100,105,108,110,105,108,115,115,112)};
#v9 = {v.N(0,0,0,105,100,100)};
		
Str TR4In = {};
Str TR4 = {l8 [4r2^4]
		[r2^4] M(10) #v2 Slur(0,0) dc24&!48d24&!48c24"b-"a"f"g "a"g"e M(40) "f^^,90
		[r2^4] M(10) #v3 Slur(0,!24) dc24&!24"b-12cdc24&!24"b-12c  M.T(10,40,!2^4)d^^^^^
		M(10) #v4 d"b-cdef Slur(0,0) d24&24e12c"b- M(40) "a^^
		M(10) #v5 d"b-cdef Slur(0,0) egg24&24b-12  M(40)  a^^
		[r2^4]
		M(10) #v9 rrrd"b-c d^^,100,100 M(20) c+^^,96,95
		[r2^4] M(10) #v2 Slur(0,0) dc24&!48d24&!48c24"b-"a"f"g "a"g"e M(40) "f^^,90
		[r2^4] M(10) #v3 Slur(0,!24) dc24&!24"b-12cdc24&!24"b-12c  M.T(10,40,!2^4)d^^^^^,90
		};
Str TR4Out = {l8 [4r2^4]
		[r2^4] M(10) #v2 Slur(0,0) dc24&!24d24&!24c24"b-"a"f"g "a"g"e M(40) "f^^,90};

Str TR5In = {};
Str TR5 = {l4^8 q100 [4r2^4]
		[r2^4] gd"ad
		[r2^4] gcd^
		[4g:cfd]ea^
		[r2^4] gd"ad
		[r2^4] gcd^};
Str TR5Out = {l4^8 q100 [4r2^4]
		[r2^4] gd"ad};

Str TR6In = {};
Str TR6 = { l16 EP(110)
		[d^,,80['dfa'r] c^,,80['ceg'r] "b-^,,80['"b-df'r] c^,,80['ceg'r]]
		[d^,,80['dfa'r] c^,,80['ceg'r] "b-^,,80['"b-df'r] "f^,,80['"f"ac'r]
		 "g^,,80['"g"b-d'r] : d^,,80['dfa'r] "a^,,80['"ace'r] d^,,80['dfa'r]]
		 c^,,80['ceg'r]  d^,,80['dga'r]   d^,,80['df+a'r]
		 EP(120)
		"g^,,80['"g"b-d'r] c^,,80['ceg'r]  "f^,,80['"acf'r]  d^['dfa'r]
		"g^,,80['"g"b-d'r] c^,,80['ceg'r]  "f^,,80['"ace'r]  d^['df+a'r]
		"g^,,80['"g"b-d'r] c^,,80['ceg'r]  "f^,,80['"acf'r]  d^['dfa'r]
		"g^,,80['"g"b-d'r] e^,,80['egb-'r] EP(127) "a^,,80['"ade'r] "a^['"ac+e'r]
		EP(110)
		[d^,,80['dfa'r] c^,,80['ceg'r] "b-^,,80['"b-df'r] "f^,,80['"f"ac'r]
		 "g^,,80['"g"b-d'r] : d^,,80['dfa'r] "a^,,80['"ace'r] d^,,80['dfa'r]]
		 c^,,80['ceg'r] d^,,80['dga'r] d^,,80['df+a'r]};
Str TR6Out = {EP(110)
		 [d^,,80['dfa'r] c^,,80['ceg'r] "b-^,,80['"b-df'r] c^,,80['ceg'r]]
		  d^,,80['dfa'r] c^,,80['ceg'r] "b-^,,80['"b-df'r] "f^,,80['"f"ac'r]
		 "g^,,80['"g"b-d'r] d^,,80['dfa'r] "a^,,80['"ace'r] d^,,80['dfa'r]};

Str TR7In = {};
Str TR7 = {};
Str TR7Out = {};

Str TR8In = {};
Str TR8 = {l8 o3 v105
		[drrcrr"b-rrcrr]
		[drrcrrb-rrfrr grr:drrarrdrr]crrdrrdrr
		[4grr:crrfrrdrr]errarrarr
		[drrcrrb-rrfrr grr:drrarrdrr]crrdrrdrr};
Str TR8Out = {l8 o3
		[drrcrr"b-rrcrr]
		drrcrrb-rrfrr grrdrrarrdrr};

Str TR9In = {};
Str TR9 = {};
Str TR9Out = {};

Str TR10In = {};
Str TR10 = {l16
		[8Sub{v90n35}Sub{v70n40}v90rrn42rn42r]
		[16Sub{v90n35}Sub{v70n40}v90rrn42rn42r]
		[16Sub{v90n35}Sub{v80n40}Sub{v90n69rn75rn75r}v90rrn42rn42r]
		[16Sub{v90n35}Sub{v70n40}v90rrn42rn42r]};
Str TR10Out = {l16
		[8Sub{v90n35}Sub{v70n40}v90rrn42rn42r]
		[8Sub{v90n35}Sub{v70n40}v90rrn42rn42r]};

Str TR11In = {};
Str TR11 = {l8 q100 [4r2^4]
		[r2^4] dc"b-"a"f"g agef^^
		[r2^4] d"b-cd"b-c  d^^^^^
		d"b-cdef ec"b-"a^r
		d"b-cdef egb-a^r
		[r2^4]
		rrrd"b-c 'da'4^8,,95'c+a'4^8,,95
		[r2^4] dc"b-"a"f"g agef^^
		[r2^4] d"b-cd"b-c  d^^^^^};
Str TR11Out = {l8 q100 [4r2^4]
		[r2^4] dc"b-"a"f"g agef^^};

Str TR12In = {};
Str TR12 = {l4^8 q100 [4r2^4]
		[8r2^4]
		[4r2^4]
		M(5) gcfd ge M.T(5,60,!2^4) a2^4};
Str TR12Out = {};

Str TR13In = {};
Str TR13 = {l4^8 q100 [4r2^4]
		[7r2^4] M(10) g4^8f+4^8
		[6r2^4] M(10) rd8"b-8c8 M.T(10,40,!2^4) d2^4
		[7r2^4] M(10) g4^8f+4^8};
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 = (127,110,100,110,080,080,100,100,100,090,110,076,080,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(10) REV(20) CHO(0) P(48) #Scr(TR1)
TR(2)  CH(2)  Voice(9) M(0) REV(20) CHO(0) P(52) #Scr(TR2)
TR(3)  CH(3)  Voice(74) M(10) REV(20) CHO(0) P(44) #Scr(TR3)
TR(4)  CH(4)  Voice(69) M(10) REV(20) CHO(0) P(80) o5 #Scr(TR4)
TR(5)  CH(5)  Voice(53) M(0) REV(20) CHO(0) P(64) o4 #Scr(TR5)
TR(6)  CH(6)  Voice(26) M(0) REV(20) CHO(0) P(88) #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(40) #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(20) P(64) #Scr(TR10)
TR(11) CH(11) Voice(19) M(0) REV(20) CHO(0) P(80) o5 #Scr(TR11)
TR(12) CH(12) Voice(49) M(0) REV(20) CHO(0) P(64) #Scr(TR12)
TR(13) CH(13) Voice(80) M(0) REV(20) CHO(40) P(96) o6 #Scr(TR13)
TR(14) CH(14) Voice(1) M(0) REV(20) CHO(40) 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);
