TrackName = {"Sweet Gift"};
Copyright = {"AMIO"};

/*

*/



Int Repeat = 2;
// 繰り返し回数を設定できます







//-----------------------------variables---------------------------------

Int In = 0;//イントロからメロディースタートまでの時間
Int Ltime = 36;//１ループの時間
Int Out = Ltime*Repeat+In+1;//フェードアウト開始時間
Int Fade = 8;//フェードアウトにかかる時間
Int Tmp = 94;//テンポ
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; r4 ResetGS; r4 TrackSync;

//----------------------------------strings-----------------------------------

Str TR1In = {};
Str TR1 = {[4r1]
	     l16 ["b-^^^"b-cc+"a- ^^^^^^^r "a-^^^"b-"a-"e-"f ^^^^^^^r
	     "b-^^^"b-"a-"b-:c ^c^cc+^e-^ f^^^^^^^,90 rrrrrrrr]c ^c^c"b-^c^ c+^^^^^^^,90 rrrrrr"b-c+
	     
	     [f^^^c+^"b-c+ ^^^rc+^e-^ c^^^"b-"a-"f"a- ^^^^^^^r :
	      f^^^c+^"b-c+ ^c+^c+e-^c+e- f^^^^^^^,90 rrrrrrrr]
		"b-^"b-^"b-"b-^c ^c^c"b-^c^ c+^^^^^^^,90 rrrrrrc+"a-
		
		["b-^^^"b-cc+"a- ^^^^^^^r "a-^^^"b-"a-"e-"f^^^^^^^r
		"b-^^^"b-cc+"a- ^c+^c+e-^c+e- :f^^^^^^^,90 rrrrrrrr]c+^^^^^^^,90 rrrrrrrr
		
		[f^^^c+^"b-e- ^^^^^^^r e-^^^c+^c"a- ^^^^^^^r :
		 f^^^c+^"b-e- ^^^^^^^r e-^^^c+^e-f  ^^^^^^^r]
		 "b-^"b-^"b-"b-^c ^c^c"b-^c^ c+^^^^^^^,90 rrrrrrrr};
Str TR1Out = {[4r1]
	     l16 "b-^^^"b-cc+"a- ^^^^^^^r "a-^^^"b-"a-"e-"f ^^^^^^^r
	     "b-^^^"b-"a-"b-c ^c^cc+^e-^ f^^^^^^^,90 rrrrrrrr};

Str TR2In = {};
Str TR2 = {};
Str TR2Out = {};

Str TR3In = {};
Str TR3 = {[4r1]
		[8r1]
		l2 [3f,100e-e-,100c+][r1]
		[8r1]
		[3f,100e-e-,100c+]};
Str TR3Out = {};

Str TR4In = {};
Str TR4 = {[4r1]
		[8r1]
		l2 [3c+,100cc,100"b-][r1]
		[8r1]
		[3c+,100cc,100"b-]};
Str TR4Out = {};

Str TR5In = {};
Str TR5 = {};
Str TR5Out = {};

#GRTM = {l16 t.N(-2,0,2)#?1;r#?1;#?1;r#?1;r#?1;r#?2;r#?2;#?2r;#?2;r};
#GRTMS = {t.N(-2,0,2)#?1;r#?1;#?1;r#?1;r#?1};

Str TR6In = {};
Str TR6 = {l16 o4 [18#GRTM({'e-f+`c+'},{'e-a-`c+'}); : #GRTM({'fa-`c'},{'c+fb-'});] #GRTMS({'fa-`c'})'fa-`c'};
Str TR6Out = {[4#GRTM({'e-f+`c+'},{'e-a-`c+'}); : #GRTM({'fa-`c'},{'c+fb-'});]};

Str TR7In = {};
Str TR7 = {l16 o5 t.Random(2) q90 v.N(80,0,100,90,90,95,90,90)"b-re-"b-c+e-"b-c+
		v.N(95,90,90,95,105,100,100) e-"b-c+e-`c^bb-
		v.N(100,100,0,90,90,95,90,90,95) 'fa-'ra-fb-a-fb-
		v.N(90,90,95,90,90,80,80) a-fb-a-f^c"b
		v.N(80,0,100,90,90,95,90,90) "b-re-"b-c+e-"b-c+ 
		v.N(95,90,90,95,105,100,105) e-"b-c+e-`c^b-`c
		v.N(105,95,95,98,95,95,98)`c+^b-a-b-a-fa-
		v.N(0,80,80,90,90)r"b-^"b-c+^cr
		[8r1]
		[8r1]v_(-5)
		[4 v.N(90,93,95,90,93,95,90,93,95,90,93,95,100,100,0,98,98,0) [3"b-c+f]"b-e-f'f`c'r'e-b-'r
		   v.N(95,90,93,95,90,93,95,90,93,95,90,93,93,90,85)[3a-cc+]a-cff^e-c
		   v.N(90,93,95,90,93,95,90,93,95,90,93,95,98,95,98)[3"b-c+f]"b-e-f`c^b-`c :
		   v.N(100,98,95,98,95,93,95,93,85,85,85,88)`c+a-fa-fc+fc+"b-^c^c+^e-^]
		   v.N(95,90,93) [3a-c:c+] v_(0)};
Str TR7Out = {v.N(80,0,100,90,90,95,90,90)"b-re-"b-c+e-"b-c+
		v.N(95,90,90,95,105,100,100) e-"b-c+e-`c^bb-
		v.N(100,100,0,90,90,95,90,90,95) 'fa-'ra-fb-a-fb-
		v.N(90,90,95,90,90,80,80) a-fb-a-f^c"b
		v.N(80,0,100,90,90,95,90,90) "b-re-"b-c+e-"b-c+ 
		v.N(95,90,90,95,105,100,105) e-"b-c+e-`c^b-`c
		v.N(105,95,95,98,95,95,98)`c+^b-a-b-a-fa-
		v.N(0,80,80,90,90)r"b-^"b-c+^c^};

Str TR8In = {};
Str TR8 = {l4 o3 [18e-e-"a-"a-c+c+:"b-"b-]c+^};
Str TR8Out = {[4e-e-"a-"a-c+c+"b-"b-]};

Str TR9In = {};
Str TR9 = {};
Str TR9Out = {};

Str TR10In = {};
Str TR10 = {l16 [20Sub{[4n33rrr]}[16n70]] [15Sub{[4n33rn75r]}[16n70]] Sub{[n33rn75r]}[8n70]n33rrrn34,,,80rrr};
Str TR10Out = {[8Sub{[4n33rrr]}[16n70]]};

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 = {};

//-----------------------------------Tracks--------------------------------------

/* Track      001,002,003,004,005,006,007,008,009,010,011,012,013,014,015,016 */
Array Vols = (100,110,100,100,100,060,070,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(68) M(0) REV(0) CHO(0) P(64) o5 #Scr(TR1)
TR(2)  CH(2)  Voice(79) M(0) REV(0) CHO(0) P(64) o6 #Scr(TR1)
TR(3)  CH(3)  Voice(74) M(0) REV(0) CHO(0) P(96) #Scr(TR3)
TR(4)  CH(4)  Voice(74) M(0) REV(0) CHO(0) P(96) #Scr(TR4)
TR(5)  CH(5)  Voice(1) M(0) REV(0) CHO(0) P(64) #Scr(TR5)
TR(6)  CH(6)  Voice(26) M(0) REV(0) CHO(0) P(48) #Scr(TR6)
TR(7)  CH(7)  Voice(26) M(0) REV(0) CHO(0) P(80) #Scr(TR7)
TR(8)  CH(8)  Voice(34) M(0) REV(0) CHO(0) P(64) #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(56) #Scr(TR10)
TR(11) CH(11) Voice(1) M(0) REV(0) CHO(0) P(64) #Scr(TR11)
TR(12) CH(12) Voice(1) M(0) REV(0) CHO(0) P(64) #Scr(TR12)
TR(13) CH(13) Voice(1) M(0) REV(0) CHO(0) P(64) #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);
