//----------------------------------------------------------------------------------------------------------------------

INT Type = 1;//1ならTWM2用、そのほかならSD-80用設定

TrackName =  {"Dancing of crystalmoon"}
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) 　　　 　//調の設定 # = +,♭= -


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(unison.h)
Include(delay.h)
//----------------------------------------------------------------------------------------------------------------------
TR(1) @(1) EP(120) v(100) REV(100) CHO(30) o6 q99 l8
//----------------------------------------------------------------------------------------------------------------------

#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 V(127) TempoChange(100,80,!1^1) "d"f"ad c^"b^ c^^^ ^^^^o6}
#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^ ^^^^ ^^^^ ^^'g,e'^ 'f,d'^}
#1G={['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^^^^EP(123)'b,g'^^^EP(117)'a,f'^^^^'g,e''f,d''g,e'^^^^^^^^}
#1I={EP(100)['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,g,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,g,e"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={#1A#1B Tempo(140) [8r] #1Ax#1C [8r] v(125) #1E#1F#1G#1H#1I#1J #1K#1L#1M#1N > #1O#1P [8r] EP(127) < #1K#1L#1M#1Q}
#TR1={DT #1x}
//----------------------------------------------------------------------------------------------------------------------
TR(4) @(51) EP(100) v(100) REV(100) CHO(30) P(80)o6 q99 l1
TR(6) @(51) EP(100) v(100) REV(100) CHO(30) P(48) o4 q99 l1
//----------------------------------------------------------------------------------------------------------------------
/* Time */
Str DT1={Time(10:1:0)}
Str DT2={Time(19:1:0)}

/* EP.W */
Str DEPW1={EP.W(50,120,!2,120,120,!1,120,50,!2)}

/* EP.T */
Str DEPT1={EP.T(30,120,!1)}

#4A={'ceg''cfa''dg"b''"ace'2'cf"b'2 'ace''dfb' 'cegb' 'ceg`c' }
#4B={'ceg''cfa''dg"b''"ace'2'cf"b'2 'ace''dfb' 'cegb'2 'cfb`c'2 'ceg`c'}
#4C={DEPT1 '"bcf'}
#4D={'ceg'^'dfa'^ 'egb'^'cfb'^ 'ce"a'^'df"a''ea`d' 'egb'^'cegb''ceg`c'}
#4E={'ceg'^'dfa'^ 'egb'^'dfa''"bcf'  'ceg'^'dfa'^'egb'^'ceg"c'2'dfa"d'2'egb"e'2'fa`c"f'2 'ceg`c''dfa`d'2'cegb'2}
#4F={'cea''dfb''egb'2'cfb'2'cea' 'ceg''"bdf'2'gc`f'2'gbd''ea`c'  'cea''dfb''egb'2'`cfb'2'`cea' 'ceg''"bdf'2'g`c`f'2'gb`d''`c`egb'}
#4G={'ce"g'^'df"b'^'g"be'^'cea''c"f"b' 'ce"g'^'df"b'^'g"be''cfb''cegb''ceg`c'}
#4H={rrrr rrrr 'ce"g'^'df"b'^'g"be''cfb''cegb''ceg`c'}
#4I={'cegb'}
#4J={'cea''dfb''egb'2'cfb'2'cea' 'ceg''"bdf'2'gc`f'2'gbd''ea`c'  'cea''dfb''egb'2'`cfb'2'`cea' 'ceg''"bdf'2'g`c`f'2'`gb`d''g`c`e`g'}

#4={>cgf^ cga^ cgf^ cg'fa'^ < 'ceg`c''dfa`d'2'cegb'2}
#4x={DEPW1 #4A r EP(120) #4B #4C #4D #4 v+10 #4F v-20  #4G #4I v+20 #4J}
#TR4={DT #4x}

#6A={}
#6x={DT1 r-32 #4B r #4D #4E v+15 v+10 #4F v-40 #4H #4I v+40#4J}
#TR6={DT #6x}
//----------------------------------------------------------------------------------------------------------------------
TR(5) @(53) EP(100) v(127) V(127) REV(100) CHO(30) o6 q99 l1
//----------------------------------------------------------------------------------------------------------------------
/* Time */
Str ET1={Time(9:1:0)}
Str ET2={Time(33:1:0)}
Str ET3={Time(42:1:0)}
Str ET4={Time(52:1:0)}
Str ET5={Time(69:1:0)}

/* EP.T */
Str EEPT1={EP.T(20,127,!1)}
Str EEPT2={EP.T(127,0,!1^1^1^1^1^1)}

/* P.N */
Str EPN1={P.N(0,127)}
Str EPN2={P.N(0,64,96,32,127)}

#5A={EEPT1 l1 'cegb'}
#5B={v(20) EPN1 q80 l16 [16 "cc v+8] q99 P(64)}
#5C={rrrr "g^^^ c^^^ e^^^ EEPT2 g^^^ ^^^^ ^^^^ ^^^^ ^^^^ ^^^^ ^^^^ ^^^^}
#5D={EEPT1 l1 'cfb'}
#5E={l16 o8 [ ec"gr [7 rrrr]  fd"br [7 rrrr ] "g"ber [6rrrr] rcg`c : ce"ar [7rrrr]] `cae r [7rrrr]}
#5x={ET1 #5A @(82) ET2 #5B @(41) ET3 v(90) #5C @(53) ET4 v(127) #5D @(1) ET5 v(100) EPN2 MidiDelay({#5E},10,!5)}
#TR5={DT #5x}

//----------------------------------------------------------------------------------------------------------------------
TR(7) @(1) EP(120) v(120) V(127) REV(100) CHO(30) o4 q80 l16
//----------------------------------------------------------------------------------------------------------------------
/* EP.T*/
Str FEPT1={EP.T(120,20,!1)}


#7A={[3'ceg'r] 'ceg' ['ceg'r]'ceg' ['ceg'r]  [3'cfa'r] 'cfa' ['cfa'r]'cfa ' ['cfa'r] [3'dg"b'r] 'dg"b' ['dg"b'r]'dg"b ' ['dg"b'r]
     [3'"ace'r] '"ace''"ace'r 'cf"b'r'cf"b' ['cf"b'r] [3'ace'r] 'ace' ['ace'r]'ace' ['ace'r]  [3'dfb'r] 'dfb' ['dfb'r]'dfb' ['dfb'r] 
     [3'cegb'r] 'cegb''cegb'r 'cfb`c'r'cfb`c' ['cfb`c'r] [3'ceg`c'r] 'ceg`c' ['ceg`c'r]'ceg`c' ['ceg`c'r]}
#7B={FEPT1[3'"bcf'r] '"bcf' ['"bcf'r]'"bcf' ['"bcf'r] EP(120) }
#7C={[96r] < g^^b ^^a^ f^^a ^^g^ e^^g ^^f^ d^^f ^^e^ c^^^ ^^^^ ^^^^ ^^^^ [80r] c^^d ^^e^ d^^e ^^f^ e^^f ^^g^ f^^g ^^a^}
#7D={[4 ['ceg'^^]'ceg'^ ] [4 ['dfa'^^]'dfa'^] [4['geb'^^]'egb'^] [['dfa'^^]'dfa'^] [['cf"b'^^]'cf"b'^] 
     [4 ['ceg'^^]'ceg'^ ] [4 ['dfa'^^]'dfa'^] [4['geb'^^]'egb'^]  ['ceg'^^]'ceg'^ ['dfa'^^]'dfa'^ ['geb'^^]'egb'^ ['fa`c'^^]'fa`c'^}
#7x={DT1 #7A#7B#7C o4 #7D}
#TR7={DT #7x}
//----------------------------------------------------------------------------------------------------------------------
TR(8) @(97) EP(100) v(70) V(127) REV(100) CHO(30) o8 q80 l32
//----------------------------------------------------------------------------------------------------------------------
/* Time */
Str GT1={Time(38:1:0)}
Str GT2={Time(46:1:0)}
Str GT3={Time(86:1:0)}

/* P.N */
Str GPN1={P.N(64,0,127,96,32)}

/* P.T */
Str GPT1={P.T(127,0,!1)}

#8A={GPN1 [`cgec < ]>>[bfd"b <]>>[aec"a<]>>[gd"b"g<]>> P(64)}
#8B={GPT1 [8`cgec < ] o8 P(64) }
#8C={l4 [cdeg f^b^ a^g^ f^e^ : "g^"a^ "b^"g^ g^^^ f^e^] g^^^ f^^^ f^^^ e^^^}
#8x={GT1 #8A GT2 #8B GT3 v(110) #8C}
#TR8={DT #8x}
//----------------------------------------------------------------------------------------------------------------------
TR(9) @(33) EP(127) v(120) V(127) REV(20) CHO(80) o3 q80 l16
//----------------------------------------------------------------------------------------------------------------------
/* Time */
Str HT1={Time(53:1:0)}
Str HT2={Time(86:1:0)}

#9A={"a^^e ^^"a^ ^c^c "a^c^ "b^^f ^^"b^ ^d^d "b^d^ g^^"b ^^g^ ^e^e "b^"g^ "a^^e ^^"a^ ^c^c "a^c^ }
#9B={"g^^e ^^"g^ ^c^c "g^"e^ "b^^f ^^"b^ d^d^ "b^d^ "g^^d ^^"g^ ^"b^"b d^"g^ "a^^c^^"a^ ^e^e "a^"c^}
#9x={HT1 OctaveUnison({[#9A#9B]}) HT2 OctaveUnison({[#9A#9B]}) }
#TR9={DT #9x}
//----------------------------------------------------------------------------------------------------------------------
TR(10) @(25) EP(120) v(120) REV(100) CHO(30) l8
TR(20) CH(10) v(90) l8
TR(21) CH(10) v(90) l16
//----------------------------------------------------------------------------------------------------------------------
/* Time */
Str TD1={Time(9:1:0)}

$a{n35} $b{n36} $c{n75} $d{n82}
#D1={[4a^^a ^c^^ : ^^dc a^^c] l16 rrrr rraa a^^a ^a^c }
#D2={brar brar baar brar}
#D3={[8 brar brra brab brar]}
#D4={arar aara rara arar}
#D5={arra rrar arra rrar 'ab'rra rrar 'ab'ara aara}
#D6={[arra rrar]}
#D7={l8 [ brrb rrrr brrb arrr  brrb rrrr brrb rarr ] l16}
#Dx={#D1 #D2 #D3 #D4 [#D3] [#D3] #D5 [#D3] v-20 [#D7]#D2 [#D3]}
#TR10={DT Rhythm{#Dx}}

$e{n42} $f{n44} $g{n46}
#DA1={[4 errf rrgr : rrrr effe ] rree gffg}
#DA2={efg^ g^ef g^g^ efgg}
#DA3={[4 ggef rrgg efrr rggr gegf gegg rgrf ggeg]}
#DA4={[4 errf grrr rrrr erfr errf grrr rrrr gref]}
#DAx={#DA1 l16 #DA2#DA3 [16r] [#DA3] [#DA3] [32r] [#DA3] [#DA4] #DA2 [#DA3] }
#TR20={DT Rhythm{#DAx}}

$h{n38} $i{n40}
#DB1={hrri hrrh ihhr hrhr}
#DB2={[4 hrri rrhi riri irir :  hrri rrhi rirh rrir] hrri rrhi irii irii}
#DB3={rrrr irrr rrrr irrr rrir rrir l32 irri rrir irri rrir l16}
#DBx={TD1 #DB1#DB2 [16r] [#DB2] [#DB2] v(120) #DB3 v(90) [#DB2] [256 r] #DB1 [#DB2]}
#TR21={DT Rhythm{#DBx}}

//----------------------------------------------------------------------------------------------------------------------
TR(1) |#TR1|

TR(4) |#TR4| TR(6) |#TR6|

TR(5) |#TR5|

TR(7) |#TR7|

TR(8) |#TR8|

TR(9) |#TR9|

UseKeyShift(off)//キーを変えるとドラムの指定までずれるのでこれで防ぐ

TR(10) |#TR10|

TR(20) |#TR20|

TR(21) |#TR21|