//_初期設定

TrackName     = {"Tokyo Water Front original"}//曲名を書き込みます
Copyright     = {"騎士王321"}//作者の名前を書き込みます
MetaText      = {"2013年も25%くらい終わってしまいました。早いです。。。"}//ひとことコーナーです

テンポ 144;
拍子   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( 64,124, 60)"}//リバーブ。各値は上記を参照
//ChorusSetting     Wave Mix Dpth FB Freq Dly Phs
//CuePoint={"TwmChorus(  1,127, 32, 80,127,  2, 1)"}
/*
	パワーコーラス　(三番目の値〔Dpth〕を動かすと少しずつ変化します)
	クラブトラック向け。深いリバーブに合う。ディチューンや音の割れ具合がカッコイイ
	基本的に高域が強調された音色に合うのでクラブ方面でなくてもいける。
*/
CuePoint={"TwmChorus(  0,127, 16, 88,127, 48, 1)"}
/*
	ポリコーラス
	パワーコーラスが原音を強化するタイプに対し、こちらはディチューンを強くかける。
	最大までかけると@39とかが別の音色みたいになる。ほんと、パワーコーラスといい勝負。
*/
//CuePoint={"TwmChorus(  0,127, 16, 25, 32, 40, 1)"}
/*
	ジャズコーラス(アンプの名前ではない)
	エレガントなコーラス
	あんまりこだわりのないときにコンプレッサと一緒にちょっと通すと音がまとまるくん
	V.W(100,120,!8);//みたいにアタックの強い音は出だしの音を小さくする//Compresser
*/
//CuePoint={"TwmChorus(  1,127,  0, 64,  8, 64, 1)"}
/*
	ピアノ用コーラス　(三番目の値〔Dpth〕は0固定)
	名前そのまま。ピアノソロの曲とかにどうぞ。少しは「らしく」なります。
	ほかのトラックに使ってもあんまり意味のない特化型コーラス
*/
//CuePoint={"TwmChorus(  1,127, 30, 60,  1, 50, 0)"}
/*
	高い天井コーラス　(故　梅本先生の作品『高い天井』で使われていた設定です)
	ロングトーンやハイハットの音色とかに良く効く設定です。
	以下、本人によるメモです。
	ゆらぎの周期を最も遅くし、フランジャー設定
	ディレイを長めにとって、擬似ステレオに
*/
//CuePoint={"TwmChorus(  1,127, 40, 16, 16, 24, 1)"}
/*
	ステレオ&エンハンサー
	微妙にリバーブがかかったみたいにこもって聞こえる。
	低音はかなり高域強調。音色によっては和音で音割れ(というか音域をつぶしあうことも)
*/
//CuePoint={"TwmChorus(  1,127,120, 64, 88,120, 1)"}
/*
	メジャーキーコーラス(不思議ちゃん)
	なぜか和音が出来ちゃう!!　(正確にはトレモロ)
	面白トラックを作るときとか。そういうときは真面目なトラックはコーラスなしで我慢(ディチューンがあるよ)
	p%(250);//複数トラックを使い、それぞれのトラックのピッチベンドを微妙にずらすこと//Detune
*/

//Slur(1);//スラーの種類を指定します

//==================================================================================================

//_作曲時に役立つツールたち

//PlayFrom(1:0:0);//途中から演奏するときにつかいます
//Solo();//『,』で複数トラック指定可
//Mute();//『,』で複数トラック指定可

STR KeyP = {KeyFlag+(fcgdae);Key(0);}//各トラックの頭に書き込んでおくと転調するタイプの曲で便利です
STR KEEP = {}//なにもしない
STR RS08 = {r%3072}//8小節休み
STR RS16 = {r%6144}//16小節休み

//通常トラック用
/*
TR(1);KeyP;
@1,0,0;
V(120);EP(127);P(64);M(0);p%(0);
REV(0);CHO(0);
o5;l4;q99;v120;t0;r1//予動。プレカウントとも
*/

//リズムトラック用
/*
TR(10);KeyFlag+();Key(0);//ドラムトラックはいつでも同じキーにしておきましょう
@1,0,0;
V(120);EP(127);P(64);BR(12);p%(0);
REV(0);CHO(0);
o3;l16;q9;v120;t0;r1//予動はとりあえず1小節にしてます。4拍子が多いから
*/

//↓仕切り線です。ご自由にお使いください
//==================================================================================================
//--------------------------------------------------------------------------------------------------

/*演奏情報
TR1	Lead
TR2	Seaq
TR3	Synth(ステレオ:左側)
TR4	Synth(ステレオ:右側)
TR5	Pad(ステレオ:左側)
TR6	Pad(ステレオ:右側)
TR7	Bass1
TR8	Bass2
TR9	Bass3
TR10	BassD
TR11	Clap
TR12	HiHat
TR13	Cymbal
TR14	BassD
TR15	OrchHit
TR16	ReverseCymbal(WhiteNoise)
--------------------------------------------------------------------------------------------------*/
STR LE01 = {rrraab^`c^^^aab^`c^^^`e^^`f^^&`c^^`c^ba16b16a^^ff^^^^^^^a^f^e^^f^^g^g^^a^^b^
		a^^^b^^^`c^^aab^`c^^^`e^^`f^^^^^`f^`g^`a^^`d`d^^^^^^^`a^`e^`f^^^`g^^^`g^^^`b^^^}
STR LE02 = {`c^^aab^`c^^^aab^`c^^^`e^^`f^^&`c^^`c^ba16b16a^^ff^^^^^^^a^f^e^^f^^g^g^^a^^b^
		a^^^b^^^`c^^aab^`c^^^`e^^`f^^^^^`f^`g^`a^^`d`d^^^^^^^`a^`e^`f^^^`g^^^`g^^^`b^^^
		Sub{EP.T(127,127,!1,127,0,!1);M.T(0,100,!1^1);`a1^1^1^1}}
STR LE81 = {Key(-3);
		`c^^aab^`c^^^aab^`c^^^`e^^`f^^&`c^^`c^ba16b16a^^ff^^^^^^^a^f^e^^f^^g^g^^a^^b^
		a^^^b^^^`c^^aab^`c^^^`e^^`f^^^^^`f^`g^`a^^`d`d^^^^^^^`a^`e^`f^^^`g^^^`g^^^`b^^^
		Key(0);}
TR(1);KeyP;
@63,0,0;
V(110);EP(127);P(64);M.WR(0,0,!2,0,40,!2);p%(0);BR(12)
REV(100);CHO(40);Key(-12);
o5;l8;q99;v120;t0;r1
RS16 RS16 RS16 RS16 RS16 RS16 LE01 LE81 LE01 LE02 RS16 RS16 RS16 RS16
//--------------------------------------------------------------------------------------------------
STR SQ01 = {MidiDelay({[16 cfgcrrfgcrfgrccf]},3,!4);}
STR SQ02 = {Sub{[8 r1]EP.T(127,0,3072);[7 r1] V.T(60,30,!1);}
		MidiDelay({[16 cfgcrrfgcrfgrccf]},3,!4);}
STR SQ90 = {V.T(30,60,3072,60,40,6144,40,60,3072);
		Sub{[15 EP.T(0,64,!1,64,0,!4,0,127,!2,127,0,!4);r1^1]EP.T(0,127,!1^1);}
		MidiDelay({[32 cfgcrrfgcrfgrccf]},3,!4);}
TR(2);KeyP;
@82,110,4;
V(60);EP(127);P(64);M(0);p%(0);
REV(90);CHO(50);
o6;l16;q39;v120;t.onCycle(!16,0,4);r1
SQ90 KEEP SQ01 SQ01 SQ01 SQ02 SQ90 KEEP SQ01 SQ01 SQ01 SQ01 SQ01 SQ02
//--------------------------------------------------------------------------------------------------
STR XS01 = {'"fcfa`c'^'"cceg`c'^'"d"adf`c'^'""bdfb`d''"cceg`c'
		'"fcfa`c'^'"aceg`c'^'"bdfb`d'^'"d-d-a-`c`f''"e-e-gb`e-'}
STR XS02 = {EP.T(100,20,6144);
		'"fcfa`c'^'"cceg`c'^'"d"adf`c'^'""bdfb`d''"cceg`c'
		'"fcfa`c'^'"aceg`c'^'"bdfb`d'^'"d-d-a-`c`f''"e-e-gb`e-'}
STR XS50 = {EP.T(100,20,6144);
		[2 [4 '"fcfa`c'1^2:'"e-"a-ca-`e-'4'"f"bdb`f'4]'"a-cg-`c`e-'4'"bdfa-`d'4]}
STR XS51 = {[2 [4 '"fcfa`c'1^2:'"e-"a-ca-`e-'4'"f"bdb`f'4]'"a-cg-`c`e-'4'"bdfa-`d'4]}
STR XS81 = {Key(-3);EP.T(20,100,6144-384);
		'"fcfa`c'^'"cceg`c'^'"d"adf`c'^'""bdfb`d''"cceg`c'
		'"fcfa`c'^'"aceg`c'^'"bdfb`d'^'"d-d-a-`c`f''"e-e-gb`e-'
		Key(0);}
TR(3);KeyP;
@82,90,1;
V.WR(30,0,!16,60,0,!16,120,0,!16,60,0,!16,30,0,!16,120,0,!16,60,0,!16,120,0,!16);
EP(100);P(32);M(0);p%(256);
REV(70);CHO(120);
o5;l1;q100;v125;t0;r1 r%1
RS16 RS16 XS51 XS51 XS51 XS50 XS01 XS81 XS01 XS01 XS01 XS01 XS50 XS51
//--------------------------------------------------------------------------------------------------
TR(4);KeyP;
@82,90,1;
V.WR(30,0,!16,60,0,!16,120,0,!16,60,0,!16,30,0,!16,120,0,!16,60,0,!16,120,0,!16);
EP(100);P(96);M(0);p%(-256);
REV(70);CHO(120);
o5;l1;q100;v125;t0;r1
RS16 RS16 XS51 XS51 XS51 XS50 XS01 XS81 XS01 XS01 XS01 XS01 XS50 XS51
//--------------------------------------------------------------------------------------------------
STR PD01 = {'"fca`c`f'1^1'"ceg`c`e'1^1'"dcfa`c'1^1'""bdfa`d'1'"ceg`c`e'1
		'"fca`c`f'1^1'"aeg`c`e'1^1'"bfb`d`f'1^1'"d-d-a-`c`f'1'"e-e-gb`e-'1}
STR PD50 = {EP.T(16,64,3072,64,127,6144+3072);'"fcfa`c'%12288}
STR PD51 = {[8 '"fca`c`f'1^2'"a-e-a-`c`e-'4'"bfa-b`d'4]}
STR PD81 = {Key(-3);
		'"fca`c`f'1^1'"ceg`c`e'1^1'"dcfa`c'1^1'""bdfa`d'1'"ceg`c`e'1
		'"fca`c`f'1^1'"aeg`c`e'1^1'"bfb`d`f'1^1'"d-d-a-`c`f'1'"e-e-gb`e-'1
		Key(0);}
TR(5);KeyP;
@96,0,0;
V.WR(40,50,!4);EP(127);P(0);M(10);p%(256);
REV(80);CHO(30);
o4;l4;q99;v120;t0;r1 r-%1
PD50 KEEP PD51 PD51 PD51 PD51 PD01 PD81 PD01 PD01 PD01 PD01 PD51 PD51
//--------------------------------------------------------------------------------------------------
TR(6);KeyP;
@96,0,0;
V.WR(30,60,!4);EP(127);P(127);M(10);p%(0);
REV(80);CHO(30);
o4;l1;q99;v120;t0;r1
PD50 KEEP PD51 PD51 PD51 PD51 PD01 PD81 PD01 PD01 PD01 PD01 PD51 PD51
//--------------------------------------------------------------------------------------------------
STR BA01 = {f1^1c1^2^4c+4d1^1"b1c1f1^1"a1^1"b1^1d-1e-1}
STR BA02 = {EP.T(32,127,6144);
		f1^1c1^2^4c+4d1^1"b1c1f1^1"a1^1"b1^1d-1e-1}
STR BA51 = {[8 "f1^2"a-4"b4]}
STR BA52 = {EP.T(127,32,6144);
		[8 "f1^2"a-4"b4]}
STR BA81 = {Key(-3);
		f1^1c1^2^4c+4d1^1"b1c1f1^1"a1^1"b1^1d-1
		Key(0);c}
TR(7);KeyP;
@88,0,0;
V.WR(20,120,!4);EP(127);P(64);M(0);p%(0);
REV(20);CHO(40);
o3;l1;q99;v120;t0;r1
RS16 RS16 BA51 BA51 BA51 BA52 BA02 BA81 BA01 BA01 BA01 BA01 BA51 BA51
//--------------------------------------------------------------------------------------------------
STR BS01 = {[3  "ffffffe-f]"fa-a-a-"bbbb|[3 c`c`c`c`c"cc`c]c`c`c`cc+`c+`c+`c+
		[3 d`d`d`d`d`d`c`d]"dfff"aaaa|[2 "bbbbb"bbb][2 c`c`c`c`cc`c`c]
		[3  "ffffffe-f]"fa-a-a-"bbbb|[4 "aaaaaaga]
		[4 "bbbbb"bbb]|[2 d-`d-`d-`d-`d-d-`d-`d-][2 e-`e-`e-`e-`e-"e-e-:`e-]"e-}
STR BS50 = {EP.T(16,32,6144,32,127,6144);
		[2 [7 [3  "ffffffe-f]"fa-a-a-"bbbb][3  "ffffffe-f]"fa-ra-"bb^r]}
STR BS51 = {[8 [3  "ffffffe-f]"fa-a-a-"bbbb]}
STR BS52 = {EP.T(127,16,6144);[8 [3  "ffffffe-f]"fa-a-a-"bbbb]}
STR BS81 = {EP.T(16,127,6144);Key(-3);
		[3  "ffffffe-f]"fa-a-a-"bbbb|[3 c`c`c`c`c"cc`c]c`c`c`cc+`c+`c+`c+
		[3 d`d`d`d`d`d`c`d]"dfff"aaaa|[2 "bbbbb"bbb][2 c`c`c`c`cc`c`c]
		[3  "ffffffe-f]"fa-a-a-"bbbb|[4 "aaaaaaga]
		[4 "bbbbb"bbb]|[2 d-`d-`d-`d-`d-d-`d-`d-][2 e-`e-`e-`e-`e-"e-:e-`e-]
		Key(0);c"c}
TR(8);KeyP;
@37,110,0;
V(90);EP(127);P.N(56,72);M(0);p%(0);
REV(30);CHO(80);
o3;l16;q49;v120;t.onCycle(!16,-1,2);r1
BS50 KEEP BS51 BS51 BS51 BS52 RS16 BS81 BS01 BS01 BS01 BS01 BS51 BS51
//--------------------------------------------------------------------------------------------------
STR BB01 = {MidiDelay({"f4r1^1^1^2^8`c`dr1^2^4^8"b4r2^8b`cr2^4^8
				"f4r1^2^8gar1^2^4^8"b4r1^2^8`d-`e-r2^4`e-`fr2^4^8},4,!4);}
STR BB51 = {MidiDelay({[4 "f4r1^2^8a-br1^2^4^8]},4,!4);}
STR BB81 = {Key(-3);
		MidiDelay({"f4r1^1^1^2^8`c`dr1^2^4^8"b4r2^8b`cr2^4^8
				"f4r1^2^8gar1^2^4^8"b4r1^2^8`d-`e-r2^4`e-`fr2^4^8},4,!4);
		Key(0);}
TR(9);KeyP;
@39,8,0;
V(90);EP(127);P(64);M(0);p%(0);
REV(60);CHO(100);
o3;l8;q99;v120;t0;r1
RS16 RS16 RS16 BB51 BB51 BB51 BB01 BB81 BB01 BB01 BB01 BB01 RS16 RS16
//--------------------------------------------------------------------------------------------------
STR OH01 = {[15 r1]r v30[15 c v+6]Sub{f}}
TR(15);KeyP;
@56,0,0;
V(120);EP(127);P(64);M(0);p%(0);
REV(100);CHO(80);
o8;l16;q99;v120;t0;r1
RS16 OH01 RS16 RS16 OH01 RS16 RS16 OH01 RS16 RS16 RS16 OH01 RS16 OH01
//--------------------------------------------------------------------------------------------------
STR WN00 = {EP.T(0,0,!2,127,0,6144);p%.T(0,8191,!2,8191,-8191,6144);'c`c'%6144 r2}
STR WN01 = {EP.T(0,127,6144);p%.T(-8191,8191,6144);'c`c'%6144}
STR WN02 = {EP.T(0,127,6144,127,0,6144);p%.T(-8191,8191,6144,8191,-8191,6144);'c`c'%12288}
TR(16);KeyP;
@127,0,0;
V.WR(40,80,!4);EP(127);P(64);BR(12);p%(0);
REV(120);CHO(100);
o5;l4;q100;v100;t0;r2
WN00 WN01 RS16 RS16 WN02 KEEP RS16 WN02 KEEP RS16 RS16 RS16 RS16 WN02 KEEP RS08 d1
//--------------------------------------------------------------------------------------------------
STR BD01 = {[16 [4 '"g+c'4]]}
STR BD02 = {[15 [4 '"g+c'4]]'"g+c'1}
STR BD03 = {[8 [4 "g+4]][8 [4 '"g+c'4]]}
STR BD04 = {[15 [4 '"g+'4]]'"g+'4^8[2 '"g+c'16][4 '"g+c'8]}
STR BD05 = {EP.T(127,0,6144);[16 [4 '"g+c'4]]}
STR BD06 = {[15 [4 '"g+c'4]]'"g+c'4^8[2 '"g+c'16][3 '"g+c'8:r16]}
STR BD51 = {Sub{'"g+c'}r%6144}
TR(10);KeyFlag+();Key(0);
@25,90,1;
V.W(127,127,!16,0,0,!16);EP(127);P(64);BR(12);p%(2000);
REV(1);CHO(8);
o3;l16;q9;v125;t0;r1 r%1
BD01 BD02 BD01 BD03 BD01 BD51 RS16 BD04 BD01 BD01 BD06 BD01 BD02 BD01
//--------------------------------------------------------------------------------------------------
STR BQ01 = {[16 [4 '"b']]}
STR BQ02 = {[15 [4 '"b'4]]'"b'1}
STR BQ03 = {[7 r1]r2[4 '"b'8][8 [4 '"b'4]]}
STR BQ04 = {[15 [4 '"b'4]]'"b'4^8[2 '"b'16][4 '"b'8]}
STR BQ05 = {EP.T(127,0,6144);[16 [4 '"b'4]]}
STR BQ06 = {[15 [4 '"b'4]]'"b'4^8[2 '"b'16][3 '"b'8:r16]}
STR BQ51 = {Sub{'"b'}r%6144}
TR(14);KeyFlag+();Key(0);
@27,7,0;
V(100);EP(127);P(64);BR(12);p%(-6000);
REV(0);CHO(0);
o3;l4;q20;v125;t0;r1
BQ01 BQ02 BQ01 BQ03 BQ01 BQ51 BQ01 BQ04 BQ01 BQ01 BQ06 BQ01 BQ02 BQ01
//--------------------------------------------------------------------------------------------------
STR CP00 = {[8 r1]EP.T(0,127,3072);[8 [2 r4d+4]]}
STR CP01 = {[16 [2 r4d+4]]}
STR CP02 = {EP.T(127,0,6144);[16 [2 r4d+4]]}
TR(11);KeyFlag+();Key(0);
@25,90,1;
V(120);EP(127);P(64);BR(12);p%(2000);
REV(127);CHO(80);
o3;l16;q9;v127;t0;r1
RS16 RS16 RS16 CP00 CP01 CP02 RS16 CP00 CP01 CP01 CP01 CP01 CP01 CP01
//--------------------------------------------------------------------------------------------------
STR HH01 = {[8 [4 f+g+,,60a+g+,,60f+g+f+g+]]}
STR HH02 = {EP.T(64,127,6144);p%.T(-6000,6000,6144);
		[8 [4 f+g+,,60a+g+,,60f+g+f+g+]]}
STR HH03 = {EP.T(127,64,6144);p%.T(6000,-6000,6144);
		[8 [4 f+g+,,60a+g+,,60f+g+f+g+]]}
TR(12);KeyFlag+();Key(0);
@26,100,0;
V(120);EP(127);P(32);BR(12);p%(6000);
REV(40);CHO(120);
o3;l16;q9;v120;t.onCycle(!16,0,6);r1
HH01 HH01 HH01 HH01 HH01 HH03 RS16 HH02 HH01 HH01 HH01 HH01 HH01 HH01
//--------------------------------------------------------------------------------------------------
STR CC01 = {MidiDelay({[2 '`c+`a'1[7 r1]]},5,!4);}
STR CC02 = {MidiDelay({'`c+`a'1[15 r1]},5,!4);}
STR CC03 = {r-4 EP.T(0,127,!4);`c+4
		r%6144}
TR(13);KeyFlag+();Key(0);
@25,0,0;
V(100);EP(127);P(64);BR(12);p%(3000);
REV(127);CHO(100);
o3;l16;q9;v120;t0;r1
CC01 RS16 CC01 CC02 RS16 CC02 CC03 CC01 CC02 RS16 RS16 RS16 CC01 RS16
//==================================================================================================
