//_初期設定

TrackName     = {"Quasar"}//曲名を書き込みます
Copyright     = {"騎士王321"}//作者の名前を書き込みます
MetaText      = {"Progressive House"}//ひとことコーナーです

テンポ 131;
拍子   4,4;//DTMにおいて拍子は気休め以下です。
TimeBase = 96;//四分音符のステップ数の設定です。tの指定とかをする人には重要です。

TrackSync;

Include(gs.h);//XG音源でない人はこれを絶対に書き込んでおきましょう
Include(delay.h);Include(groove.h);Include(unison.h);//これくらいあればだいたい事足ります。
//あとはお好みでギターとかコードとかのインクルードファイルでも
System.MeasureShift(1);ResetGS;

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(3,3,3,3,3,3,3,3,3,3,3,3);//424Hz
//GSScaleTuning(25,25,25,25,25,25,25,25,25,25,25,25);//430Hz
//GSScaleTuning(64,64,64,64,64,64,64,64,64,64,64,64);//440Hz
//GSScaleTuning(74,74,74,74,74,74,74,74,74,74,74,74);//442Hz
GSScaleTuning(80,80,80,80,80,80,80,80,80,80,80,80);//443Hz
//BR(2);においてp%(512);はだいたい442Hz

//知る人ぞ知るTW-Music2のパラメータ設定。リバーブとコーラスを扱います
//ReverbSetting    Time Dpth High
CuePoint={"TwmParam(100,120, 80)"}//リバーブ。各値は上記を参照
//ChorusSetting     Wave Mix Dpth FB Freq Dly Phs
CuePoint={"TwmChorus(  1,127, 32, 80,127,  2, 1)"}
/*
	パワーコーラス　(三番目の値〔Dpth〕を動かすと少しずつ変化します)
	クラブトラック向け。深いリバーブに合う。ディチューンや音の割れ具合がカッコイイ
	基本的に高域が強調された音色に合うのでクラブ方面でなくてもいける。
*/

//Slur(1);//スラーの種類を指定します

//==================================================================================================

//_作曲時に役立つツールたち

//PlayFrom(1:0:0);//途中から演奏するときにつかいます
//Solo();//『,』で複数トラック指定可
//Mute();//『,』で複数トラック指定可

STR KeyP = {KeyFlag-(bead);Key(0);}//各トラックの頭に書き込んでおくと転調するタイプの曲で便利です
STR KEEP = {}//なにもしない
STR RS08 = {r%3072}//8小節休み
STR RS16 = {r%6144}//16小節休み

//==================================================================================================

//_演奏情報

STR PI01 = {[16 r2rrr'"g"acega`c`e'r4]}
TR(1);KeyP;
@81,8,0;
V(80);EP(127);P(64);M(0);p%(0);
REV(90);CHO(0);
o5;l16;q56;v120;t(-3);r1;r2rrr'"g"acega`c`e'r4

PI01 PI01 PI01 PI01 PI01 PI01 PI01 PI01 PI01 PI01 PI01 PI01 PI01 PI01 PI01 PI01 PI01 PI01 PI01 PI01



/*STR ME01 = {[2 g1a1b2`c2b2`e2g1f1b1:`c1]`e1}//カノン的に展開する
TR(15);KeyP;
@83,0,0;
V.W(100,120,!16);EP(127);P(32);M(0);p%(0);
REV(80);CHO(0);
o5;l16;q101;v120;t0;r1^1

RS16 RS16 RS16 RS16 RS16*/



//--------------------------------------------------------------------------------------------------
STR EL01 = {Sub{[16 [2 V.T(50,100,!4,100,50,!4);r2]]}EP(127);
		[2 [3 ""f^^'ga`c`f'rr"f^^""f^^'ga`c`f'"f^^]
		   [1 ""a^^'ga`c`f'rr"a^^""a^^'ga`c`f'"a^^]
		   [4 ""d^^'ga`c`f'rr"d^^""d^^'ga`c`f':"d^^]"c^^]}
STR EL11 = {Sub{[16 [2 V.T(50,100,!4,100,50,!4);r2]]}EP.T(127,0,6144);
		[16 ""f^^'ga`c`f'rr"f^^""f^^'ga`c`f'"f^^]}
STR EL21 = {Sub{[16 [2 V.T(50,100,!4,100,50,!4);r2]]}r-%1536 EP.T(127,80,1536);r%1536
		""f%6144}
STR ER01 = {Sub{[16 [2 V.T(100,50,!4,50,100,!4);r2]]}EP(127);
		[2 [3 ""f^^'ga`c`f'rr"f^^""f^^'ga`c`f'"f^^]
		   [1 ""a^^'ga`c`f'rr"a^^""a^^'ga`c`f'"a^^]
		   [4 ""d^^'ga`c`f'rr"d^^""d^^'ga`c`f':"d^^]"c^^]}
STR ER11 = {Sub{[16 [2 V.T(100,50,!4,50,100,!4);r2]]}EP.T(127,0,6144);
		[16 ""f^^'ga`c`f'rr"f^^""f^^'ga`c`f'"f^^]}
STR ER21 = {Sub{[16 [2 V.T(100,50,!4,50,100,!4);r2]]}r-%1536 EP.T(127,80,1536);r%1536
		""f%6144}
TR(3);KeyP;
@5,24,0;
V(100);EP(127);P(16);M(0);p%(128);
REV(16);CHO(127);
o4;l16;q99;v125;t0;r1^1

RS16 RS16 RS16 EL01 EL01 EL01 EL01 EL11 RS16 RS16 RS16 RS16 RS16 RS16 RS16 RS16 EL01 EL01 EL21 RS16



//--------------------------------------------------------------------------------------------------
TR(4);KeyP;
@5,24,0;
V(100);EP(127);P(112);M(0);p%(-128);
REV(16);CHO(127);
o4;l16;q99;v125;t0;r1^1

RS16 RS16 RS16 ER01 ER01 ER01 ER01 ER11 RS16 RS16 RS16 RS16 RS16 RS16 RS16 RS16 ER01 ER01 ER21 RS16



//--------------------------------------------------------------------------------------------------
STR VV01 = {r'"fcf''"eca'^'"dfg'r^^r%3072}
STR VV99 = {EP(0);r'"fcf''"eca'^'"dfg'r^^r%3072}

TR(2);KeyP;
@60,0,0;
V(127);EP(127);P(64);M(0);p%(-128);
REV(80);CHO(127);
o4;l1;q101;v20;t0;r1^1

RS16 RS16 RS16 RS16 RS16 RS16 RS16 RS16 VV01 VV01 RS16 RS16 RS16 RS16 RS16 VV01 RS16 RS16 RS16 RS16
VV99


//--------------------------------------------------------------------------------------------------
STR XS01 = {q108
		[2 [2 [3 r'"fcga`c`e':r]]/*1bar*/][2 [3 r'"aega`c`e':r]][2 [3 r'"e"bga`c`e'/*この和音、ミスタイプか?*/:r]]
		[2 [3 r'"d"aa`c`e`f':r]][2 [3 r'"d"ab`c-`e`g':r]][2 [3 r'"g-dg-b`d`f':r]][2 [3 r'"g-db-`d`f`b-':r]]
		[2 [2 [3 r'"fcg`c`e`a':r]]][2 [3 r'"aea`c`e`g':r]][2 [3 r'"bfa`e`g``c':r]]
		[2 [3 r'"d"aa`c`e`f':r]][2 [3 r'"d"ab`c`e`g':r]][2 [3 r'"c"gcb`c`f':r]][2 [3 r'"c"gcb`c`e+':r]]/*[2 [3 r'"c"ge+gb`e+':r]]*/}
STR XS11 = {q.T(8,108,6144);
		[2 [2 [3 r'"fcga`c`e':r]]/*1bar*/][2 [3 r'"aega`c`e':r]][2 [3 r'"e"bga`c`e':r]]
		[2 [3 r'"d"aa`c`e`f':r]][2 [3 r'"d"ab`c-`e`g':r]][2 [3 r'"g-dg-b`d`f':r]][2 [3 r'"g-db-`d`f`b-':r]]
		[2 [2 [3 r'"fcg`c`e`a':r]]][2 [3 r'"aea`c`e`g':r]][2 [3 r'"bfa`e`g``c':r]]
		[2 [3 r'"d"aa`c`e`f':r]][2 [3 r'"d"ab`c`e`g':r]][2 [3 r'"c"gcb`c`f':r]][2 [3 r'"c"gcb`c`e+':r]]/*[2 [3 r'"c"ge+gb`e+':r]]*/}
STR XS21 = {[2 [2 [3 r'"fcga`c`e':r]]/*1bar*/][2 [3 r'"aega`c`e':r]][2 [3 r'"e"bga`c`e':r]]
		[2 [3 r'"d"aa`c`e`f':r]][2 [3 r'"d"ab`c-`e`g':r]][2 [3 r'"g-dg-b`d`f':r]][2 [3 r'"g-db-`d`f`b-':r]]
		[2 [2 [3 r'"fcg`c`e`a':r]]][2 [3 r'"aea`c`e`g':r]][2 [3 r'"bfa`e`g``c':r]]
		[2 [3 r'"d"aa`c`e`f':r]][2 [3 r'"d"ab`c`e`g':r]][2 [3 r'"c"gbf`c`g':r]]r1}
STR XS02 = {[16 [2 [3 r'"fcga`c`e':r]]]}
STR XS12 = {q.T(8,108,6144);
		[31 [3 r'"fcga`c`e':r]]r2}
STR XS22 = {EP.T(0,127,6144);[31 [3 r'"fcga`c`e':r]]r2}
STR XS32 = {q8;[16 [2 [3 r'"fcga`c`e':r]]]}
STR XS42 = {q.T(8,108,12288);EP.T(0,100,6144,100,0,6144);
		[2 [16 [2 [3 r'"fcga`c`e':r]]]]}
STR XS03 = {[2 [3 [2 [3 r'"fcga`c`e':r]]][2 [3 r'"aega`c`e':r]][4 [2 [3 r'"d"aga`c`e':r]]]]}
STR XS13 = {[2 [3 [2 [3 r'"fcga`c`e':r]]][2 [3 r'"aega`c`e':r]][4 [2 [3 r'"d"aga`c`e':r]]]]}
TR(5);KeyP;
@39,0,0;
V(60);EP(127);P(64);M(0);p%(0);
REV(40);CHO(120);
o5;l16;q8;v125;t(-1);r1^1

RS16 XS02 XS12 RS16 RS16 RS16 RS16 RS16 XS11 XS01 XS01 XS21 XS01 XS01 XS01 XS21 RS16 RS16 XS42 KEEP



//--------------------------------------------------------------------------------------------------
TR(6);KeyP;
@88,0,0;
V(60);EP(127);P(0);M(0);p%(256);
REV(30);CHO(127);
o4;l16;q38;v125;t0;r1^1
MidiDelay ({
RS16 RS16 XS22 RS16 RS16 RS16 RS16 RS16 RS16 XS11 XS01 XS21 XS01 XS01 XS01 XS21 RS16 RS16 RS16 RS16
},3,!4);


//--------------------------------------------------------------------------------------------------
TR(7);KeyP;
@88,0,0;
V(60);EP(127);P(127);M(0);p%(-256);
REV(30);CHO(127);
o4;l16;q38;v125;t0;r1^1
MidiDelay ({
RS16 RS16 XS22 RS16 RS16 RS16 RS16 RS16 RS16 XS11 XS01 XS21 XS01 XS01 XS01 XS21 RS16 RS16 RS16 RS16
},3,!4);


//--------------------------------------------------------------------------------------------------
STR LB01 = {"f^"aed^"g-^"f^"a1^2"b2d1^1c1^1}
STR LB02 = {"f^"aed^"g-^"f^"a1^2"b2d1^1c1r1}
STR LB12 = {EP.T(0,127,12288);"f^"aed^"g-^"f^"a1^2"b2d1^1c1^1}
STR LB10 = {EP.T(32,127,6144);"f^^^^^^"g"a^^^"f^^"e}
STR LB11 = {"f^^^^^^"g"a^^^"f^^"e}
STR LB91 = {[2 "f^^"a"d1^1^1^2"c2]}
STR LB92 = {EP.T(127,0,6144);"f%6144}
STR LB51 = {}//なんかメロディっぽいことしたい
TR(8);KeyP;
@74,0,0;
V.WR(20,127,!4);EP(127);P(64);M(20);p%(0);
REV(20);CHO(100);
o3;l1;q100;v127;t0;r1^1 r-64

RS16 LB10 LB11 LB91 RS16 LB91 LB91 LB92 RS16 RS16 RS16 RS16 LB12 LB01 LB01 LB01 LB91 LB91 LB92 RS16



//--------------------------------------------------------------------------------------------------
STR SB01 = {Sub{[16 [4 V.T(20,40,!8,40,127,!16);r4]]}
		'"ff'1^1'"aa'1'e`e'1'd`d'1^1'"g-g-'1^1'"ff'1^1'"aa'1^2'"bb'2'd`d'1^1'c`c'1^1}
STR SB02 = {Sub{[16 [4 V.T(20,40,!8,40,127,!16);r4]]}
		[2 [12 '"ff',50]][12 '"aa',50][12 'e`e',50][2 [12 'd`d',50]][2 [12 '"g-g-',50]]
		[2 [12 '"ff',50]][18 '"aa',50][6 '"bb',50][2 [12 'd`d',50]][12 'c`c',50]r1}
STR SB09 = {'"ff'1^1'"aa'1'e`e'1'd`d'1^1'"g-g-'1^1'"ff'1^1'"aa'1^2'"bb'2'd`d'1^1'c`c'1^1}
STR SB80 = {Sub{[16 [4 V.T(20,40,!8,40,127,!16);r4]]}
		EP.T(127,0,768);[2 [12 '"ff',50]][14 r1]EP(127);}
STR SB81 = {Sub{[32 [4 V.T(20,40,!8,40,127,!16);r4]]}
		EP.T(127,0,768);[2 [12 '"ff',50]]EP.T(0,60,12288-768);'"ff'%(12288-768);}
STR SB90 = {Sub{[16 [4 V.T(20,40,!8,40,127,!16);r4]]}EP.T(0,127,6144);
		[2 '"ff'1^1^1'"aa'1'"dd'1^1^1^2'"cc'2]}
STR SB91 = {Sub{[16 [4 V.T(20,40,!8,40,127,!16);r4]]}
		[2 '"ff'1^1^1'"aa'1'"dd'1^1^1^2'"cc'2]}
STR SB92 = {Sub{[16 [4 V.T(20,40,!8,40,127,!16);r4]]}
		'"ff'%(3072-384);'"aa'%384'"ff'%(3072-384);'"bb'%384}
TR(9);KeyP;
@81,1,0;
EP(127);P(64);M(0);p%(512);
REV(8);CHO(120);
o3;l12;q100;v127;t-1;r1^1

RS16 RS16 RS16 SB90 RS16 RS16 SB90 SB92 SB80 RS16 RS16 SB09 SB01 SB01 SB01 SB02 RS16 SB90 SB81 KEEP



//--------------------------------------------------------------------------------------------------
STR BD01 = {[16 [4 '"g+"bc'4]]}
STR BD11 = {[15 [4 '"g+"bc'4]]r1}
STR BD21 = {EP.T(127,0,6144);[16 [4 '"g+"bc'4]]}
STR BD02 = {[15 [4 '"g+"bc'4]]'"g+"bc'4^8[3 '"g+"b'24][2 '"g+"bc'rr]rr}
STR BD12 = {[15 [4 '"g+"bc'4]][2 '"g+"bc'4]r-32'"g+"b'32[4 '"g+"b'16]'"g+"bc'4}
STR BD03 = {EP(127);[15 r1]r4[16 'c'64]r8[8 'c'64]r4}
TR(10);KeyFlag+();Key(0);
@27,7,0;
V(120);EP(127);P(64);BR(12);p%(-500);
REV(2);CHO(8);
o3;l16;q9;v127;t0;r1^1

BD02 BD01 BD11 BD01 RS16 BD02 BD21 RS16 RS16 RS16 RS16 BD03 BD01 BD12 BD11 RS16 BD01 BD12 BD01 BD01



//--------------------------------------------------------------------------------------------------
STR HH01 = {EP(127);
		[4 [7 f+,,100f+16^48g+24,,80]f+,,100g+16f+16
		   [7 f+,,100f+16^48g+24,,80][4 f+16]]}
STR HH02 = {[4 [7 f+,,100f+16^48g+24,,80]f+,,100g+16f+16
		   [7 f+,,100f+16^48g+24,,80][4 f+16]]
		r-1 EP(0);r1 EP(127);}
STR HH03 = {[4 [7 f+,,100f+16^48g+24,,80]f+,,100g+16f+16
		   [7 f+,,100f+16^48g+24,,80][4 f+16]]
		r-1 EP.T(127,32,!1);r1}
TR(11);KeyFlag+();Key(0);
@1,7,0;
V(127);EP(127);P(20);BR(12);p%(-6000);
REV(24);CHO(127);
o3;l8;q11;v127;t.onCycle(!16,-1,5);r1^1

HH01 HH01 HH02 HH01 HH02 HH01 HH01 HH03 RS16 RS16 RS16 HH02 HH01 HH01 HH02 HH02 HH01 HH01 HH01 HH01



//--------------------------------------------------------------------------------------------------
STR CC01 = {Sub{'`c+`a'}r%6144}
STR CC02 = {Sub{r4'`c+`a'4}r%6144}
STR CC11 = {Sub{'`c+`a',,80}r%6144}
TR(12);KeyFlag+();Key(0);
@26,100,0;
V(120);EP(127);P(64);BR(12);p%(2000);
REV(100);CHO(0);
o3;l1;q13;v120;t0;r1^1

CC01 RS16 RS16 CC01 RS16 CC01 CC02 CC11 CC11 RS16 RS16 RS16 CC01 RS16 CC01 CC02 RS16 RS16 CC11 RS16



//--------------------------------------------------------------------------------------------------
STR SD01 = {[16 r4'e'4,,,-3r4'e'4,,,0]}
STR SD11 = {[15 r4'e'4,,,-3r4'e'4,,,0]r1}
STR SD21 = {EP.T(64,0,72,0,16,3000,16,32,1536+768,32,127,1536-1024);/*一小節はやくEPは127になる*/
		d4[12 d32e32,,80][14 [16 d32e32,,80]][12 d32e32,,80]d4}
TR(13);KeyFlag+();Key(0);
@26,100,0;
V.W(100,120,!16);EP(127);P(64);BR(12);p%(-2000);
REV(48);CHO(32);
o3;l16;q15;v120;t0;r1^1

SD01 SD01 SD11 RS16 SD21 SD01 SD01 RS16 RS16 RS16 SD21 SD01 SD01 SD01 SD01 SD11 SD01 SD01 RS16 RS16



//--------------------------------------------------------------------------------------------------
STR SS01 = {p%.T(-8191,8191,6144);EP.T(0,127,6144);[16 [12 c12]]}
TR(14);KeyFlag+();Key(0);
@82,1,0;
V(100);EP(127);P(64);BR(60);p%(0);
REV(60);CHO(120);
o5;l16;q97;v120;t0;r1^1

RS16 RS16 SS01 RS16 SS01 RS16 RS16 RS16 RS16 RS16 SS01 RS16 RS16 RS16 SS01 RS16 RS16 SS01 RS16 RS16



//--------------------------------------------------------------------------------------------------
STR VD01 = {EP.T(80,127,192,127,80,192);
		Sub{MidiDelay({'f`c'},6,!2);}[16 r1]}
TR(15);KeyFlag+();Key(0);
@117,8,0;
V(127);EP(80);P(64);BR(12);p%(0);
REV(120);CHO(60);
o1;l1;q100;v127;t0;r1^1

RS16 RS16 RS16 RS16 VD01 RS16 RS16 RS16 RS16 RS16 RS16 RS16 RS16 RS16 RS16 VD01 RS16 RS16 RS16 RS16



//--------------------------------------------------------------------------------------------------
STR WN01 = {r-1 EP.T(0,0,384,127,0,6144);p%.T(0,8191,!1,8191,-8191,6144);c%(6144+384)}
STR WN02 = {EP.T(0,127,6144);p%.T(-8191,8191,6144);c%6144}
STR WN12 = {EP.T(0,127,6144);p%.T(-8191,8191,6144);c%6144,,127}
TR(16);KeyFlag+();Key(0);
@123,1,0;
V.WR(60,120,!4);EP(127);P(64);BR(24);p%(0);
REV(120);CHO(127);
o6;l1;q100;v120;t0;r1^1

WN01 RS16 WN02 RS16 RS16 RS16 WN12 RS16 RS16 RS16 RS16 RS16 WN01 RS16 WN12 RS16 RS16 RS16 WN01 RS16



//↓仕切り線です。ご自由にお使いください
//==================================================================================================
//--------------------------------------------------------------------------------------------------