//----------------------------------------------------------------------------------------------------------------------

INT Type = 1;//1ならTWM2用、そのほかならSD-80用設定

TrackName =  {""}
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 = 124                //テンポ
KeyFlag+() 　　　 　//調の設定 # = +,♭= -
Key(3)

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)}

//----------------------------------------------------------------------------------------------------------------------
TR(1) @(5) EP(127) v(110) V(127) REV(100) CHO(30) P(78) o4 q99 l8
//----------------------------------------------------------------------------------------------------------------------
#1A={'ceg'rr'ceg' ^^^^ '"adf'rr'"adf' ^^^^ '"beg'rr'"beg' ^^^^ 'cegb'rr'cegb' ^^^^}
#1B={'cfb'rr'cfb' r'cfb'^^ 'cegb'^^^ ^^^^}
#1C={'cfb'rr'cfb' r'cegb'^^ 'ceg`c'^^^ ^^^^ ^^^^ ^^^^}
#1x={[6 #1A] #1B [#1A] #1C}
#TR1={DT #1x}
//----------------------------------------------------------------------------------------------------------------------
TR(2) @(33) EP(127) v(110) V(127) REV(0) CHO(30) P(50) o3 q99 l8
//----------------------------------------------------------------------------------------------------------------------
#2A={crec "g"g^c "arr"a d^^f "brr"b "g"g^"e cre"b ^^^"g }
#2B={frcf "bfrc c^^^ ^^^^}
#2C={frcf "bfrc c^^^ ^^^^ ^^^^ ^^^^}
#2x={[6 #2A] #2B [ #2A] #2C}
#TR2={DT #2x}
//----------------------------------------------------------------------------------------------------------------------
TR(3) @(46) EP(127) v(90) V(127) REV(40) CHO(30) P(100) o6 q99 l8
//----------------------------------------------------------------------------------------------------------------------
Str CT1={Time(5:1:0)}
Str CT2={Time(27:1:0)}

#3A={`rrcc rrrr raf"a rrrr rrb"b rrrr rbge cgrb}
#3x={CT1 [5 #3A] CT2 [ #3A]}
#TR3={DT #3x}
//----------------------------------------------------------------------------------------------------------------------
TR(4) @(11) EP(127) v(70) V(127) REV(100) CHO(30) P(32) o5 q99 l8
//----------------------------------------------------------------------------------------------------------------------
#4A={c^^^ g^^^ d^^f ^^a^ b^^^ e^^^ c^e^ g^b^ }
#4x={[6 #4A] CT2 [ #4A]}
#TR4={DT #4x}
//----------------------------------------------------------------------------------------------------------------------
TR(5) @(74) EP(127) v(100) V(120) REV(100) CHO(30) P(64) EGAttack(48) EGRelease(40) FilterCutoff(127) FilterResonance(70) o6 q99 l8
//----------------------------------------------------------------------------------------------------------------------
Str ET1={Time(9:1:0)}
Str ET2={Time(27:1:0)}

Str EEPT1={EP.T(127,60,!1)}

#5A={e^^^ ^^^^ ^^^^ refg e^^^ "g^^^ ^^^^ ^^^^ c^^^ ^^^^ cdef edre c^^^ "b^^^ c^^^ rceg}
#5B={`c^^^ ^^^^ ^^^^ ^^`d^ `c^^^ ^^^^ ^^^^ ^^`d^ `e^^^ ^^^^ `e^^^ `f^^^ `e^^^ ^^^^ `c^^^ ^^^^ }
#5C={e^^^ ^^^^ ^^^^ refg b^^^ ^^^^ ^^^^ `c^^^ `d^`e^ `d^`c^ b^^`c `d`e^`f `e^^^ ^`g+^^ `a^^^ ^^^^}
#5x={ET1 #5A EEPT1 #5B EP(127) ET2 #5C}
#TR5={DT #5x}
//----------------------------------------------------------------------------------------------------------------------
TR(6) @(101) EP(127) v(70) V(127) REV(20) CHO(30) P(64) o7 q99 l8
//----------------------------------------------------------------------------------------------------------------------
Str FT1={Time(17:1:0)}
Str FT2={Time(35:1:0)}

#6A={'`gg'^^^ '`aa'^^^ '`gg'^^^ ^^'`aa'^ '`bb'^'``c`c'^ '`bb'^'`aa'^ '`gg'^^^ ^^^^}
#6B={'`cc'^^^ '`dd'^^^ '`cc'^^^ ^^'`dd'^ '`ee'^'`ff'^ '`ee'^'`dd'^ '`cc'^^^ 'b"b'^^^ }
#6C={g^^g d^^d e^^f ^^g^ a^^^ ^^^^ b^^^ a^^^}
#6x={FT1 #6A > #6B}
#TR6={DT #6x}

//----------------------------------------------------------------------------------------------------------------------
TR(7) @(5) EP(127) v(100) V(127) REV(120) CHO(30) P(64) EGAttack(64) EGRelease(64) FilterCutoff(70) FilterResonance(84) o4 q99 l16
//----------------------------------------------------------------------------------------------------------------------
Str GT1={Time(26:1:0)}
Str GT2={Time(36:1:0)}

Str GPT1={P.T(0,127,!1)}
Str GPT2={P.T(0,127,!1,127,64,!1)}

#7A={GPT1 [ 4cegb >] o4}
#7B={GPT2 [ 4cegb >] [bgec <<]>>>[bgec <<] o4}
#7x={GT1 #7A GT2 #7B}
#TR7={DT #7x}

//----------------------------------------------------------------------------------------------------------------------
TR(10) @(1) EP(100) v(100) REV(100) CHO(30) q99 l8
//----------------------------------------------------------------------------------------------------------------------

$a{n35}

//#D1={[16 a^]}
#Dx={DT #D1}
#TR10={Rhythm{#Dx}}
//----------------------------------------------------------------------------------------------------------------------
TR(1) |#TR1| 

TR(2) |#TR2|

TR(3) |#TR3|

TR(4) |#TR4|

TR(5) |#TR5|

TR(6) |#TR6|

TR(7) |#TR7|

UseKeyShift(off)//キーを変えるとドラムの指定までずれるのでこれで防ぐ

TR(10) |#TR10|