//----------------------------------------------------------------------------------------------------------------------

INT Type = 1;//1ならTWM2用、そのほかならSD-80用

TrackName =  {"Merry Christmas ~幻想聖夜祭~"}
Copyright =  {"球場のピアニスト"} 
MetaText  =  {"メリークリスマース今年も独りだチキショー(>皿<)"} 


/*----------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------*/
System.MeasureShift(1);    //音源初期化用に発音を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 = 120                //テンポ
KeyFlag+()      //調の設定 # = +,♭= -
Key(1)

IF(Type=1){
CuePoint={"TwmParam(64,120,2);"}
}ELSE{

//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_HALL);
}

Include(unison.h)

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)}

//----------------------------------------------------------------------------------------------------------------------
IF(Type=1){
TR(1) @(11) EP(127) v(100) V(127) REV(60) CHO(30) o6 q99 l8
}ELSE{
TR(1) @(44,80) EP(127) v(100) V(127) REV(30) CHO(30) o6 q99 l8
}
//----------------------------------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------------------------------
#1A={'`cgc '^^b ^^e^ ^^^^ ^^^^ '`cf"a '^^b ^^e^ ^^^^ ^^^^ '`ce"g'^^b ^^e^ ^^^^ ^^^^'`cd"f '^^b ^^e^ ^^^d cde^  }
#1B={'`cgc '^^b ^^e^ ^^^^ ^^^^ '`cf"a '^^b ^^e^ ^^^d cdef '`ce"g'^^b ^^e^ ^^^^ ^^^^'`cd"f '^^b ^^e^ ^^^d cde^  }
#1C={'`cgc '^^^ '`dad '^'`ege '^}
#1D={'`cgc '^^b ^^e^ ^^^^ ^^^^}
#1x={[4 #1A:#1B] #1C v+5 [ #1A#1B] #1D}
#TR1={DT #1x}
//----------------------------------------------------------------------------------------------------------------------
IF(Type=1){
TR(2) @(1) EP(127) v(110) V(127) REV(30) CHO(30) o6 q99 l16
}ELSE{
TR(2) @(21,80) EP(127) v(110) V(127) REV(30) CHO(30) o6 q99 l16
}
//----------------------------------------------------------------------------------------------------------------------
/* Time */
Str BT1={Time(33:1:0)}
Str BT2={Time(58:1:0)}

#2A={ 'ec"e'^^^ ^^^^ ^^^^ c"gde fgra g^^^ '`fd''`fd'ra rgef agaf gecd r'`fd'r'`ed' r'`cd''`dd'^ ^^^^ ^^^^ ^^`e`f }
#2B={`g`f`g`f `e`d`cb ^^^^ 'gc''gc'rr cdef gabr '`ff''`ff'rr r`f`g`f `e`d`cb Div{l32 q599 ceg`c q99}^^^ ^^^^ '`g`e'^^^ ^^^^ '`a`d'^^^ ^^^^ '`b`e'^^^ ^^^^}
#2C={ 'gec"g'^'afd"a''afd"a' r 'gec"g'r 'gec"g' ^^^^ ^^^^ ^^^^ ^^'afd"a''afd"a' 'gec"g''fd"b"f'r'ec"g"e'
      r'c"g"e"c''d"a"f"d''ec"g"e' 'fd"b"f''fd"b"f'r'ec"g"e' ^^^^ ^^^^ rgab `cbag agfe fedc dc"b"g}
#2D={ 'afd"a'^'gec"g''gec"g''gec"g''afd"a'^'afd"a' r'gec"g'^^ ^^^^ ^^^^ ^^'afd"a''afd"a' 'gec"g''fd"b"f'r'ec"g"e'
      r'c"g"e"c''d"a"f"d''ec"g"e' 'fd"b"f'^^'gec"g' ^^'afd"a'^ ^'bge"b'^^ '`cgec'^^^ ^^^^ ^^^^}
#2x={BT1 #2A#2B BT2 v+17 #2C #2D}
#TR2={#2x}

//----------------------------------------------------------------------------------------------------------------------
IF(Type=1){
TR(3) @(74) EP(127) v(110) V(127) REV(30) CHO(100) o6 q99 l8
}ELSE{
TR(3) @(45,81) EP(127) v(127) V(127) REV(30) CHO(100) o6 q99 l8
}
//----------------------------------------------------------------------------------------------------------------------
/* Time */
Str CT1={Time(41:1:0)}
Str CT2={Time(65:3:0)}

/* EP.W */
Str CEPW1={EP.W(100,127,!2)}

/* EP.T */
Str CEPT1={EP.T(127,0,!1^1^1^1^1^1)}

#3A={g^^c ^^^^ rcde fgab `c^^e ^^^^ r`c`d`c bagf g^^a ^^b^ ^^^^ ^^`cb `c^^`d ^^`e^ ^^^^ `f^^^}
#3B={`g^^`c ^^`c^ ^^^^ b^a^ b^^g ^^g^ ^^^^ rgag g^^c ^^c^ ^^^^ ^^^^ g^^^ ^^^^ `d^^^ ^^^^}
#3C={'d"d''e"e''f"f''g"g' 'a"a'^^'b"b' ^^'b"b'^ ^^^^ '`cc'^'`dd'^ '`cc'^^'b"b' ^^'e"e'^ ^^^^ 'c"c'^'d"d'^ 
     'g"g'^^'a"a' ^^'b"b'^ ^^^^ ^^^^ '`cc'^^^ ^^'`dd''`cc' '`dd'^^^  ^^^^ CEPT1'`ee'^^^ ^^^^ ^^^^ ^^^^ ^^^^ ^^^^ ^^^^ ^^^^}
#3x={CT1 CEPW1 #3A#3B CT2  EP(127) #3C}
#TR3={#3x}

//----------------------------------------------------------------------------------------------------------------------
IF(Type=1){
TR(4) @(53) EP(127) v(80) V(127) REV(50) CHO(50) P(112) o5 q99 l2
TR(5) @(53) EP(127) v(80) V(127) REV(50) CHO(50) o5 q99 l2
TR(6) @(53) EP(127) v(80) V(127) REV(50) CHO(50) P(16) o5 q99 l2
}ELSE{
TR(4) @(53,96,1) EP(127) v(80) V(127) REV(50) CHO(50) P(112) o5 q99 l2
TR(5) @(53,96,1) EP(127) v(80) V(127) REV(50) CHO(50) o5 q99 l2
TR(6) @(53,96,1) EP(127) v(80) V(127) REV(50) CHO(50) P(16) o5 q99 l2
}
//----------------------------------------------------------------------------------------------------------------------
/* Time */
Str DT1={Time(17:1:0)}

/* EP.W */
Str DEPW1={EP.W(30,127,!1^1)}
Str DEPW2={EP.W(30,127,!1)}

#4A={e^^^ a^^^ g^^^ a^^^ }
#4B={DEPW2 v+20 b^ v-10}
#4x={DT1 DEPW1 #4A [16r] [3#4A] #4B [4#4A]}
#TR4={DT #4x}

#5A={c^^^ f^^^ e^^^ 'ce'^^^ }
#5B={'c"c'^^^ 'f"f'^^^ 'e"e'^^^ 'ce"f'^^^ }
#5C={DEPW2 v+20 'df"g'^ v-10}
#5x={DT1 DEPW1 #5A [16r] [3#5B] #5C [4#5B]}
#TR5={DT #5x}

#6A={"g^^^ d^^^ c^^^ "a^^^ }
#6B={DEPW2 v+20 "b^ v-10}
#6x={DT1 DEPW1 #6A [16r] [3#6A] #6B [4#6A]}
#TR6={DT #6x}
//----------------------------------------------------------------------------------------------------------------------
IF(Type=1){
TR(7) @(33) EP(127) v(120) V(127) REV(30) CHO(30) o4 q99 l8
}ELSE{
TR(7) @(33,98) EP(127) v(120) V(127) REV(30) CHO(30) o4 q99 l8
}
//----------------------------------------------------------------------------------------------------------------------
/* Time */
Str ET1={Time(58:1:0)}

#7A={'c"c'^^'d"d' ^^'e"e'^ ^^^^ 'd"d'^'e"e'^ 'f"f'^^'g"g' ^^'a"a'^ ^^^^ 'b"b'^'a"a'^ 'c"c'^^'d"d' ^^'e"e'^ 
     ^^^^ 'd"d'^'e"e'^ 'f"f'^^'e"e' ^^'e"e'^ ^^^^ 'g"g'^'e"e'^}
#7x={ET1 [#7A]}
#TR7={#7x}
//----------------------------------------------------------------------------------------------------------------------
IF(Type=1){
TR(16) @(97) EP(127) v(100) V(127) REV(30) CHO(30) o8 q99 l16
}ELSE{
TR(16) @(97,96) EP(127) v(100) V(127) REV(30) CHO(30) o8 q99 l16
}
//----------------------------------------------------------------------------------------------------------------------
/* Time */
Str MT1={Time(57:1:0)}
Str MT2={Time(91:1:0)}

/* P.N */
Str MPN1={P.N(127,0)}

#16A={MPN1 v(50) [8 e v+5 c v+5]}
#16B={MPN1 v(30) [8 e v+5 c v+5]}
#16x={MT1 #16A MT2 #16B}
#TR16={DT #16x}
//----------------------------------------------------------------------------------------------------------------------
IF(Type=1){
TR(10) @(1) EP(127) v(90) V(127) REV(50) CHO(30) l16
TR(20) CH(10) v(100) l16
TR(21) CH(10) v(90) l16
}ELSE{
TR(10) @(1,105) EP(127) v(90) V(127) REV(50) CHO(30) l16
TR(20) CH(10) v(100) l16
TR(21) CH(10) v(90) l16
}
//----------------------------------------------------------------------------------------------------------------------
/* Time */
Str TD1={Time(9:1:0)}
Str TD2={Time(17:1:0)}
Str TD3={Time(57:1:0)}
Str TD4={Time(91:1:0)}

$a{n42} $b{n44} $c{n46}

#10A={ bara brcr rrrr rrba abra rrrr rrba aaba }
#10B={ bara bara crrr bara}
#10x={TD1 [24 #10A] #10B [16 #10A]}
#TR10={Rhythm{DT #10x}}

$d{n27} $e{n36} $f{n36}

#20A={e^^^ e^^^ e^^^ 'ed'^^^ e^^^ e^^^ e^^^ 'ed'^^^}
#20B={e^ee ^e^e e^^e e^^e}
#20x={TD2 [20 #20A] #20B [16 #20A]}
#TR20={Rhythm{#20x}}

$j{n84}
#21A={jj [14 j^ v-4] v(90)}
#21x={TD3 #21A TD4 #21A}
#TR21={Rhythm{#21x}}

//----------------------------------------------------------------------------------------------------------------------
TR(1) |#TR1|

TR(2) |#TR2|

TR(3) |#TR3|

TR(4) |#TR4| TR(5) |#TR5| TR(6) |#TR6|

TR(7) |#TR7|

TR(16) |#TR16|

UseKeyShift(off) 

TR(10) |#TR10| TR(20) |#TR20| TR(21) |#TR21|