//----------------------------------------------------------------------------------------------------------------------

INT Type = 1;//1ならTWM2用、そのほかならSD-80用

TrackName =  {"snowing time(ambient ver)"}
Copyright =  {"ねの〜ん( ´･ω･`)"} 
MetaText  =  {"DJ Nannェ…(´ﾟωﾟ`)"} 


/*----------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------*/
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 = 130                //テンポ
KeyFlag+(cdfg) 　　　 　//調の設定 # = +,♭= -

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_PLATE);
}



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((131:1:0) 1)

Include(delay.h)
Include(fadeio.h)

//----------------------------------------------------------------------------------------------------------------------
IF(Type=1){
TR(1) @(103) v(80) REV(100) CHO(120) o7 q99 l8
}ELSE{
TR(1) @(91,81) EP(100) v(80) REV(100) CHO(120) o7 q99 l8
}
//----------------------------------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------------------------------
/* Time */
Str AT1={Time(49:1:0)}
Str AT2={Time(147:1:0)}


/* EP.T */
Str AEPT1={EP.T(30,127,!1^1^1^1^ 1^1^1^1^ 1^1^1^1)}

#1A={[4 MidiDelay({c^^g},8,!2) ^^^^ [6 rrrr] ]}
#1B={MidiDelay({c^^g},4,!2) ^^^^ [6 rrrr]}
#1x={AEPT1 [#1A] AT1 #1A AT2 v+40 #1A #1B}
#TR1={DT #1x}
//----------------------------------------------------------------------------------------------------------------------
IF(Type=1){
TR(2) @(103) v(100) REV(120) CHO(80) o7 q99 l8
}ELSE{
TR(2) @(91,81) EP(100) v(120) REV(120) CHO(80) o7 q99 l8
}
//----------------------------------------------------------------------------------------------------------------------
/* Time */
Str BT1={Time(17:1:0)}
Str BT2={Time(98:1:0)}
Str BT3={Time(131:1:0)}


/* v.N */
Str BV1={v.N(100,80)}

#2A={c^^g ^^^^ ^^^^ fede d^^"b ^^c^ ^^^^ cdef g^^a ^^b^ ^^^b16`c16 b^g^ `e^^^ `d^^^ `c^^^ "f"g"a"b}
#2B={c^^g ^^^^ ^^^^ fede d^^a ^^b^ ^^^^ `c6`d6`e6 `d^^b ^^a^ ^^^^ f^^^ g^^^  ^^^^ ^^^^ ^^^^}

#2C={cdef ^^^e16d16 e^^g ^^^^ gfef ^^^^ a^^g ^^^e16d16 cdef ^^^e16f16 g^^a ^^^^ bagf ^^^^ g^f^ b^`c^}
#2D={e^^f ^^^^ d^^e ^^cd e^^f ^^ef gage ^^^^ e^^f ^^^^ d^^e ^^cd e^^f ^^fg abag ^^ab}
#2E={'c"g'^^'g"g' ^^^^ ^^^^ 'f"f''e"f''d"f''e"f' 'd"d'^^'"b"d' ^^'c"c'^ ^^^^ 'c"c''d"c''e"e''f"f' 
     'g"g'^^'a"a' ^^'b"b'^ ^^^'b"b'16'`c"b'16 'b"b'^'g"b'^ '`e"b'^^^ '`dd'^^^ '`cc'^^^ '"f""a''"g""b''"a"c''"b"d'}
#2F={'c"c'^^'g"g' ^^^^ ^^^^ 'f"f''e"f''d"f''e"f' 'd"d'^^'a"a' ^^'b"b'^ ^^^^ '`ce'6'`dd'6'`ec'6 
     '`ff'^^'`gg' ^^'`dd'^ ^^^^ '`ec'^^^ '`f"b'^^^  ^^^^ '`g"gg'^^^ ^^^^}
#2x={BT1 [3 #2A] #2B [128 r] #2C#2D BT2 BV1 EP(115) #2E#2F BT3 BV1 #2E#2F}
#TR2={DT #2x}
//----------------------------------------------------------------------------------------------------------------------
IF(Type=1){
TR(3) @(50) v(110) REV(120) CHO(30) P(0) o5 q99 l4
TR(4) @(50) v(110) REV(120) CHO(30) P(127) o6 q99 l4
}ELSE{
TR(3) @(15,81) EP(100) v(110) REV(120) CHO(30) P(0) o5 q99 l4
TR(4) @(15,81) EP(100) v(110) REV(120) CHO(30) P(127) o6 q99 l4
}
//----------------------------------------------------------------------------------------------------------------------
/* EP.T */
Str CEPT1={EP.T(20,100,!1^1^1^1^ 1^1^1^1^ 1^1^1^1^ 1^1^1^1)}
Str CEPT2={EP.T(40,100,!1^1)}
Str CEPT3={EP.T(40,100,!2)}

/* EP.W */
Str CEPW1={EP.W(40,100,!1^1)}

/* V.W */
Str CVW1={V.W(40,100,!1^1,100,0,!2)}

/* P.T */
Str CPT1={P.T(56,0,!1^1)}
Str CPT2={P.T(78,127,!1^1)}
Str CPT3={P.T(56,0,!2)}
Str CPT4={P.T(78,127,!2)}

/* P.W */
Str CPW1={P.W(56,0,!1^1)}
Str CPW2={P.W(78,127,!1^1)}


#3A={'ceg'^^^ ^^^^ ^^^^ ^^^^ 'cef'^^^ ^^^^ ^^^^ ^^^^ 'cfa'^^^ ^^^^ ^^^^ ^^^^ 'cegb'^^^ ^^^^ 'cfa`c'^^^ ^^^^}
#3B={[CEPW1 CPW1 'ceg'^^^ ^^^^ : '"bdf'^^^ ^^^^ '"ace'^^^ ^^^^ CEPT2 CPT1 '"beg'^^^ '"bdf'^^^]
     '"bdg'^^^ ^^^^ '"adf'^^^ ^^^^ CEPT2 CPT1 '"begb'^^^ '"bdgb'^^^}
#3C={[CEPW1 CPW1 'ceg'^^^ ^^^^ '"beg'^^^ ^^^^ '"ace'^^^ ^^^^ CEPT2 CPT1 : '"beg'^^^ '"bef'^^^ ] '"beg'^^^ '"befa'^^^}
#3D={CEPT3 CPT3 'cfa'^^^ }
#3E={CEPT3 CPT3 'c+f+a+'^^^ }
#3x={CEPT1 CVW1 #3A V(100) v+10 [3#3B] [#3C] #3D [#3B] #3E [#3B]}
#TR3={DT #3x}

#4A={'ceg'^^^ ^^^^ ^^^^ ^^^^ 'cef'^^^ ^^^^ ^^^^ ^^^^ 'cfa'^^^ ^^^^ ^^^^ ^^^^ 'cegb'^^^ ^^^^ 'cfa`c'^^^ ^^^^}
#4B={[CEPW1 CPW2 'ceg'^^^ ^^^^ : '"bdf'^^^ ^^^^ '"ace'^^^ ^^^^ CEPT2 CPT2 '"beg'^^^ '"bdf'^^^] 
     '"bdg'^^^ ^^^^ '"adf'^^^ ^^^^ CEPT2 CPT2 '"begb'^^^ '"bdgb'^^^}
#4C={[CEPW1 CPW2 'ceg'^^^ ^^^^ '"beg'^^^ ^^^^ '"ace'^^^ ^^^^ CEPT2 CPT2 : '"beg'^^^ '"bef'^^^ ] '"beg'^^^ '"befa'^^^}
#4D={CEPT3 CPT4 'cfa'^^^ }
#4E={CEPT3 CPT4 'c+f+a+'^^^ }
#4x={CEPT1 CVW1 #4A V(100) v+10 [3#4B] [#4C] #4D [#4B] #4E [#4B]}
#TR4={DT #4x}


//----------------------------------------------------------------------------------------------------------------------
IF(Type=1){
TR(5) @(82,110,3) v(80) REV(127) CHO(20) o8 q99 l16
}ELSE{
TR(5) @(66,81) EP(100) v(60) REV(127) CHO(20) o8 q99 l16
}
//----------------------------------------------------------------------------------------------------------------------
/* Time */
Str DT1={Time(17:1:0)}
Str DT2={Time(98:1:0)}
Str DT3={Time(131:1:0)}

/* EP.W */
Str DEPW1={EP.W(0,127,!64)}

/* V.T */
Str DVT1={V.T(60,127,!1,127,60,!1)}

/* P.N */
Str DPN1={P.N(127,32,96,0,64)}

/* pattern */
Str PB={DPN1 DVT1 [9 bge] bg`ebg}
Str PA={DPN1 DVT1 [9 afd] af`daf}
Str PG={DPN1 DVT1 [9 gec] ge`cge}
Str PF={DPN1 DVT1 [9 fd"b] fdbfd}
Str PE={DPN1 DVT1 [9 ec"a] ecaec}
Str PD={DPN1 DVT1 [9 d"b"g] d"bgd"b}
Str PC={DPN1 DVT1 [9 c"a"f] c"afc"a}

#5A={DEPW1 [ PC < PB PA PB > ]}
#5B={v(127) EP(127) V(127) o4 [4 ceg`c >] o8 v(80)}
#5C={v(127) EP(127) V(127) o4 [4 c+e+g+`c+ >] o8 v(80) }

#5x={DT1 [5 #5A] #5B DT2 [#5A] #5C [#5A]}
#TR5={DT #5x}

//----------------------------------------------------------------------------------------------------------------------
IF(Type=1){
TR(6) @(36) v(100) REV(127) CHO(50) o3 q99 l16
}ELSE{
TR(6) @(36,97) EP(100) v(100) REV(127) CHO(50) o3 q99 l16
}
//----------------------------------------------------------------------------------------------------------------------
/* Time */
Str ET1={Time(33:1:0)}
Str ET2={Time(98:1:0)}
Str ET3={Time(131:1:0)}


/* BasePattern*/
Str BB={bbrb brbb rrrr rrrr rrrr rrbb bbrb rbrb}
Str BA={aara araa rrrr rrrr rrrr rraa aara rara}
Str BG={ggrg grgg rrrr rrrr rrrr rrgg ggrg rgrg}
Str BF={ffrf frff rrrr rrrr rrrr rrff ffrf rfrf}
Str BE={eere eree rrrr rrrr rrrr rree eere rere}
Str BD={ddrd drdd rrrr rrrr rrrr rrdd ddrd rdrd}
Str BC={ccrc crcc rrrr rrrr rrrr rrcc ccrc rcrc}

#6A={[ BC < BB BA BB > ]}
#6x={ET1 [4 #6A] ET2 [#6A] ET3 [#6A]}
#TR6={#6x}
//----------------------------------------------------------------------------------------------------------------------
IF(Type=1){
TR(7) @(5) EP(127) v(110) REV(127) CHO(127) o6 q99 l16
}ELSE{
TR(7) @(24,80) EP(127) v(110) REV(127) CHO(127) o6 q99 l16
}
//----------------------------------------------------------------------------------------------------------------------
/* Time */
Str FT1={Time(49:1:0)}
Str FT2={Time(81:1:0)}
Str FT3={Time(114:1:0)}
Str FT4={Time(131:1:0)}

#7A={g^^^ [4 cdeg v-20] v+80 gagr gfgf fefe [8 bge v-10] v+80 rrrr gegf efga [8 gea v-10] [7 aeg v+10] v+10 [5 dfg] }
#7B={e^^^ edec ^^^^ cdef g^^a ^^b^ a^^g ^^e^ c^^^ ^^"g^ ^^^^ ^^^^
     "g^^"a ^^"b^ "g^^^ ^^^^ "g^^^ "g"a"bc d^^e ^^f^ g^^f ^^b^ ^^a^ ^^^^ g^^^ ^^^^ ^^^^ ^^^^ ^^^^}
#7C={`c^^^ ^^^b16a16 b^^^ `e^^^ a^^^ ^^^g16f16 g^^^ e^^^ f^^^ ^^f16e16d16c16 d^^e ^^g^ a^^^ b^^^ `c^^^ `d^^^  }
#7D={`e^^^ ^^^`d16`e16 `f^^^ `a^^^ `g^^^ ^^^^ ^^^^ `e^^^ `e^^^ ^^^^ ^^^^ `e6`d6`e6 `c^^^ ^^^^ `d^^^ ^^^^}
#7E={`e^^^ ^^^^ ^^^^ ^^^^}
#7F={e^^^ ^^d16e16f16g16 a6b6a6 g6a6g6 f^^^ ^^f16e16f16g16 d^^^ ^^"b^ c^^^ ^^d16c16d16e16 f6g6a6 g6a6b6 `c^^^ ^^^^ `d^^^ ^^^^}
#7G={'`cc'^^^ ^^^^ d6e6f6 f6g6a6 a^^^ ^^^g16a16 b^^^ ^^^^ `c^^^ ^^^^ ^^^^ `c6b6a6 g^^^ ^^^^ f^^^ ^^^^ e^^^ ^^^^}



#7x={FT1 #7A#7B FT2 l8 #7C#7D#7E FT3 #7F#7G }
#TR7={#7x}
//----------------------------------------------------------------------------------------------------------------------
IF(Type=1){
TR(16) @(123,0) v(127) V(127) REV(127) CHO(80) o7 q99 l4
TR(15) @(123,3) v(127) V(100) REV(127) CHO(80) o5 q99 l4
}ELSE{
TR(16) @(123,96,0) EP(100) v(127) V(127) REV(127) CHO(80) o7 q99 l4
TR(15) @(123,96,3) EP(100) v(127) V(100) REV(127) CHO(80) o5 q99 l4
}
//----------------------------------------------------------------------------------------------------------------------
/* Time */
Str ST1={Time(16:1:0)}
Str ST2={Time(48:1:0)}
Str ST3={Time(64:1:0)}
Str ST4={Time(80:1:0)}
Str ST5={Time(97:1:0)}
Str ST6={Time(130:1:0)}
Str ST7={Time(146:1:0)}

/* EP.T*/
Str SEPT1={EP.T(20,127,!1,127,0,!2)}

/* p.T */
Str SP1={p.T(127,0,!1)}

#16A={SEPT1 SP1 'cde'^^^ ^^^^ }
#16x={ST1 #16A ST2 #16A ST3 #16A ST4 #16A ST5 #16A ST6 #16A ST7 #16A}
#TR16={#16x}

#15A={'ceg'^^^ ^^^^ ^^^^ ^^^^ }
#15x={Time(131:1:0) #15A}
#TR15={#15x}
//----------------------------------------------------------------------------------------------------------------------
IF(Type=1){
TR(10) @(26) v(100) REV(127) CHO(30) l8
TR(20) CH(10) v(100) l16
TR(11) @(27,110) v(100) REV(127) CHO(30) BR(12) p%(-6000) l16
}ELSE{
TR(10) @(26,106) EP(100) v(100) REV(127) CHO(30) l8
TR(20) CH(10) v(100) l16
TR(11) @(26,105) EP(100) v(100) REV(127) CHO(30) BR(12) p%(-6000) l16
}
//----------------------------------------------------------------------------------------------------------------------
/* Time */
Str TD1={Time(16:1:0)}
Str TD2={Time(17:1:0)}
Str TD3={Time(98:1:0)}
Str TD4={Time(131:1:0)}


/* v.N */
Str VD1={v.N(30,45,55,70,90,70,55,45)}
Str VD2={v.N(100,100,50,50,30,30)}

$a{n35} $b{n36}

#D1={rrr l16 aa arra rrar l8}
#D2={[arra rrar rrrr arar arra rrar : rrr l16 aa arra rrar l8 ] rrr l16aa araa raarl8}
#D3={l16 arrr araa araa raar l8}
#Dx={TD1 #D1 [10 #D2] #D3 [4 #D2] #D3 [4 #D2]}
#TR10={DT Rhythm{#Dx}}

$c{n42} $d{n44} $e{n46}

#DA1={VD1 [4 [4 dcdc : ecdc ] eede ]}
#DAx={TD2 [10 #DA1] TD3 [4 #DA1] TD4 [4 #DA1]}
#TR20={DT Rhythm{#DAx}}

$f{'n38n40'} $g{n40}

#DB1={}
#DBx={TD2 VD2 #DB1}
#TR11={DT Rhythm{#DBx}}
//----------------------------------------------------------------------------------------------------------------------
TR(1) |#TR1|

TR(2) |#TR2|

TR(3) |#TR3| TR(4) |#TR4|

TR(5) |#TR5|

TR(6) |#TR6|

TR(7) |#TR7|

TR(16) |#TR16| TR(15) |#TR15|

UseKeyShift(off)

TR(10) |#TR10| TR(20) |#TR20| TR(11) |#TR11|
