//-----------------------------------------------
// edge of ice valley
// (C)Yax
//-----------------------------------------------

TrackName     = {"edge of ice valley"}
Copyright     = {"Yax"}

ResetGM();
r2
TrackSync;


// アルペジオ関数
Function ARP(Int D, Int L, Str S) {
  Int LNG = L
  Int STP = 0
  Int TEMP = 0
  Str X = ""
  Str RS = ""
  Str NS = ""
  Int J = 0
  Array NAR = ()

  For(Int I = 1; I <= 100; I++ ){
    X = MID(S,I,1)
    J = ASC(X)

    IF (X == "") {
      EXIT
    }

    IF ( J >= 97 ) {
      IF ( J <= 103 ) {
        IF ( NS != "" ) {
	    NS = Replace(NS,{@-},{-@},off)
	    NS = Replace(NS,{@+},{+@},off)
	    NS = Replace(NS,{@#},{#@},off)
	    NS = Replace(NS,{@*},{*@},off)
          NAR = (NAR,NS)
	    NS = ""
        }
	  X = X + "@"
	}
    }
    NS = NS + X
  }
  IF ( NS != "" ) {
    NS = Replace(NS,{@-},{-@},off)
    NS = Replace(NS,{@+},{+@},off)
    NS = Replace(NS,{@#},{#@},off)
    NS = Replace(NS,{@+},{*@},off)
    NAR = (NAR,NS)
    NS = ""
  }

  For(Int I=0;I<SizeOf(NAR);I++){
    TEMP = L - STP
    RS = "r%" + #STR(STP)
    NS = Replace(NAR(I), {@}, {%}+#STR(TEMP),off)
    Sub{ RS NS }
    STP = STP+D
  }
  r%(L)
}



// フェードアウト
FUNCTION FADEOUT() {
  EP.onTime(127,0,!1^1^1^1^1^1^1^1^1^1^2.)
}



//------------------------------------------------
// 全体の調整
//------------------------------------------------
TR(1)  V(105) REV(50) CHO(30)
TR(11) V(105) REV(50) CHO(30)
TR(2)  V(100) REV(60) CHO(20)
TR(3)  V(82)  REV(110) CHO(50)
TR(4)  V(105) REV(40) CHO(30)
TR(5)  V(105) REV(40) CHO(30)
TR(6)  V(108) REV(50) CHO(20)
TR(7)  V(109) REV(60) CHO(40)
TR(8)  V(110) REV(20) CHO(0)
TR(9)  V(110) REV(20) CHO(0)
TR(12) V(110) REV(20) CHO(0)
TR(13) V(110) REV(20) CHO(0)
TR(14) V(110) REV(20) CHO(0)
TR(15) V(110) REV(20) CHO(0)
TR(16) V(110) REV(20) CHO(0)
TR(10) V(115) REV(50) CHO(0)


//------------------------------------------------
// テンポ
//------------------------------------------------
INT T = 200
Tempo=(T)


//------------------------------------------------
// キー
//------------------------------------------------
INT KEY=3

Key(KEY)                    // 全体のキー
TR(10) TrackKey(KEY * -1)   // リズムトラックの調整用、Keyの符号を逆にしたものをセットしておく



INT LOOP = 2


//------------------------------------------------
// MML
//------------------------------------------------

//------------------------------------
// Track 1 : 
//------------------------------------
TR(1) CH(1) P(117)
@36 v100
M.onNoteWave(0,70,!1..)
FineTune(68)

 [8 r1]

 o2 l8 q99

 f1^1^1^1
 d-1^1^1^1
 f1^1>c4&!8f2 c2<a-2f4
 d-1^1 a-4&!8>d-2<b-2g2e-4

 [2
  [2 [3 f2] f4>f4<]
  [2 [3 d-2] d-4>d-4<]
 ]
 f4r2.
 [6 r1]
 r2.e-b-
[(LOOP)
[2
 v(MML(v)-20) q80
 [4
  [2 [3 v(MML(v)+30) f4  v(MML(v)-30) f4 : f4 ]]
  [2 [3 v(MML(v)+30) d-4 v(MML(v)-30) d-4 : d-4 ]]
 ]

 v(MML(v)+20)
 [2
  ffrr rrrr rrrr rrrr
  ffrr rrrr rrrr a-2
  d-d-rr rrrr rrrr rrrr
  d-d-rr rrrr rrrr : e-2
 ]
 g2
]

 f4r2.
 [6 r1]
 r2.d-a-
 f4r2.
 r1r1
 r2.f>c<
 d-4r2.
 :
 r1r1r2d-d-b-e-
]
 r1r1r2d-d-b-e-
 fr




//------------------------------------
// Track 11 : 
//------------------------------------
TR(11) CH(11) P(1)
@36 v100
M.onNoteWave(0,70,!1.)
FineTune(60)

 [8 r1]

 o2 l8 q99

 f1^1^1^1
 d-1^1^1^1
 f1^1>c4&!8f2 c2<a-2f4
 d-1^1 a-4&!8>d-2<b-2g2e-4

 [2
  [2 [3 f2] f4>f4<]
  [2 [3 d-2] d-4>d-4<]
 ]
 f4r2.
 [6 r1]
 r2.e-b-
[(LOOP)
[2
 v(MML(v)-20) q80
 [4
  [2 [3 v(MML(v)+30) f4  v(MML(v)-30) f4 : f4 ]]
  [2 [3 v(MML(v)+30) d-4 v(MML(v)-30) d-4 : d-4 ]]
 ]

 v(MML(v)+20)
 [2
  ffrr rrrr rrrr rrrr
  ffrr rrrr rrrr a-2
  d-d-rr rrrr rrrr rrrr
  d-d-rr rrrr rrrr : e-2
 ]
 g2
]

 f4r2.
 [6 r1]
 r2.d-a-
 f4r2.
 r1r1
 r2.f>c<
 d-4r2.
 :
 r1r1r2d-d-b-e-
]
 r1r1r2d-d-b-e-
 fr




//------------------------------------
// Track 2 : 
//------------------------------------
TR(2) CH(2) P(64)
@97 v80

  o5 l8 q99
  P.onNote(127,32,64,96,1)
  
   [2 f4>c4<b->c4<a-4a-g4f4e-4]
   [2 d-4>c4<b->c4<a-4a-g4f4e-4]

   [4
    [2 f4>c4<b->c4<a-4a-g4f4e-4]
    [2 d-4>c4<b->c4<a-4a-g4f4e-4]
   ]

  [2 f4>c4<b->c4<a-4a-g4f4e-4]
  [2 d-4>c4<b->c4<a-4a-g4f4e-4]

[(LOOP)
 [2
  [4
   [2 f4>c4<b->c4<a-4a-g4f4e-4]
   [2 d-4>c4<b->c4<a-4a-g4f4e-4]
  ]

  [2
   [2 f4>c4<b->c4<a-4a-g4f4e-4]
   [2 d-4>c4<b->c4<a-4a-g4f4e-4]
  ]
 ]

  [2
   [2 f4>c4<b->c4<a-4a-g4f4e-4]
   [2 d-4>c4<b->c4<a-4a-g4f4e-4]
  ]
]

  FADEOUT()
  [2 f4>c4<b->c4<a-4a-g4f4e-4]
  [2 d-4>c4<b->c4<a-4a-g4f4e-4]
  f4>c4<b->c4<a-4a-g4f4e-4
  r1


//------------------------------------
// Track 3 : 
//------------------------------------
TR(3) CH(3) P(64)
@11 v64

 o8 l8 q99
 P.onNote(32,96,64,1,127)

  [4 fca-cgcfc]
  [4 fd-a-d-gd-fd-]

  [4
   [4 fca-cgcfc]
   [4 fd-a-d-gd-fd-]
  ]

  [4 fca-cgcfc]
  [4 fd-a-d-gd-fd-]

[(LOOP)
 [2
  [4
   [4 fca-cgcfc]
   [4 fd-a-d-gd-fd-]
  ]

  [2
   [4 fca-cgcfc]
   [4 fd-a-d-gd-fd-]
  ]
 ]

  [2
   [4 fca-cgcfc]
   [4 fd-a-d-gd-fd-]
  ]
]
  FADEOUT()
  [4 fca-cgcfc]
  [4 fd-a-d-gd-fd-]
  [2 fca-cgcfc]


//------------------------------------
// Track 4 : 
//------------------------------------
TR(4) CH(4) P(64)
@81 v110
FineTune(67)

 [8 r1]
 [8 r1]
 [7 r1]

 o6 l8 q95
 EP.onNoteWave(80,127,!16..)
 M.onNoteWave(5,70,!1^1)
 r2.fg

  a-1.b-2 >c1 e-2..d-16c16<
  a-1b-2..a-16b-16> c2..d-24c24<b24b-1

  f2.g4 a-2>e-4.d16d-16 c1<a-2.fg
  a-e-b-e->c<e-b-e- >e-<e->d-<e- >c<e-b-e- >c2.<b-2 a-4g4e-4

  P.onNote(64,127,0,96,32)
  EP.onTime(127,0,!1^2) [8 f4.]
  [4 r1]
  EP(127)
  P(64)
  EP.onNoteWave(80,127,!16..)
  r2 re-fg

[(LOOP)
 [2
  a-1 g4e-2c4
  e-1^2 rfga-
  b-1 >c4<b-2g4
  f1^2 re-fg

  a-1 g4a-2b-4
  >c4.d-c1r< fga-
  b-1 >c4<b-2g4
  f1^2 re-fg

  a-2.b-4>c4d-4c2.
  e-2d-2c4<b-4ga-
  b-2. >c2< b-2 g4
  a-1^2 re-fg

  a-2.>e-2.c2
  f2.e-2d-2< f12g12a-12
  b-2.>c2.d-2
  e-2.c2<b-2 f12g12a-12

  [2
   b-4e-a-4e-g4e-f4e-g4a-4
   b-4e-a-4e-g4e-f4e-g4a-4
   b-4d-a-4d-g4d-f4d-g4a-4
   b-4d-a-4d-g4d-f4d- : g4a-4
  ]
  :
  g e-fg
 ]
 g4 a-4

 f1&!8.>f1
 e-4d-c d-4c<b- >c4<b-a- b-a-g4
 a-2.b-2.>c2 
 <a-2.g2.e-2
 fga-g b-g>c<g b-g>d-<g >c<gb-g 
 >e-2.c2<a-2fg
 a-f>d-2<a-2>e-2c4
 f2.e-f g2.....&!4<b-64
]



//------------------------------------
// Track 5 : 
//------------------------------------
TR(5) CH(5) P(64)
@81 v90
FineTune(61)

 [8 r1]
 [8 r1]
 [7 r1]

 o6 l8 q96
 EP.onNoteWave(80,127,!16..)
 M.onNoteWave(5,70,!1^4.)
 P.onNote(32,96,127,0)
 r.
 r2.fg

  a-1.b-2 >c1 e-2..d-16c16<
  a-1b-2..a-16b-16> c2..d-24c24<b24b-1

  f2.g4 a-2>e-4.d16d-16 c1<a-2.fg
  a-e-b-e->c<e-b-e- >e-<e->d-<e- >c<e-b-e- >c2.<b-2 a-4g4e-4

  EP.onTime(127,0,!1^2) [8 f4.]
  [4 r1]
  EP(127)
  EP.onNoteWave(80,127,!16..)
  r2 re-fg

[(LOOP)
 [2
  a-1 g4e-2c4
  e-1^2 rfga-
  b-1 >c4<b-2g4
  f1^2 re-fg

  a-1 g4a-2b-4
  >c4.d-c1r< fga-
  b-1 >c4<b-2g4
  f1^2 re-fg

  a-2.b-4>c4d-4c2.
  e-2d-2c4<b-4ga-
  b-2. >c2< b-2 g4
  a-1^2 re-fg

  a-2.>e-2.c2
  f2.e-2d-2< f12g12a-12
  b-2.>c2.d-2
  e-2.c2<b-2 f12g12a-12

  [2
   b-4e-a-4e-g4e-f4e-g4a-4
   b-4e-a-4e-g4e-f4e-g4a-4
   b-4d-a-4d-g4d-f4d-g4a-4
   b-4d-a-4d-g4d-f4d- : g4a-4
  ]
  :
  g e-fg
 ]
 g4 a-4

 f1&!8.>f1
 e-4d-c d-4c<b- >c4<b-a- b-a-g4
 a-2.b-2.>c2 
 <a-2.g2.e-2
 fga-g b-g>c<g b-g>d-<g >c<gb-g 
 >e-2.c2<a-2fg
 a-f>d-2<a-2>e-2c4
 f2.e-f g2.....&!4<b-64
]




//------------------------------------
// Track 6 : 
//------------------------------------
TR(6) CH(6) P(48)
@49 v89
M.onNoteWave(0,60,!1^1)

 [8 r1]

 o4 l8 q99

  [2
   EP.onTime(60,127,!1^1^1^1)
   ARP(0,!1^1^1^1,{fa->ce-b-<})
   EP.onTime(60,127,!1^1^1^1)
   ARP(0,!1^1^1^1,{fa-b->d-b-<})
   EP.onTime(60,127,!1^1^1^1)
   ARP(0,!1^1^1^1,{fa->ce-b-<})
   EP.onTime(60,127,!1^1^1^1)
   ARP(0,!1^1^1^1,{a-b->d-f>c<<})
  ]

  [8 r1]

[(LOOP)
 [2
  EP(127)
  [2
   y64,1; ARP(0,!1^1^1^1,{fa->ce-<}) r-1^1 >f1g1< y64,0;
   y64,1; ARP(0,!1^1^1^1,{b->d-fa-<}) r-1^1 >b-1g1< y64,0;
   y64,1; ARP(0,!1^1^1^1,{a-b->cf<}) r-1^1 >g1a-1< y64,0;
   y64,1;  ARP(0,!1^1^1^1,{a->d-fb-<}) r-1^1 >>c1<a-1< y64,0;
  ]

  [8 r1]
  EP.onTime(70,127,!2...) 'f1c1'
  EP.onTime(70,127,!2...) 'g1e-1'
  EP.onTime(70,127,!2...) 'a-1f1'
  EP.onTime(70,127,!2...) '>c1<a-1'
  EP.onTime(70,127,!2...) 'a-1f1'
  EP.onTime(70,127,!2...) 'b-1g1'
  EP.onTime(70,127,!2...) '>d-1<a-1'
  EP.onTime(70,127,!2...) '>e-1c1<'
  EP(127)
 ]

 [8 r1]
 >'a-2f2' 'g2e-2' 'f2d-2' 'e-2c2'
 'd-f'<a->'e-g'<a- >'fa-'<a->'gb-'<a-> 'a-2f2' 'g2e-2'
 'f2a-2' 'e-2g2' 'd-2f2' 'e-2g2'
 cfe-f d-gfg e-a-ga- fb-a-b- r-1^1
 <a->d-cd- <a->e-d-e- <a->fe-f <a->gfg<
]



//------------------------------------
// Track 7 : 
//------------------------------------
TR(7) CH(7) P(80)
@59 v75
M.onNoteWave(0,50,!1)

 [8 r1]

 o5 l8

  r1 r2.q50 [2 'e-c']
  q90 'g2..e-2..'r 'a-4.f4.'r'b-2g2'
  r1 r2.q50 [2 'a-e-']
  q90 'b-2..g2..'r 'a-4.f4.'r'g2e-2'

  r1 r2.q50 [2 'e-a-']
  q90 'g2..b-2..'r 'a-4.f4.'r 'g2e-2'
  r1 r2.q50 [2 'a->c<']
  q90 'b-2..>d-2..<'r '>c4.<a-4.'r'b-2g2'

 v(MML(v)+5)
 [2
  r2.e-b-'>c2<a-2'>'e-4.c4.' d16d-16<
  '>c1..<a-1..'r4
  r2.fb- 'b-2>d-2<' '>e-2c2<'
  '>f1..d-1..<'r4
 ]

 [8 r1]


[(LOOP)
  [16 r1]

 v(MML(v)+10)
 r1 r2. q50 [2 'fc']
 q90 'g2.e-2.' q50 [2 'fd-'] q90 'a-2.f2.' r4
 r1 r2. q70a-b-
 '>c4<a-4'b-a- 'b-g'a-'>e-4<a-4' q90 '>c2.<a-2.'r4
 r1 r2. q50 [2 'fc']
 q90 'g2.e-2.' q50 [2 'fd-'] q90 'a-2f2''b-2g2'
 'a-1f1''b-2g2''>c2<a-2'
 v(MML(v)-10)
 r4'>e-1.c1.<b-1.'r4

 [2
  v(MML(v)+12)
  r2g2 f4.r >c4.<b-16a-16
  g1^1
  r2g2f4.r>d-4.c16d-16
  e-2..r d-1<

  r2'g2e-2' 'f4.d-4.'r '>c4.<a-4.'b-16a-16
  'g1^2..e-1^2..'r
  r2'g2e-2''f4.d-4.'r '>d-4.<a-4.>'c16d-16
  'e-2..<b-2..>'r 'd-1<b-1'
  v(MML(v)-12)
  :
  v(MML(v)+8)
  r1 g4.f24f+24g24 a-2 b-4.>c<b-1 g2
  a-2.>c4 e-2..d16d-16 c1<g1
  r2a-4b-4>c4.<b16b-16a-2
  >e-2.d-4 c2<a-2
  b-1a-2g2
  f1r2c2
  v(MML(v)-8)

  v(MML(v)+5)
  r4 'g2c2' 'e-4.c4.'d16d-16 'c2<a-2>' q50 [2 'fc']
  q90 'g2.e-2.' q50 [2 'fd-'] q90 'a-2f2' 'e-4g4' ga-
  'b-2.f2.' 'a-2.f2.' 'g4e-4' q70a-b-
  '>c4<a-4'b-a- 'b-g'a-'>e-4<a-4' q90 '>c2.<a-2.'r4
  r4'g4.e-4.'a-16a16 'b-2g2' 'a-2f2' q50 [2 'fc']
  q90 'g2.e-2.' q50 [2 'fd-'] q90 'a-2f2''b-2g2'
  'a-2.f2.' ga- 'b-4.g4.' g '>c2<a-2'
  v(MML(v)-5)
  'a-e-'r '>e-1.c1.<b-1.'r4
 ]

 [8 r1]
 [7 r1]
 q90
 EP.onTime(70,127,!2..)
'g1e-1c1'
 EP(127)
]




//------------------------------------
// Track 8 : 
//------------------------------------
TR(8) CH(8) P(64)



//------------------------------------
// Track 9 : 
//------------------------------------
TR(9) CH(9) P(64)



//------------------------------------
// Track 12 : 
//------------------------------------
TR(12) CH(12) P(64)



//------------------------------------
// Track 13 : 
//------------------------------------
TR(13) CH(13) P(64)



//------------------------------------
// Track 14 : 
//------------------------------------
TR(14) CH(14) P(64)



//------------------------------------
// Track 15 : 
//------------------------------------
TR(15) CH(15) P(64)



//------------------------------------
// Track 16 : 
//------------------------------------
TR(16) CH(16) P(64)




//------------------------------------
// Track 10 : ドラム系
//------------------------------------
TR(10) CH(10)
// マクロ定義
// b = bass / s = Snare / S = Rim
$b{n36,} $s{n38,} $S{n37,}
// h = HH Close / f = HH foot close / o = HH Open
$c{n42,} $f{n44,} $o{n46,}
// e = Crash / j = Ride / t = Ride Bell / d = China / i = Splash / y = Crash2 / u = Ride2
$e{n49,} $j{n51,} $t{n53,} $d{n52,} $i{n55,} $y{n57,} $u{n59,}
// q = High Tom / a = High-Middle / z = Low-Middle / w = Low / x = Floor high / g = Floor low
$q{n50,} $a{n48,} $z{n47,} $w{n45,} $x{n43,} $g{n41,}
// p = Crap / k = Cowbell / m = Tambourine / n = ?? / j = ??
$p{n39,} $k{n56,} $m{n54,} $n{n75,}

@1,90,1

Rhythm {
  
  l8
  [4
   [6 v100 c v60c v60c16c16 v80c v60c] c o
  ]

  [2
   [6 v100 c v60c v60c16c16 v80c v60c] c o
   r-1^1^1^1
   v80 brrr rrrr rrrr rrrb brrr rrrb rrbr rbrr
  ]
  r-2 v90 ssss

  [2
   v127 e4 r-4
   [2
    [6 v100 c v60c v60c16c16 v80c v60c] c o
    r-1^1^1^1
    :
    v80 brrr brrr brrr brrr brrr brrr brrr brrb r-2 v90 s4rr
   ]
   :
   v80 brrr brrr brrr brrr brrr brrr brrr brrr r-2 v90 s4v80ss
  ]
  v80 brrr brrr brrr brrr brrr brrr brrr brrb r-1 rv90s4v40s v90 s64v70s16..sv80ss

  v127 'e1y1'
  r-1
  [2
   v80 brrr rrrr 
   v80 rrrr rrbr
   :
   v80 brrr rrrr
   v80 rrrr rrbr
   v110 d1 r-1
  ]
  v80 brrr rrbr
  v80 brrr brrr r-1 v60's4w4'  v70 [2 'sw']  v80[2 'sw']  v90[2 'sw']
}

[(LOOP)
Rhythm {
[2
 [2
  [2
   v80 brbb rrrr bbrb16b16 rrrr      r-1^1 v90 r2s2r2s2 r-1^1 v127 e4 r-4 [4 [2 v100 c v60 : c] : c16c16 ] o
   v80 brbb rrrr bbrb rrrb           r-1^1 v90 r2s2r2s2 r-1^1 [4 [2 v100 c v60 : c] : c16c16 ] o
   v80 brbb rrrr bbrb16b16 rrrr      r-1^1 v90 r2s2r2s2 r-1^1 [4 [2 v100 c v60 : c] : c16c16 ] o
   :
   v80 brb16b16b rrrr bbrb16b16 rbrb r-1^1 v90 r2s2r2s2 r-1^1 [3 [2 v100 c v60 : c] c16c16 ]  v100 c v60 c c16c16 o
  ]
  :
  v80 brb16b16b rrrr brrb16b16 rbrr r-1^1 v90 r2s2rs4v60s v100 qqaz l8 r-1^1 [3 [2 v100 c v60 : c] c16c16 ]  v100 c v60 c c16c16 o
 ]
 v80 brb16b16b rrrr brrb16b16 rbrr r-1^1 v90 r2s2rs4v60s v90 s64s16..sss l8 r-1^1 [3 [2 v100 c v60 : c] c16c16 ]  v100 c v60 c c16c16 o

 [2
  v80 bbrr rrrr rrrr brrr r-1^1 rrrr v90 s4rr rrrr rrs64s16..r                       r-1^1 v127 y4 r-4 [4 v80t4 v100u4]
  v80 bbrr rrrr rrrr rrrr r-1^1 rrrr v90 s4rv70s v100 q64a16..rra64z16.. rrz64w16..r r-1^1 [4 v80t4 v100u4]
  v80 bbrr rrrr rrbb rrrr r-1^1 rrrr v90 s4rr rrrr rrs64s16..r                       r-1^1 [4 v80t4 v100u4]
  :
  v80 bbrr rrrr rrrr rrrr r-1^1 rrrr v90 s4rv70s v100 q64a16..qra64z16.. arz64w16..z r-1^1 [4 v80t4 v100u4]
 ]
 v80 bbrr rrrr brrr brbb r-1^1 rr v90 s64v80s...  rv90s4v70s v100 qqaa zzww r-1^1 [4 v80t4 v100u4]
]

 v127 'e4y4' r-4
 [2
  [2
   [6 v100 c v60c v60c16c16 v80c v60c] c o
   r-1^1^1^1
   v80 rrrr brrr rrrr brrr rrrr brrr rrrr brrr
  ]
  :
  r-2 v90 srss
 ]
 r-1^1 v100 rq64q16..qq a64a16..aaz z64z16..z v90s64s16..s ssss

}
]

Rhythm {
 v127 d4
}

