TrackName = {"夏の残り香"};
Copyright = {"AMIO"};

/*

*/



Int Repeat = 2;
// 繰り返し回数を設定できます







//-----------------------------variables---------------------------------

Int In = 0;//イントロからメロディースタートまでの時間
Int Ltime = 55;//１ループの時間
Int Out = Ltime*Repeat+In+1;//フェードアウト開始時間
Int Fade = 8;//フェードアウトにかかる時間
Int Tmp = 136;//テンポ
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;

//リズムトラックの拡張です。それぞれの行の『//』を外すことによって有効になります。
//CH(11) SysEx$ = f0,41,10,42,12,{40,1a,15,02},f7;//トラック11
//CH(12) SysEx$ = f0,41,10,42,12,{40,1b,15,02},f7;//トラック12
//CH(13) SysEx$ = f0,41,10,42,12,{40,1c,15,02},f7;//トラック13
//CH(14) SysEx$ = f0,41,10,42,12,{40,1d,15,02},f7;//トラック14

//音の基準の高さを決めるチューニング(0~127)です。どれかひとつを有効にしておきましょう
//GSScaleTuning(40,40,40,40,40,40,40,40,40,40,40,40);//古風な低めのチューニング
GSScaleTuning(64,64,64,64,64,64,64,64,64,64,64,64);//ごく一般的なチューニング
//GSScaleTuning(80,80,80,80,80,80,80,80,80,80,80,80);//YMO風の高めのチューニング

//知る人ぞ知るTW-Music2のパラメータ設定。リバーブとコーラスを扱います
//ReverbSetting    Time Dpth High
CuePoint={"TwmParam(120,120, 60)"}//リバーブ。各値は下記を参照
//ChorusSetting     Wave Mix Dpth FB Freq Dly Phs
CuePoint={"TwmChorus(1,127, 30, 30, 30, 30,  1)"}//コーラス。各値は下記を参照

//----------------------------------strings-----------------------------------

Str TR1In = {};
Str TR1 = {EP(100) l8 [o5 
		[@41 M(5)
		[q60 v110 crrr rc"b-c c+,,115rr"b-,,105 rrrr]
		 v110 crrr rc"b-c c+,,115rrr rrrr
		 @41 M(30) v100
		 q80 "f^"g^"a-^:"b-4 Slur(0,-!32) "b-32&"a-4-32"g^"a-^"b-^] "b-^
		  EP.T((100,105,!4^8),(105,105,!8),(105,90,!2))c^^c+16c16 "b-^^,85r
		 q100
		[3EP.T(100,90,!4)"a-^ EP.T(110,120,!4) a-^,98 EP.N(110,100,100,100) ge-ce- EP.T(90,110,!4^8)f^^EP.T(110,95,!2)e- ^^^r]
		EP.T((95,100,!4),(100,95,!4),(95,100,!4),(100,110,!4))c+^c^
		EP.T((105,100,!4),(100,95,!4),(95,90,!4),(90,95,!4)) c+^e-^ c^"b-^"a-^"b-^]
		
		EP.T((100,110,!4),(95,95,!4),(100,100,!2))e-^"g^"a-^^,80r
		EP.T((105,100,!4),(100,95,!4),(95,90,!4),(90,95,!4)) "a-^"g^"a-^"b-^
		EP.T((100,110,!4),(95,95,!4),(100,100,!4),(100,105,!4))e-^"g^"a-^"b-^
		EP.T(110,64,!1^1)"a-1^1r1^1};
Str TR1Out = {@41 M(5) EP(100)
		[q60 v110 crrr rc"b-c c+rr"b- rrrr]
		 crrr rc"b-c c+rrr rrrr
		 @41 M(30) v100
		 q80 "f^"g^"a-^"b-^ "a-^"g^"a-^"b-^};

Str TR2In = {};
Str TR2 = {};
Str TR2Out = {};

Str TR3In = {};
Str TR3 = {l4 [47r1]
		`cb-a-b- `e-ga-^
		 a-ga-b- `e-ga-^
		 a-1^1};
Str TR3Out = {};

Str TR4In = {};
Str TR4 = {};
Str TR4Out = {};

Str TR5In = {};
Str TR5 = {};
Str TR5Out = {};

Str TR6In = {};
Str TR6 = {};
Str TR6Out = {};

Str TR7In = {};
Str TR7 = {};
Str TR7Out = {};

Str TR8In = {};
Str TR8 = {l8 y67(127)
		[@46 q50 o4 v70
		 [[a-,,100[7'a-`c']c+,,100['c+f']e-,,100[4'e-g']]f,,100[7'fa-']f+,,100[7'f+b-']"b-,,100[7'"b-f']:e-,,100[7'e-g']]e-,,100[3'e-g']d,,100[3'df']
		 @43 o4 q100 v90
		 [3c+^e-^f^g^ a-^b-^b^`c^]
		"b-^c^c+^f^ e-^f^g^e-^
		]
		
		c^g^f^c^ "b-^f^e-^c+^ c^g^f^c^
		@46 q50 o4
		[7'"b-a-']"b-,,100['"b-a-']"b-,,100[4'"b-a-']"b-,,100[7'e-a-']e-,,100'e-a-',,100rr'e-g',,100rrrr
		};
Str TR8Out = {@46 q50 o4 v70
		  [a-,,100[7'a-`c']c+,,100['c+f']e-,,100[4'e-g']]f,,100[7'fa-']f+,,100[7'f+b-']"b-,,100[7'"b-f']e-,,100[7'e-g']};

Str TR9In = {};
Str TR9 = {};
Str TR9Out = {};

Str TR10In = {};
Str TR10 = {};
Str TR10Out = {};

Str TR11In = {};
Str TR11 = {l4 o5 [47r1]
		y64(127)'c+f`c''fb-''"b-e-g''gb-''g`c`e-'2'cfa-'2
		'"b-c+a-''c+g''"b-e-a-''c+b-''g`c`e-'2'cfa-'2
		'"b-c+a-'1'"b-c+a-'4^8'"b-c+a-'2^8 '"b-e-a-'1 y64(0) 'e-a-'8r4'e-g'8r2};
Str TR11Out = {};

Str TR12In = {};
Str TR12 = {};
Str TR12Out = {};

Str TR13In = {};
Str TR13 = {q100 o3 y67(127) M(30) v90 [[16r1]
		 [3c+1"a-1]:"b-1e-1]"b-1e-2c+2c4"c4"f2,75 "b-2e-2c4"c4"f2,75 "b-1^1e-1r1};
Str TR13Out = {};

Str TR14In = {};
Str TR14 = {};
Str TR14Out = {};

Str TR15In = {};
Str TR15 = {l16 o6 [50r1]
		r2^4 b-^a-b- a-1^1^1,100};
Str TR15Out = {};

Str TR16In = {};
Str TR16 = {l16 o6 [50r1]
		r2^4 e-^c+e- c+1^1,100e-1,100};
Str TR16Out = {};

//-----------------------------------Tracks--------------------------------------

/* Track      001,002,003,004,005,006,007,008,009,010,011,012,013,014,015,016 */
Array Vols = (127,080,090,060,100,100,100,072,048,100,100,100,080,054,080,070);//各トラックのメインボリューム
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(41) M(0) REV(20) CHO(0) P(52) #Scr(TR1)
TR(2)  CH(2)  Voice(41) M(0) REV(20) CHO(0) P(88) t32 #Scr(TR1)
TR(3)  CH(3)  Voice(12) M(0) REV(20) CHO(0) P(80) #Scr(TR3)
TR(4)  CH(4)  Voice(12) M(0) REV(20) CHO(0) P(116) t32 #Scr(TR3)
TR(5)  CH(5)  Voice(1) M(0) REV(0) CHO(0) P(64) #Scr(TR5)
TR(6)  CH(6)  Voice(1) M(0) REV(0) CHO(0) P(64) #Scr(TR6)
TR(7)  CH(7)  Voice(1) M(0) REV(0) CHO(0) P(64) #Scr(TR7)
TR(8)  CH(8)  Voice(43) M(0) REV(20) CHO(0) P(72) #Scr(TR8)
TR(9)  CH(9)  Voice(43) M(0) REV(20) CHO(0) P(108) t32 #Scr(TR8)
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(64) #Scr(TR11)
TR(12) CH(12) Voice(1) M(0) REV(0) CHO(0) P(64) #Scr(TR12)
TR(13) CH(13) Voice(44) M(0) REV(30) CHO(0) P(32) #Scr(TR13)
TR(14) CH(14) Voice(44) M(0) REV(0) CHO(0) P(68) t32 #Scr(TR13)
TR(15) CH(15) Voice(75) M(0) REV(0) CHO(0) P(112) #Scr(TR15)
TR(16) CH(16) Voice(69) M(0) REV(0) CHO(0) P(112) #Scr(TR16)

//-------------------------------others----------------------------------

Time(Out:1:0) FadeoutAll(Fade,Vols);
