//----------------------------------------------------------------------------------------------------------------------

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 =  3,7      //4/4
Tempo = 100                //テンポ
KeyFlag+() 　　　 　//調の設定 # = +,♭= -
Key(-2)

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)}

Include(delay.h)

//----------------------------------------------------------------------------------------------------------------------
TR(1) @(99) EP(127) v(60) V(127) REV(90) CHO(30) EGAttack(0) o7 q99 l16
//----------------------------------------------------------------------------------------------------------------------
Str APN1={P.N(64,16,127,48,96,0,112,32,80)}

#1A={MidiDelay({[fef aga drr rrr rrr rrr rrr] [ede gfg crr rrr rrr rrr rrr]},4,!8)}
#1B={MidiDelay({fef aga }4,!8) MidiDelay({drr rrr rrr rrr rrr}7,!8)}
#1x={APN1 [4 #1A]#1B}
#TR1={DT #1x}
//----------------------------------------------------------------------------------------------------------------------
TR(2) @(82) EP(127) v(30) V(127) REV(90) CHO(30) EGAttack(100) o3 q99 l16
TR(3) @(51) EP(127) v(60) V(127) REV(90) CHO(30) EGAttack(80) o3 q99 l16
//----------------------------------------------------------------------------------------------------------------------

Str BT1={Time(15:1:0)}

Str BPT1={P.T(16,112,!1^1^1)}
Str BPT2={P.T(112,16,!1^1^1)}

#2A={BPT1 a^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ BPT2 g^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^  }
#2x={l16 [84 r] l16 [3#2A]}
#TR2={DT #2x}


#TR3={DT #2x}
//----------------------------------------------------------------------------------------------------------------------
TR(4) @(1,8) EP(127) v(127) V(127) REV(90) CHO(30) EGAttack(0) o8 q99 l16
//----------------------------------------------------------------------------------------------------------------------
#4A={MidiDelay({a^a ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ g^g g^^ g^g ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ff^ ff^ 
                f^f ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ eee ^^e ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ ^^^ `g^^ ^^^ ^^^ ^^^ ^^^ },10,!3)}
#4x={l16 [[84 r]] #4A}
#TR4={DT #4x}
//----------------------------------------------------------------------------------------------------------------------
TR(10) @(1) EP(100) v(100) REV(100) CHO(30) q99 l8
//----------------------------------------------------------------------------------------------------------------------

#D1={}
#Dx={#D1}
#TR10={Rhythm{#Dx}}
//----------------------------------------------------------------------------------------------------------------------
TR(1) |#TR1|

TR(2) |#TR2| TR(3) |#TR3|

TR(4) |#TR4|

UseKeyShift(off)//キーを変えるとドラムの指定までずれるのでこれで防ぐ

TR(10) |#TR10|