TrackName = {"碧く紅く黒い海"};
Copyright = {"AMIO"};

/*

*/



Int Repeat = 2;
// 繰り返し回数を設定できます







//-----------------------------variables---------------------------------

Int In = 2;//イントロからメロディースタートまでの時間
Int Ltime = 50;//１ループの時間
Int Out = Ltime*Repeat+In+1;//フェードアウト開始時間
Int Fade = 8;//フェードアウトにかかる時間
Int Tmp = 104;//テンポ
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,100,105,106,110,106,95,95,85)};
#v1_2 = {v.N(100,100,105,106,110,122,110,100,90,0,110,0,120)};
#v1_3 = {v.N(127,0,127,117,0,117,127,0,127,124,0,124)};
#v1_4 = {v.N(105,105,110,110,120,90,110,100,100,90)};
#v1_5 = {v.N(95,95,100,100,110,100,105,0,0,105,100)};
#v1_6 = {v.N(100,0,110,0,85,0,90,0,100,0,110,0,120,120,100)};

Str TR1In = {};
Str TR1 = { l8 o5 y71(40) y74(40)
		[#v1_1 "a^"bc^de^ d^"b16"a16"g^^rr
		 #v1_2 "a^"bc^de^ g^f16e16d^rd16r16g
		 #v1_3 [a16r16a1-8 : g16r16g1-8]a-16r16a-1-8]
		 
		#v1_4 d^ef^ga"a e^d16c16"g^^rr
		#v1_5 "a^"bc^df"a e^^^rrdc16r16
		#v1_6 "b16r16f^^^^^r  "e16r16"b^^^^^r "b16r16f^^^ra^ a-2e^^r
		
		#v1_1 "a^"bc^de^ d^"b16"a16"g^^rr
		#v1_2 "a^"bc^de^ g^f16e16d^rd16r16g
		#v1_3 [a16r16a1-8 : g16r16g1-8]a-16r16a-1-8,105};
Str TR1Out = {l8
		 #v1_1 "a^"bc^de^ d^"b16"a16"g^^rr
		 #v1_2 "a^"bc^de^ g^f16e16d^rd16r16g
		 #v1_3 [a16r16a1-8 : g16r16g1-8]a-16r16a-1-8};

Str TR2In = {};
Str TR2 = {};
Str TR2Out = {};

#v3_6 = {v.N(100,0,110,0,95,0,105,0,100,0,110,0,120,120,127)};

Str TR3In = {};
Str TR3 = { l8 o5
		[32r1]
		[r1]
		#v1_1 "a^"bc^de^ d^"b16"a16"g^^rr
		#v1_2 "a^"bc^de^ g^f16e16d^rd16r16g
		#v1_3 [a16r16a1-8 : g16r16g1-8]a-16r16a-1-8
		#v1_4 d^ef^ga^ e^d16c16"g^^rr
		#v1_5 "a^"bc^df"a e^^^rrdc16r16
		#v3_6 "b16r16f^^^^^r  "e16r16"b^^^^^r "b16r16f^^^ra^ a-2b2};
Str TR3Out = {};

Str TR4In = {};
Str TR4 = {};
Str TR4Out = {};

Str TR5In = {};
Str TR5 = {l16 o6 q95 y67(127)
		[32r1]
		[r1]
		r2-8ce a^erc^er r2 b`c`d`cb^gr r2-8"ac f^cr"a^cr r2-8b`c `d`e`d`e`d`e`d`e
		dededededededede cdcdcdcdcdcdcdcd fafafafafafafafa a-ba-ba-ba-ba-ba-ba-ba-b
		r2-8df a^frd^fr r2-8"bc egege^cr r2-8"a"b c^fr"a^"fr r2-8b`c `d`e`d`e`d`e`d`e
		[14e32f32]r8 [14a-32a32]r8 [11e32f32]r16a4 a-4^8a-a[4b`c] };
Str TR5Out = {};

Str TR6In = {};
Str TR6 = {};
Str TR6Out = {};

Str TR7In = {};
Str TR7 = {};
Str TR7Out = {};

Str TR8In = {l16 o3 [4"a^erc^er]};
Str TR8 = {l16 [["a^erc^er]["g^dr"b^dr]["f^cr"a^cr]["e^"br"g^"br]
		[d^arf^ar][c^gre^gr]["b^frd^fr][e^bra-^br]]
		[d^arf^ar][c^gre^gr]["f^cr"a^cr][e^brg^br][["b^frd^fr][e^bra-^br]]
		["a^erc^er]["g^dr"b^dr]["f^cr"a^cr]["e^"br"g^"br]
		[d^arf^ar][c^gre^gr]["b^frd^fr][e^bra-^br]
		
		[4"a^erc^er]
		
		["a^erc^er]["g^dr"b^dr]["f^cr"a^cr]["e^"br"g^"br]
		[d^arf^ar][c^gre^gr]["b^frd^fr][e^bra-^br]
		[d^arf^ar][c^gre^gr]["f^cr"a^cr][e^brg^br][["b^frd^fr][e^bra-^br]]};
Str TR8Out = {l16 ["a^erc^er]["g^dr"b^dr]["f^cr"a^cr]["e^"br"g^"br]
		[d^arf^ar][c^gre^gr]["b^frd^fr][e^bra-^br]};

Str TR9In = {};
Str TR9 = {o3 q100 y71(24) y74(24) VAR(8) y72(69) [32r1]
		a1^1
		l1 agfedcbe
		dcfe"be"be};
Str TR9Out = {};

Str TR10In = {l16 [Sub{[4n35rrr]}Sub{[rrn42n42rrn42r]}[rrn38,,100rrrn38,,60r]]};
Str TR10 = {l16 [16Sub{[4n35rrr]}Sub{[rrn42n42rrn42r]}[rrn38,,100rrrn38,,60r]]
		[8Sub{[4n35rrr]}Sub{[rrn42n42rrn42r]}[rrn38,,100rrrn38,,60r]]
		[8Sub{[4n35rrr]}Sub{[rrn42n42rrn42r]}[rrn38,,100rrrn38,,60r]]
		
		[Sub{[rr'n39n85'n85rr'n39n85'r]}Sub{[4n35rrr]}Sub{[rrn42n42rrn42r]}[rrn38,,100rrrn38,,60r]]
		
		[8Sub{[rr'n39n85'n85rr'n39n85'r]}Sub{[4n35rrr]}Sub{[rrn42n42rrn42r]}[rrn38,,100rrrn38,,60r]]
		[8Sub{[rr'n39n85'n85rr'n39n85'r]}Sub{[4n35rrr]}Sub{[rrn42n42rrn42r]}[rrn38,,100rrrn38,,60r]]};
Str TR10Out = {l16 [8Sub{[4n35rrr]}Sub{[rrn42n42rrn42r]}[rrn38,,100rrrn38,,60r]]};

Str TR11In = {l16 [4c8'cea'rcr'cea'r]};
Str TR11 = {l16 [[c^'cea'rcr'cea'r]["b^'"bdg'r"br'"bdg'r]["f^'"fce'r"fr'"fce'r]["e^'"e"gd'r"er'"e"gd'r]
		["d^'"d"fc'r"dr'"d"fc'r]["c^'"c"e"b'r"cr'"c"e"b'r]["b^'"bdf'r"br'"bdf'r]["e^'"e"a-"b'r"er'"e"a-"b'r]]
		["d^'"d"fc'r"dr'"d"fc'r]["c^'"c"e"b'r"cr'"c"e"b'r]["f^'"fce'r"fr'"fce'r]["e^'"e"gc'r"er'"e"gc'r]
		[["b^'"bdf'r"br'"bdf'r]["e^'"e"a-"b'r"er'"e"a-"b'r]]
		[c^'cea'rcr'cea'r]["b^'"bdg'r"br'"bdg'r]["f^'"fce'r"fr'"fce'r]["e^'"e"gd'r"er'"e"gd'r]
		["d^'"d"fc'r"dr'"d"fc'r]["c^'"c"e"b'r"cr'"c"e"b'r]["b^'"bdf'r"br'"bdf'r]["e^'"e"a-"b'r"er'"e"a-"b'r]
		
		[4c8'cea'rcr'cea'r]
		
		[c^'cea'rcr'cea'r]["b^'"bdg'r"br'"bdg'r]["f^'"fce'r"fr'"fce'r]["e^'"e"gd'r"er'"e"gd'r]
		["d^'"d"fc'r"dr'"d"fc'r]["c^'"c"e"b'r"cr'"c"e"b'r]["b^'"bdf'r"br'"bdf'r]["e^'"e"a-"b'r"er'"e"a-"b'r]
		["d^'"d"fc'r"dr'"d"fc'r]["c^'"c"e"b'r"cr'"c"e"b'r]["f^'"fce'r"fr'"fce'r]["e^'"e"gc'r"er'"e"gc'r]
		[["b^'"bdf'r"br'"bdf'r]["e^'"e"a-"b'r"er'"e"a-"b'r]]};
Str TR11Out = {l16 [c^'cea'rcr'cea'r]["b^'"bdg'r"br'"bdg'r]["f^'"fce'r"fr'"fce'r]["e^'"e"gd'r"er'"e"gd'r]
		["d^'"d"fc'r"dr'"d"fc'r]["c^'"c"e"b'r"cr'"c"e"b'r]["b^'"bdf'r"br'"bdf'r]["e^'"e"a-"b'r"er'"e"a-"b'r]};

Str TR12In = {l8 o5 [caea`caec]};
Str TR12 = {l8 o5 [caea`caec "bbgb`dbgd "ffcfafc"f "ggegbge"b "ffdfafd"a cgeg`cgec "bfdfafd"b eba-b`eba-e]
		"afdfafd"a cbgb`dbg"b "ffcfafc"f "ggeg`cgec ["ffdfaf"b"f  "ee"bea-e"b"a-]
		caea`caec "bbgb`dbgd "ffcfafc"f "ggegbge"b "ffdfafd"a cgeg`cgec "bfdfafd"b eba-b`eba-e};
Str TR12Out = {caea`caec "bbgb`dbgd "ffcfafc"f "ggegbge"b "ffdfafd"a cgeg`cgec "bfdfafd"b eba-b`eba-e};

Str TR13In = {l8 o5 [8r'ea']};
Str TR13 = {l8 [[4r'ea'][4r'dg'][4r'cf'][4r'"be'][4r'da'][4r'cg'][4r'df'][4r'a-b']]
		[4r'da'][4r'cg'][4r'cf'][4r'ce'][4r'df'][4r'"be'][4r'df'][4r'a-b']
		[4r'ea'][4r'dg'][4r'cf'][4r'"be'][4r'da'][4r'cg'][4r'df'][4r'a-b']
		
		[8r'ea']
		
		[4r'ea'][4r'dg'][4r'cf'][4r'"be'][4r'da'][4r'cg'][4r'df'][4r'a-b']
		[4r'da'][4r'cg'][4r'cf'][4r'ce'][4r'df'][4r'"be'][4r'df'][4r'a-b']};
Str TR13Out = {};

Str TR14In = {};
Str TR14 = {};
Str TR14Out = {};

Str TR15In = {};
Str TR15 = {l8 o4 y71(40) y74(40)
		[4r1]
		#v1_3 [f16r16f1-8 : c16r16c1-8]e16r16e1-8
		[4r1]
		#v1_3 [f16r16f1-8 : c16r16c1-8]e16r16e1-8
		 
		[4r1]
		#v1_6 "b16r16"b^^^^^r  e16r16e^^^^^r "b16r16"b^^^r`d^ b2a-^^r
		
		#v1_1 e^ga^b`c^ g^d16c16"b^^rr
		#v1_2 e^fa^b`c^ `d^`c16b16g^rg16r16d
		#v1_3 [f16r16f1-8 : c16r16c1-8]e16r16e1-8,105};
Str TR15Out = {[4r1]
		 #v1_3 [f16r16f1-8 : c16r16c1-8]e16r16e1-8};

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 = (110,055,110,055,074,037,100,100,086,100,090,090,090,030,090,045);//各トラックのメインボリューム
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(57) M(5) REV(10) CHO(0) P(72) #Scr(TR1)
TR(2)  CH(2)  Voice(57) M(5) REV(10) CHO(0) P(104) t32 #Scr(TR1)
TR(3)  CH(3)  Voice(49) M(10) REV(10) CHO(0) P(48) #Scr(TR3)
TR(4)  CH(4)  Voice(49) M(10) REV(10) CHO(0) P(80) t32 #Scr(TR3)
TR(5)  CH(5)  Voice(73) M(0) REV(30) CHO(0) P(104) #Scr(TR5)
TR(6)  CH(6)  Voice(73) M(0) REV(30) CHO(0) P(116) t32 #Scr(TR5)
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(48) #Scr(TR8)
TR(9)  CH(9)  Voice(103) M(0) REV(60) CHO(60) P(24) #Scr(TR9)
TR(10) CH(10) Voice(1) REV(0) CHO(0) P(64) #Scr(TR10)
TR(11) CH(11) Voice(1) M(0) REV(0) CHO(0) P(80) #Scr(TR11)
TR(12) CH(12) Voice(14) M(0) REV(0) CHO(0) P(88) #Scr(TR12)
TR(13) CH(13) Voice(46) M(0) REV(0) CHO(0) P(24) #Scr(TR13)
TR(14) CH(14) Voice(46) M(0) REV(0) CHO(0) P(104) t32 #Scr(TR13)
TR(15) CH(15) Voice(58) M(5) REV(10) CHO(0) P(64) #Scr(TR15)
TR(16) CH(16) Voice(58) M(0) REV(0) CHO(0) P(96) t32 #Scr(TR15)

//-------------------------------others----------------------------------

Time(Out:1:0) FadeoutAll(Fade,Vols);
