//----------------------------------------------------------------------------------------------------------------------

INT Type = 1//1ならTWM2用、そのほかならSD-80用設定

TrackName =  {"dancing of crystal moon 〜Generation〜"}
Copyright =  {"球場のピアニスト"} 
MetaText  =  {"へ(へ´∀`)へ ｶｻｶｻ"} 


/*----------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------*/
System.MeasureShift(1);    //音源初期化用に発音を１小節遅らせる
IF(Type =1){ResetGS;TrackSync;}ELSE{SysEx$=f0,41,10,00,48,12,0,0,0,0,0,0,f7; Time(1:1:0); }//音源初期化
//----------------------------------------------------------------------------------------------------------------------
TimeSignature =  4,4      //4/4
Tempo = 100                //テンポ
KeyFlag-(eab) 　　　 　//調の設定 # = +,♭= -
//Key(0)

IF(Type=1){
CuePoint={"TwmParam(64,120,2);"} //TW-MUSIC2を使うとき専用、キューポイントを指定して音色をつくるのじゃ
}ELSE{
//ここからSD-80の設定
//7bit を、4bit ずつ分ける
Function HIGH(I){ Result = (I / 16) & $F }
Function LOW(I){ Result = (I & $F) }

//REVERB TYPE
Int RT_OFF = 0;
Int RT_REVERB = 1;
Int RT_SRV_ROOM = 2;
Int RT_SRV_HALL = 3;
Int RT_SRV_PLATE = 4;
Int RT_GM2_REVERB = 5;
Function SD80ReverbType(V){
SysEx=$F0,$41,(DeviceNumber),0,$48,$12,{$10,00,$04,00,(V)},$F7;
}

Function SD80ReverbTime(V){//0~127
SysEx$=F0,41,10,00,48,12,{10,00,04,07,08,00,(HIGH(V)),(LOW(V))},F7;
}

SD80ReverbType(RT_SRV_PLATE);　//SD-80専用、ここの値を変えてリバーブのタイプを変更できる
//ここまでSD-80の設定
}



CH(11) SysEx$ = f0,41,10,42,12,{40,1a,15,02},f7;
//CH(12) SysEx$ = f0,41,10,42,12,{40,1b,15,02},f7;
//CH(13) SysEx$ = f0,41,10,42,12,{40,1c,15,02},f7;

Str DT={Time(1:1:0)}

TimeKey((84:4:0),1)

Include(delay.h);
Include(unison.h)
//----------------------------------------------------------------------------------------------------------------------
TR(1) @(7) EP(127) v(100) V(127) REV(20) CHO(100) o5 q99 l8 EGAttack(0) FilterResonance(100)
TR(9) @(41) EP(127) v(120) V(127) REV(50) CHO(30) o6 q99 l8 EGAttack(0) FilterResonance(80)
TR(8) @(5) EP(127) v(80) V(127) REV(0) CHO(30) o6 q99 l8 EGAttack(66) FilterResonance(80)
//----------------------------------------------------------------------------------------------------------------------
Str AT1={Time(34:3:0)}
Str AT2={Time(69:1:0)}
Str AT3={Time(10:1:0)}

#1A={[ceg`c>]o6 ["f"acf>]o6["g"bdg>] o6[4f>]  o6[4e>]o6} #1Ax={['c`c''e`e''g`g''`c``c'>]o6 ['"ff''"aa''c`c''f`f'>]o6['"gg''"bb''d`d''g`g'>] o6[4'f`f'>]  o6[4'e`e'>]o6}
#1B={["f"acf>]o6["e"g"be>]o6 TempoChange(100,80,!1) "d"f"ad c^"b^ c^^^ ^^^^o6 Tempo(140)}
#1C={['"ff''"aa''c`c''f`f'>]o6['"ee''"gg''"bb''e"e'>]o6 '"dd''"ff''"aa''d`d' 'c`c'^'"bb'^ 'c`c'^^^ ^^^^o6}
#1E={cegf gabg ^^^^ ^^a16g16f16e16 f^^^ fgfe ^^^^ ^^^c16d16e ^^^e fga^ ^^b16a16 b^e^ `c^^^ ^^^^ ^^^^ ^^^^}
#1F={cdef fgab ^^^^ ^^`c16b16a16g16 a^^^ ab`c`d ^^^^ ^^^ v+5 `c16`d16`e^ ^^`e`d `cb`c^ ^`e^^ `g^`f^ ^^^^ ^^^^ ^^}
#1G={'g,e'^ 'f,d'^ ['e,c''e,c'16'e,c''d,"b'16:'e,c'^^'g,e''f,d']'e,c'^^'c,"a''d,"b''e,c''d,"b'16'"b"g'16^^^^^^^^^^^^^}
#1H={'c,"a'16'd,"b'16'e,c'^^^'e,c''d,"b''e,c''g,e'16'f,d'16^^^^ 'b,g'^^^'a,f'^^^^'g,e''f,d''g,e'^^^^^^^^}
#1I={['e,c,"g''e,c,"g'16'e,c,"g''d,"b,"f'16:'e,c,"g'^^'g,e"b''f,d"a']'e,c"g'^^'c,"a"e''d,"b"f''e,c"g''f,d"a'16'g,e"b'16^^^^^^^^^^^^^^}
#1J={'a,f,c,"a'^^^^^^^'g,e,"b,"g'^^^'b,f,d,"b'^^^'`c,a,e,c'^^^'`e,`c,g,e'^^^
       '`g,`e,b,g'6'`f,`d,a,f'6'`e,`c,g,e'6'`f,`d,a,f'6'`e,`c,g,e'6'`d,b,f,d'6'`e,`c,g,e,'^^^^^^^^^^^^^^^}
#1K={'e,c,"a"e'^^^^^^'f,d,"b"f'16'f,d,"b"f'16'f,d,"b"f'^^^'"b"g"d""b'^^^'g,d,"b"g'^^^
      'a,f,d"a'6'g,d,"b"g'6'f,d"b,"f'6'f,c,"a"f'^^^'e,c,"a"e'^'c"a"f"c''d,"a"f"d'}
#1L={'e,c"a"e'^^^^^'g,e,c"g''f,d"b"f'^^^^'b,f,d"b'^^^'a,f,d"a'^^^^'g,e,c"g''f,d"b"f''g,e"b"g'^^^^^^^^}
#1M={'e,c,"a"e'^^^^^^'f,d,"b"f'16'f,d,"b"f'16'f,d,"b"f'^^^'"b"g"d""b'^^^'g,d,"b"g'^^^
      'g,d,"b"g'6'a,f,d"a'6'b,g,e"b'6'b,g,e,"b'^^^'`c,a,f,c'^^^}
#1N={'b,g,e"b'^^^^^^^'a,f,d"a'^^^'e,c"a"e'^^^'f,c,"a,"f'^^^^^^^^^^^^^^^}
#1O={ e^^^^^^^^^^^^^gf^^^^^^^^^^^^^^ba^^^^^^^^^^^^^gfg^^^^^^^^^^^^^^^^}
#1P={v+10 e^^^^^^^^^^^^^gf^^^^^^^^^^^^^fga^^^^^^^^b^^^^^g^`c^^^^^^^^^^^^^^^}
#1Q={'`c,a,e,c'^^^^^^^'b,g,e"b'^^^^^^^'b,f,d"b'^^^^^^^'`c,g,e,c'^^^^^^^}

#1x={AT3 #1Ax#1C v(115)  AT1  v(127)  #1G#1H#1I#1J AT2 > v(60) #1O v(80) #1P}
#TR1={DT #1x}

#8x={MidiDelay({#1A#1B},3,!6)}
#TR8={DT #8x}
//----------------------------------------------------------------------------------------------------------------------
TR(2) @(41) EP(127) v(110) V(127) REV(100) CHO(30) o6 q99 l8
TR(3) @(51) EP(127) v(120) V(127) REV(100) CHO(30) o6 q99 l8
//----------------------------------------------------------------------------------------------------------------------
Str BT1={Time(19:1:0)}
Str BT2={Time(53:1:0)}
Str BT3={Time(87:1:0)}


#2x={BT1 #1E#1F BT2 #1K#1L#1M#1N BT3 #1K#1L#1M#1Q }
#TR2={DT #2x}
//----------------------------------------------------------------------------------------------------------------------
TR(4) @(50) EP(110) v(40) V(127) REV(70) P(24) CHO(30) o6 q99 l1
TR(5) @(50) EP(110) v(40) V(127) REV(70) P(90) CHO(30) o6 q99 l1
TR(6) @(50) EP(110) v(40) V(127) REV(70) P(100) CHO(30) o6 q99 l1
//----------------------------------------------------------------------------------------------------------------------
Str CPW1={P.W(32,0,!1)}
Str CPW2={P.W(100,127,!1)}

Str CT1={Time(18:1:0)}
Str CT2={Time(35:1:0)}
Str CT3={Time(69:1:0)}

Str CEPT1={EP.T(50,127,!1)}

#4A={e f g f  c e c c}
#4B={e}
#4C={e^ f^ g^ f^ e^ f^ b^ f^}
#4D={e^ d^ e f g^ e^ e^ f g a b}
#4E={e^} 
#4F={e f g f e f g a}
#4G={e^ f^ g^ a^  e^ f^ ga b`c}
#4H={r e} 
#4I={'e"e' 'f"f' 'g"g' 'f"f' 'e"e' 'f"f' 'g"g' 'b"b'}
#4x={CPW1 #4A < EP(127) v+50 #4B CT1 #4B CT2 v-20 #4D v+50 CEPT1 #4E EP(80) o4 [#4F] v-60 o6 #4G CEPT1 v+60 #4H EP(80) o4 [#4I]}
#TR4={DT #4x}

#5A={g a b a  f g 'eg' 'eg'}
#5B={'"e gb'}
#5C={g a b a  f g 'eg' 'eg'}
#5D={g^ a^ b^ 'a`c'^ g^ a^ `e^ 'a`c'^}
#5E={g^ g^ a b b`c g^ g^ a b `c `d}
#5F={'gb'^}
#5G={g^ a^ b^ `c^  g^ a^ b`c `d`e}
#5H={r 'gb'}
#5x={#5A < EP(127) v+50 #5B CT1 #5B CT2 v-20 #5E v+50 CEPT1 #5F EP(80) o6 CT3 v-60 #5G CEPT1 v+60 #5H EP(80)}
#TR5={DT #5x}

#6A={`c `c `d `c  a b b `c}
#6B={`d}
#6C={`c^`d^ `e^`e^ `c^ `d^ `xg^ `e^}
#6D={b^ b^ `c `d `d`e `c^ b^ `c `d `e `f}
#6E={`d^}
#6F={e f g f e f g a}
#6G={`c^ `d^ `e^ `f^  `c^ `d^ `e`f `g`g}
#6H={r `d}
#6I={'e"e' 'f"f' 'g"g' 'f"f' 'e"e' 'f"f' 'g"g' 'b"b'}
#6x={CPW2 #6A < EP(127) v+50 #6B CT1 #6B CT2 v-20 #6D v+50 CEPT1 #6E EP(80) o5 [#6F] o6 v-60 #6G CEPT1 v+60 #6H EP(80) o5 [#6I]}
#TR6={DT #6x}
//----------------------------------------------------------------------------------------------------------------------
TR(7) @(33) EP(127) v(100) V(127) REV(30) CHO(120) P(58) FilterResonance(75) o3 q99 l8
TR(11) @(33) EP(127) v(100) V(127) REV(30) CHO(120) P(56) FilterResonance(75) o3 q99 l8
//----------------------------------------------------------------------------------------------------------------------

Str DT1={Time(87:1:0)}


#7A={c^^^ ^^^^ f^^^ ^^e^ d^^^ ^^^^ c+^^^ ^^c^ "f^^^ ^^^^ "g^^^ ^^"a+^ "b^^^ ^^^^ c^^^ ^^^^} 
#7B={c^^^ c+^d^}
#7C={l16 g^^e ^^g^ ^^g^ `c^g^ a^^f ^^a^ ^^a^ `c^a^ b^^g ^^b^ ^^b^ `d^b^ [`c^^a ^^f^]
     f^^c ^^f^ ^^f^ a^f^ g^^e ^^g^ ^^g^ b^g^ [b^^g ^^fc] [ ceg`c >] [< `cgec] >}
#7D={e^^"b ^^d^ rdrd g^e^}
#7E={[[e^^g ^^e^ rcrc "g^c^] [f^^a ^^f^ rdrd "a^f^] [b^^g ^^e^ r"br"b "g^"b^] : [a^^^ ffre ^c^c e^c^  ]] a^^^ ffre ^c^c e^c^ < [fa`c`e :>] [`e`caf :<]}
#7F={[e^^g ^^e^ r"br"b "g^"b^] [d^^g ^^d^ r"br"b "g^"b^] e^^a ^^e^ rcrc "a^c^ f^^b ^^f^ rdrd "b^d^ `d^^^ bbrf ^d^d f^d^ o2 [g`c`e`g :>][`g`e`cg:<] >}
#7G={[e^^g ^^e^ rcrc "g^c^] [e^^g ^^e^ r"br"b "g^"b^] f^^a ^^f^ rcrc "a^c^ g^^b ^^g^ rdrd "b^d^ e^^a ^^e^ rcrc "a^c^ f^^^ ddr"b ^d^"b d^f^ <}
#7H={e^^e ^^e^ g^^g ^^g^ b^^b ^^b^ `d12`d12`d12 `d12`d12`d12}
#7I={e^^g ^^`c^ rere g^`c^ f^^a ^^`d^ rfrf a^`d^ `d^^b ^^g^ ^d^^ g^b^ f^^a ^^c^ rfrf a^c^ e^^g ^^b^ rere g^b^ f^^a ^^c^ f^^a ^^`c^ g^^b ^^`e^ rgrg b^e^ egb`d `dbge [egb`d >] o3 }
#7J={e^^g ^^`c^ rere g^`c^ f^^a ^^`d^ rfrf a^`d^ `d^^b ^^g^ ^d^^ g^b^ f^^a ^^c^ rfrf a^c^ e^^g ^^b^ rere g^b^ f^^a ^^c^ f^^a ^^`c^ g^^b ^^`e^ rgrg b^e^ < [egb`d >]< egb`d `dbge o3 }
#7x={#7A v+15 #7B v+10 < #7C #7D v-17 #7E > #7F#7G #7H o3 #7I #7J DT1 #7I #7J}
#TR7={DT #7x}


//----------------------------------------------------------------------------------------------------------------------
TR(15) @(82) EP(127) v(127) V(127) REV(30) CHO(60) P(30) EGAttack(0) VibratoDepth(40) FilterCutoff(127) FilterResonance(127) o6 q149 l16
//----------------------------------------------------------------------------------------------------------------------


Str SP1={p.T(64,0,!1^1^1^1,0,127,!1^1^1^1)}


#15A={SEPT3 SPN2 [16 `cc] } 
#15B={[eg`ce g`ceg] [fa`df a`dfa] [gb`dg b`dgb] [fa`cf a`cfa] [egbe gbeg] [fa`cf a`cfa] [gb`egb`egb] [4 egb`d]}
#15C={[eg`ce g`ceg] [fa`df a`dfa] [gb`dg b`dgb] [fa`cf a`cfa] [egbe gbeg] [fa`cf a`cfa] [gb`egb`egb] [`dbge][egb`d >] o5}
#15x={ST2 #15A ST4 v-40 #16C ST5 P(32) o5 SV2 #15B #15C ST6 #15B #15C}
#TR15={DT #15x}
//----------------------------------------------------------------------------------------------------------------------
TR(16) @(82) EP(70) v(50) V(127) REV(30) CHO(80) P(102) EGAttack(0) VibratoDepth(0) FilterCutoff(64) FilterResonance(64) o5 q149 l16
//----------------------------------------------------------------------------------------------------------------------
Str ST1={Time(10:1:0)}
Str ST2={Time(33:1:0)}
Str ST3={Time(26:1:0)}
Str ST4={Time(51:1:0)}
Str ST5={Time(53:1:0)}
Str ST6={Time(87:1:0)}

Str SV1={v.N(70,50)}
Str SV2={v.N(50,20)}

Str SEPT1={EP.T(110,127,!2,127,110,!2)}
Str SEPT2={EP.T(80,127,!1)}
Str SEPT3={EP.T(0,127,!1^1)}
Str SEPT4={EP.T(127,0,!1^1)}

Str SPN1={P.N(96,0,127,0,32,112,16)}
Str SPN2={P.N(127,0)}

#16A={SEPT1 SPN1 [`cge`cge`ce] SEPT1 [`cfa`cfa`ca] SEPT1 [bgd bgd bd] SEPT1 [`caf`caf`cf] 
      SEPT1 [afc afc ac] SEPT1 [bge bge be] SEPT1 [bgfc < bgfc >] SEPT2 [4 ceg`c >]} 
#16B={p.T(0,64,!16) b^^a ^^g^ ^f^^ e^d^ SEPT4 c^^^ ^^^^ ^^^^ ^^^^ }
#16C={bgeb gebe `caf`c af`cf `dbg`d bg`dg  [2 egb`d >]}
#16D={e^^g ^^`c^ ^`e^^ `c^g^ f^^a ^^`d^ ^`f^^ `d^a^ g^^b ^^`d^ ^`g^^ `d^b^ f^^a ^^`c^ ^`f^^ `c^a^ 
      e^^g ^^b^ ^`e^^ b^g^ f^^a ^^`c^ ^`f^^ `c^a^ g^^b ^^`e^ ^`g^^ `e^b^ e^^g ^^b^ ^`d^^ egb`d}
#16x={ST1 SV1 #16A o6 ST3 v(100) #16B ST4 EP(127) v+20 #16C P(96) o4 v(40) [#16D] ST6 [#16D]}
#TR16={DT #16x}
//----------------------------------------------------------------------------------------------------------------------
TR(10) @(1) EP(127) v(120) V(127) REV(100) CHO(80) P(70) q99 l8
TR(20) CH(10) v(127) q99 l16
TR(21) CH(10) v(127) q99 l16
TR(22) CH(10) v(127) q99 l16
//----------------------------------------------------------------------------------------------------------------------
Str TD1={Time(9:1:0)}
Str TD2={Time(10:1:0)}
Str TD3={Time(52:1:0)}
Str TD4={Time(86:1:0)}
Str TD5={Time(87:1:0)}

$a{n35} $b{n36}

#D1={ [3[3 arar]  arab]  [3 arar] l16 [abrb] l8}
#D2={l16 arbr arba rarb arbr l8}
#D3={l16 [4 arrb rrar] l8 }
#Dx={TD2 #D1#D2[#D1] [#D1] #D3  [#D1] TD4 #D2 [#D1]}
#TR10={DT Rhythm{#Dx}}

$c{n38} $d{n40}

#DA1={rrrr rrrr l12 ddd ddd l16}
#DA2={[ [3 rrrr drrc rdrd drrr]  rrrr drrc rdrd drcd ]}
#DA3={ [drrr] dcrd drcd}
#DA4={[4 [3 rrrr drrr ] : rrrr drrd] drrd drrd}
#DA5={[3 rrrr drrr ] l12 ddd ddd l16}
#DAx={TD1 #DA1#DA2#DA3 [#DA4] [#DA4] #DA5 [#DA4] TD4 #DA3 [#DA4]}
#TR20={DT Rhythm{#DAx}}

$e{n42} $f{n44} $g{n46}

#DB1={[2 [15 feg^] fege]}
#DB2={fegf [3 gfge]}
#DB3={[3 fgge gfeg] gfeg gfeg}
#DBx={TD2 #DB1#DB2 [#DB1] [#DB1] #DB3 [#DB1] TD5 [#DB1]}
#TR21={DT Rhythm{#DBx}}

$h{n50} $i{n48} $j{n45} $k{n43}

#DC1={hhri irjj rrrr rrrr}
#DC2={rrrr rrkk l12 hhi jjk l16}
#DCx={TD1 #DC1 TD3 v126 #DC2 TD4 #DC2}
#TR22={DT Rhythm{#DCx}}
//----------------------------------------------------------------------------------------------------------------------
TR(1) |#TR1| TR(8) |#TR8| // TR(9) |#TR1|

TR(2) |#TR2| TR(3) |#TR2|

TR(4) |#TR4| TR(5) |#TR5| TR(6) |#TR6|

TR(7) |#TR7|

TR(15) |#TR15|

TR(16) |#TR16|

UseKeyShift(off)//キーを変えるとドラムの指定までずれるのでこれで防ぐ

TR(10) |#TR10| TR(20) |#TR20| TR(21) |#TR21| TR(22) |#TR22|
