TrackName = {"市場の朝"};
Copyright = {"AMIO"};

/*
	RPGの街っぽいBGM。
	あるいはノベルゲームの日常シーンのBGM。
*/



Int Repeat = 2;
// 繰り返し回数を設定できます







//-----------------------------variables---------------------------------

Int In = 0;//イントロからメロディースタートまでの時間
Int Ltime = 62;//１ループの時間
Int Out = Ltime*Repeat+In+1;//フェードアウト開始時間
Int Fade = 10;//フェードアウトにかかる時間
Int Tmp = 120;//テンポ
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(90,90,90,100,100,0,105,100,105,100,100,95,95)};
#v1_2 = {v.N(90,90,90,100,110,0,110,110,115,110,110,110,105,100,100,100)};
#v1_3 = {v.N(110,103,0,110,100,0,100,105)};
#v1_4 = {v.N(110,103,0,110,100,0)};
#v1_5 = {v.N(110,110,95,0,110,95,0,110,100,110,110,105,100)};
#v1_6 = {v.N(110,100,100,95,0)};
#v1_7 = {v.N(110,110,95,0,110,95,0,110,100,110,100,100,100,105,105)};
#v1_8 = {v.N(90,90,95,95,100,105,110,110,105,95,95)};
#v1_9 = {v.N(90,90,90,100,100,0,105,100,105,100,100,95,95)};
#v1_10 = {v.N(90,90,90,100,110,0,110,110,115,110,110,110,105,100,100,100)};
#v1_11 = {v.N(110,103,0,110,100,0,100,105)};
#v1_12 = {v.N(110,103,0,110,105)};

Str TR1In = {};
Str TR1 = { l12 q72 o5 [r1]
		[
		#v1_1 "f+"f+"f+"g^,80"a^rd^^"a c4"b6,90c24,90"b24"a4"g4
		#v1_2 "f+"f+"f+"a^,80d^re^^f+  g4f+6,90g24,90f+24e4,66ded
		#v1_3  f2-12,80d2,85r e2-12,80c^,66rd^^e
		#v1_4  f2-12,80d2,85r e2-12,80c2,80r]
		
		[#v1_5 a^a"b-rd"b-ra^^f : g4e4c4"b4] #v1_6 g4edc4^12r4
		#v1_7 a^a"b-rd"b-ra^^f g4e6,80g24,80e24c4"b4
		#v1_8 "f+^"f+"a^d^^,66e^^f+ g4f+4e4"a^"g
		
		#v1_9  "f+"f+"f+"g^,80"a^rd^^"a c4"b6,90c24,90"b24"a4"g4
		#v1_10 "f+"f+"f+"a^,80d^re^^f+g4f+6,90g24,90f+24e4,66ded
		#v1_11 f2-12,80d2,85r e2-12,80c^,66rd^^e
		#v1_12 f2-12,80d2,85r e2-12,80c2^12,96};
Str TR1Out = {l12 q72 o5 [r1]
		
		#v1_1 "f+"f+"f+"g^,80"a^rd^^"a c4"b6,90c24,90"b24"a4"g4
		#v1_2 "f+"f+"f+"a^,80d^re^^f+g4f+6,90g24,90f+24e4,66ded
		#v1_3  f2-12,80d2,85r e2-12,80c^,66rd^^e
		#v1_4  f2-12,80d2,85r e2-12,80c2,80r};

Str TR2In = {};
Str TR2 = {};
Str TR2Out = {};

Str TR3In = {};
Str TR3 = { l12
		[r1]

		[16r1]
		
		[8r1]
		
		[8r1]
		
		[r1]
		q96
		"f+^"f+"g^,80"a^^d^^"a c4"b4"a4"g4
		"f+^"f+"a^,80d^^e^^f+g4f+4e4ded
		f2-12d2r e2-12c^^d^^e
		f2-12d2r e2-12c2r
		q90
		[a^a"b-rd"b-ra^^f : g4e4c4"b4]g4edc4^12r4
		a^a"b-rd"b-ra^^f g4e4c4"b4
		"f+^"f+"a^d^^e^^f+ g4f+4e4"a^"g
		
		"f+4r2^4r1};
Str TR3Out = {};

#v4_1 = {v.N(100,100,100,100,105,105,100,105,105,105,100,100)};
#v4_2 = {v.N(100,100,100,100,105,105,105,110,110,105,100,100,100)};
#v4_3 = {v.N(110,100,100,110,100,100,100,103)};
#v4_4 = {v.N(110,100,100,105,105)};

Str TR4In = {};
Str TR4 = {l12 q90 o6 REV(0)
		[r1]
		[16r1]
		[8r1]
		[8r1]
		[r1]
		[8r1]
		[7r1]  REV(0) v75 g4f+4e4a4
		
		y64(127) v100 REV(40)
		v100 "f+1r1
		#v4_1 "f+"f+"f+"g^,80"a^^d^^"a c4"b6c24"b24"a4"g4
		#v4_2 "f+"f+"f+"a^,80d^^e^^f+ g4f+6g24f+24e4ded
		#v4_3 f2-12Sub{v90r-48"f}v100d2^12 e2-12Sub{v90r-48"e}v100c^^d^^e
		#v4_4 f2-12Sub{v90r-48"f}v100d2^12 e2 c+2
		y64(0)};
Str TR4Out = {};

Str TR5In = {};
Str TR5 = { l1 o5
		[r1]

		[16r1]
		
		[8r1]
		
		[8r1]
		
		[r1]
		
		[8r1]
		
		[8r1]
		
		REV(40) y64(127)
		[Sub{r-48d}Sub{r-24f+}a1]
		
		[Sub{r-48d}Sub{r-24f+}a1 Sub{r-48c}Sub{r-24e}g1]
		Sub{r-48"b-}Sub{r-24d}f1 Sub{r-48c}Sub{r-24e}g1
		Sub{r-48"b-}Sub{r-24d}f1 Sub{r-48c}Sub{r-24e}g2 Sub{r-48c+}Sub{r-24e}a2
		y64(0)};
Str TR5Out = {};

Str TR6In = {};
Str TR6 = {l12 ['"adf+'6'"adf+'[3'"ad'r'"adf+']]

		[
		['"adf+'6'"adf+'[3'"ad'r'"adf+'] 'ceg'6'ceg'[3'"gc'r'ceg']]
		['"b-df'6'"b-df'[3'"f"b-'r'"b-df'] 'ceg'6'ceg'[3'"gc'r'ceg']]
		]
		
		[3'"b-da'6'"b-da'[3'"f"b-'r'"b-da'] 'ceg'6'ceg'[3'"gc'r'ceg']]
		'"adf+'6'"adf+''"ad'r'"adf+' '"b-df'6'"b-df''"f"b-'r'"b-df'
		'"b-eg'6'"b-eg''"b-e'r'"b-eg' 'c+ea'6'c+ea''"ac+'r'c+ea'
		
		['"adf+'6'"adf+'[3'"ad'r'"adf+'] 'ceg'6'ceg'[3'"gc'r'ceg']]
		['"b-df'6'"b-df'[3'"f"b-'r'"b-df'] 'ceg'6'ceg'[3'"gc'r'ceg']]
		
		['"adf+'6'"adf+'[3'"ad'r'"adf+']]
		
		['"adf+'6'"adf+'[3'"ad'r'"adf+'] 'ceg'6'ceg'[3'"gc'r'ceg']]
		['"b-df'6'"b-df'[3'"f"b-'r'"b-df'] 'ceg'6'ceg'[3'"gc'r'ceg']]
		
		
		[3'"b-da'6'"b-da'[3'"f"b-'r'"b-da'] 'ceg'6'ceg'[3'"gc'r'ceg']]
		'"adf+'6'"adf+''"ad'r'"adf+' '"b-df'6'"b-df''"f"b-'r'"b-df'
		'"b-eg'6'"b-eg''"b-e'r'"b-eg' 'c+ea'6'c+ea''"ac+'r'c+ea'};
Str TR6Out = {['"adf+'6'"adf+'[3'"ad'r'"adf+']]

		['"adf+'6'"adf+'[3'"ad'r'"adf+'] 'ceg'6'ceg'[3'"gc'r'ceg']]
		['"b-df'6'"b-df'[3'"f"b-'r'"b-df'] 'ceg'6'ceg'[3'"gc'r'ceg']]};

Str TR7In = {};
Str TR7 = {};
Str TR7Out = {};

Str TR8In = {};
Str TR8 = {l12 o3 [8d^r]
		[[[4d^r][4c^r]][[4"b-^r][4c^r]]]
		
		[4"b-^r][3c^r]"b^r[4"b-^r][4c^r]
		[4"b-^r][4c^r][d^r]["b-^r][e^r]["a^r]
		
		[[4d^r][4c^r]][[4"b-^r][4c^r]]
		
		[8d^r]
		
		[[4d^r][4c^r]][[4"b-^r][4c^r]]
		
		[4"b-^r][3c^r]"b^r[4"b-^r][4c^r]
		[4"b-^r][4c^r][d^r]["b-^r][e^r]["a^r]
		
		d4r2^4r1
		
		};
Str TR8Out = {l12 o3 [8d^r]
		[[4d^r][4c^r]][[4"b-^r][4c^r]]};

Str TR9In = {};
Str TR9 = {};
Str TR9Out = {};

#vK1 = {v.N(60,0,0,54,0,0)};
#vK2 = {v.N(80,0,0,72,0,0)};
#vPH = {v.N(0,0,80,0,0,72)};
#vHH = {v.N(0,0,70,0,0,63)};

Str TR10In = {};
Str TR10 = {Tempo(120) l12 r1 r2 rrv80n46 Sub{v60n35rn35}Sub{v80n39rn39}v60n38rn38
		[
		[3Sub{#vK1[4n35rr]}Sub{#vPH[4rrn44]}v60[rrrn38rr]]
		Sub{#vK1[3n35rr]}Sub{#vPH[rrn44]}v60rrrn38rr Sub{v80rrn35rn35n35}Sub{v.N(0,0,70,0,80,70)rrn46rn46n46}v90rrn53n53rr
		[4Sub{#vK2[4n35rr]}Sub{#vHH[4rrn46]}Sub{v70[rrn28rrr]}Sub{v80[rrrn39rr]}v70[rrrn38rr]]
		]
		
		[8Sub{#vK2[4n35rr]}Sub{#vHH[4rrn46]}Sub{v70[rrn28rrr]}Sub{v80[rrrn39rr]}v70[rrrn38rr]]
		
		[3Sub{#vK1[4n35rr]}Sub{#vPH[4rrn44]}v60[rrrn38rr]]
		Sub{#vK1[3n35rr]}Sub{#vPH[rrn44]}v60rrrn38rr Sub{v80rrn35rn35n35}Sub{v.N(0,0,70,0,80,70)rrn46rn46n46}v90rrn53n53rr
		[4Sub{v80[4n35rr]}Sub{#vHH[4rrn46]}Sub{v80[rrn28rrr]}Sub{v80[rrrn39rr]}v70[rrrn38rr]]
		
		[Sub{#vK2[4n35rr]}Sub{#vHH[4rrn46]}Sub{v70[rrn28rrr]}Sub{v80[rrrn39rr]}v70[rrrn38rr]]
		
		[8Sub{#vK2[4n35rr]}Sub{#vHH[4rrn46]}Sub{v70[rrn28rrr]}Sub{v80[rrrn39rr]}v70[rrrn38rr]]
		
		[8Sub{#vK2[4n35rr]}Sub{#vHH[4rrn46]}Sub{v70[rrn28rrr]}Sub{v80[rrrn39rr]}v70[rrrn38rr]]
		
		Sub{v70n35rrn35rn35r2}Sub{v80n44rrn42rn42r2}v80r4rrn40r2
		Sub{v70n35rrn35rn35r2}Sub{v80rrrn42rn42r2}v80r4rrn40r2
		
		[7Sub{v70n35rrn35rn35r2}Sub{v80n44rrn42rn42r2}v80r4rrn40r2]
		Tempo(100)
		Sub{v70n35rrn35rn35}Sub{v80n46rn42rrn42}v80[rrn40]
		Tempo(70)
		Sub{v70n35rrn35rn35}Sub{v80n46rn42rrn42}v80[rrn40]};
Str TR10Out = {Tempo(120) l12 r1 r2 rrv80n46 Sub{v60n35rn35}Sub{v80n39rn39}v60n38rn38
		[3Sub{#vK1[4n35rr]}Sub{#vPH[4rrn44]}v60[rrrn38rr]]
		Sub{#vK1[3n35rr]}Sub{#vPH[rrn44]}v60rrrn38rr Sub{v80rrn35rn35n35}Sub{v.N(0,0,70,0,80,70)rrn46rn46n46}v90rrn53n53rr
		[4Sub{#vK2[4n35rr]}Sub{#vHH[4rrn46]}Sub{v70[rrn28rrr]}Sub{v80[rrrn39rr]}v70[rrrn38rr]]};

Str TR11In = {};
Str TR11 = {l1 q100 y72(72)
		[r1]

		[16r1]
		
		[8r1]
		
		[8r1]
		
		[r1]
		
		[8r1]
		
		[8r1]
		
		EP(127) 'df+'1^1
		
		['df+''cg']['"b-df':'ceg']'ceg'2 EP.T((127,127,!2),(127,0,!4))'c+ea'2^4};
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,100,100,105,090,100,100,100,100,100,080,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(72) M(8) REV(20) CHO(0) P(48) #Scr(TR1)
TR(2)  CH(2)  Voice(1) M(0) REV(0) CHO(0) P(64) #Scr(TR2)
TR(3)  CH(3)  Voice(49) M(0) REV(20) CHO(0) P(48) #Scr(TR3)
TR(4)  CH(4)  Voice(12) M(0) REV(40) CHO(0) P(96) o6 #Scr(TR4)
TR(5)  CH(5)  Voice(12) M(0) REV(40) CHO(0) P(32) #Scr(TR5)
TR(6)  CH(6)  Voice(25) M(0) REV(0) CHO(0) P(96) #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(36) #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(53) M(0) REV(60) 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);
