//-----------------------------------------------
// strange beats
// (C)Yax
//-----------------------------------------------

TrackName     = {"strange beats"}
Copyright     = {"Yax"}

ResetGM();
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)
}


// 全体の調整
TR(1)  V(110) REV(20) CHO(0)
TR(2)  V(110) REV(20) CHO(0)
TR(3)  V(110) REV(20) CHO(0)
TR(4)  V(110) REV(20) CHO(0)
TR(5)  V(110) REV(20) CHO(0)
TR(6)  V(110) REV(20) CHO(0)
TR(7)  V(110) REV(20) CHO(0)
TR(8)  V(110) REV(20) CHO(0)
TR(9)  V(110) REV(20) CHO(0)
TR(10) V(110) REV(20) CHO(0)


// テンポ
INT T  = 123   // 通常のテンポ

Tempo=(T)


// キー
INT KEY=1

Key(KEY)                    // 全体のキー
TR(10) TrackKey(KEY * -1)   // リズムトラックの調整用、Keyの符号を逆にしたものをセットしておく



//------------------------------------
// Track 1 : 
//------------------------------------
TR(1) CH(1) P(64)
@37,90,1 v100
M.onNoteWave(10,90,!1)

  o3 l16 q70

  r4
  [4
   g8gc8
   d^4
   e8ge8
   f^4
   g8gc8
   d^4
   e8ge8
   <b8.>c d8d>d<
  ]
  b8^8...&!8.d64

  l8
  [2
   [2
    e4.b16b16 agf+
    drd4c+<a a16>c+16
    e4.b16b16 ag>d<
    ara4gf+f+16c+16
   ]

   [2
    <aa16>a16< a>a16e16< a16a16>a
    <gg16>g16< g>g16e16< g16g16>c+
    cc16>c16< c>c16<f+16 c16c16a
    :
    <ff+16>f16< f>f16c16< f16f16>e16<b16>
   ]
   <ff16>f16< f+f+16>f+16< gg16>g16< a16a16>a
  ]

  l16
  [4
   g8gc8
   d^4
   e8ge8
   f^4
   g8gc8
   d^4
   e8ge8
   <b8.>c d8d>d<
  ]
  b8...&!8.d64

  l8
  [2
   e4.b16b16 agf+
   drd4c+<a a16>c+16
   e4.b16b16 ag>d<
   ara4gf+f+16c+16
  ]

  [2
   <aa16>a16< a>a16e16< a16a16>a
   <gg16>g16< g>g16e16< g16g16>c+
   cc16>c16< c>c16<f+16 c16c16a
   :
   <ff+16>f16< f>f16c16< f16f16>e16<b16>
  ]
  <ff16>f16< f+f+16>f+16< gg16>g16< a16a16>a 

  l16
  [4
   g8gc8
   d^4
   e8ge8
   f^4
   g8gc8
   d^4
   e8ge8
   <b8.>c d8d>d<
  ]
  b4^8...&!4^16d64<

  [4
   ggr r>g<g rf+a f+r>f+< a8.
   eer r>e<e rf+a f+r>d< b8d
   ggr r>gb< f+a>d< f+r>f+ d8.<
   bbr r>b<b re>e< ar>f+ ab<f+
  ]
  r1.>

  [4
   g8gc8
   d^4
   e8ge8
   f^4
   g8gc8
   d^4
   e8ge8
   <b8.>c d8d>d<
  ]
  b4.^8...&!2d64
  r2.
  d8e8
  r1


//------------------------------------
// Track 2 : 
//------------------------------------
TR(2) CH(2) P(64)
@3 v100

 o5 l16

 r4
  [4
   [2
    y64,1; cergb   y64,0;
    y64,1; <b>dfa>c< y64,0;
    y64,1; <a>cref   y64,0;
    y64,1; <gb>dfa : y64,0;
   ]
   fdr  y64,0;
  ]
  r4.

 [2
  [2
   a>c+d<grb>d<a8.f+a8.
   g4.f+8g8abe8
   a>c+d<grb>d<a8.f+>c+8.<
   :
   b4.f+8g8>f+ge8<
  ]
  b4.>c+de8f+ge8<

  [2
   ARP(0,!2.,{c+ef+a})
   ARP(0,!2.,{c+ega})
   ARP(0,!2.,{cef+a})
   :
   ARP(0,!2.,{cefa})
  ]
  ARP(0,!4,{efa>c<})
  ARP(0,!4,{df+a>c<})
  ARP(0,!4,{degb})
  ARP(0,!4,{ef+a>c<})
 ]

  [4
   [2 
    y64,1; cergb   y64,0;
    y64,1; <b>dfa>c< y64,0;
    y64,1; <a>creg   y64,0;
    y64,1; <gb>dfa : y64,0;
   ]
   fdr  y64,0;
  ]
  r4

  [2
   a>c+d<grb>d<a8.f+a8.
   g4.f+8g8abe8
   a>c+d<grb>d<a8.f+>c+8.<
   :
   b4.f+8g8>f+ge8<
  ]
  b4.>c+de8f+ge8<

  [2
   ARP(0,!2.,{c+ef+a})
   ARP(0,!2.,{c+ega})
   ARP(0,!2.,{cef+a})
   :
   ARP(0,!2.,{cefa})
  ]
  ARP(0,!4,{efa>c<})
  ARP(0,!4,{df+a>c<})
  ARP(0,!4,{degb})
  ARP(0,!4,{ef+a>c<})

  [4
   [2 
    y64,1; cergb   y64,0;
    y64,1; <b>dfa>c< y64,0;
    y64,1; <a>creg   y64,0;
    y64,1; <gb>dfa : y64,0;
   ]
   fdr  y64,0;
  ]
  r2

  [4
   [2
    [2 ARP(0,!16,{egb>d<})]rrrr  [2 ARP(0,!16,{df+a>c<})]rrrr rrr
    [2 ARP(0,!16,{cegb})]rrrr  [2 ARP(0,!16,{f+ab>d<})] : rrrr rARP(0,!8,{f+ab>d<})
   ]
   r ARP(0,!4,{f+ab>d<})rr
  ]

  r1.

  [4
   [2 
    y64,1; cergb   y64,0;
    y64,1; <b>dfa>c< y64,0;
    y64,1; <a>creg   y64,0;
    y64,1; <gb>dfa : y64,0;
   ]
   fdr  y64,0;
  ]
  r2r8
  r2.
  l8
  'f+ab>d<''gb>de<'


//------------------------------------
// Track 3 : 
//------------------------------------
TR(3) CH(3) P(64)
@9 v70

 o6 l16

 r4
 [2
  [2
   [2 bgec bafd >c<age >c<age >d<bgd] : <b>df
  ]
  fa>d<
 ]
 agf+d<b>d

 [2
  [8 r2..]

  v(MML(v)+30)
  r4e4a4
  c+4f+4b8ag
  f+2e8dc+
  c2< rab>c
  c+4e4a4
  c+4f+4b8ag
  f+2e8f+g
  a1
  v(MML(v)-30)
 ]

 [2
  [2
   [2 bgec bafd >c<age >c<age >d<bgd] : <b>df
  ]
  fa>d<
 ]
 agf+d

  [8 r2..]

  v(MML(v)+30)
  r4e4a4
  c+4f+4b8ag
  f+2e8dc+
  c2< rab>c
  c+4e4a4
  c+4f+4b8ag
  f+2e8f+g
  a1
  v(MML(v)-30)

 [2
  [2
   [2 bgec bafd >c<age >c<age >d<bgd] : <b>df
  ]
  fa>d<
 ]
 agf+d<b>df+a

 <
  [8
   egb> d<bg df+a >c<af+ rrr
   cegbge <b>df+df+a rrr
  ]
  >
 r1.
  
 [2
  [2
   [2 bgec bafd >c<age >c<age >d<bgd] : <b>df
  ]
  fa>d<
 ]
 agf+d<b>df+d<af+
 d4 l24 <b>df+ df+a f+ab abf+ f+8g8
 


//------------------------------------
// Track 4 : 
//------------------------------------
TR(4) CH(4) P(64)
@61 v83
M.onNoteWave(10,90,!2.)

 o5 l16 q90

 r4
  [4
   'c8e8g8'r '<b8>c8e8' r '<b4>d4f4'
   '<a8>c8e8'r '<a8>c8' r '<b4>d4f4'
   'c8e8g8'r '<b8>c8e8' r 'd4f4a4'
   'c8e8a8'r 'c8e8a8'  r 'f8.a8.b8.''<b8>d8.f8.'r
  ]

  r4.

  [2
   [2
    ARP(0,!2..,{c+e})
    ARP(0,!2^8,{df+}) [2 'df+'r]
    ARP(0,!2..,{eg})
    :
    ARP(0,!2^8,{df+}) [2 'df+'r]
   ]
   ARP(0,!2,{ea}) [3 'ef+'r]
   <
   [3 rr'c+e'r]
   [3 rr'eg'r]
   [3 rr'ef+'r]
   [3 rr'cf'r]
   [3 rr'f+a'r]
   [3 rr'ea'r]
   [3 rr'f+a'r]
   >
   cefa df+a>c< egb>d ec<af+
  ]

  [4
   'c8e8g8'r '<b8>c8e8' r '<b4>d4f4'
   '<a8>c8e8'r '<a8>c8' r '<b4>d4f4'
   'c8e8g8'r '<b8>c8e8' r 'd4f4a4'
   'c8e8a8'r 'c8e8a8'  r 'f8.a8.b8.''<b8>d8.f8.'r
  ]

  r4

   [2
    ARP(0,!2..,{c+e})
    ARP(0,!2^8,{df+}) [2 'df+'r]
    ARP(0,!2..,{eg})
    :
    ARP(0,!2^8,{df+}) [2 'df+'r]
   ]
   ARP(0,!2,{ea}) [3 'ef+'r]
   <
   [3 rr'c+e'r]
   [3 rr'eg'r]
   [3 rr'ef+'r]
   [3 rr'cf'r]
   [3 rr'f+a'r]
   [3 rr'ea'r]
   [3 rr'f+a'r]
   >
   cefa df+a>c< egb>d ec<af+

  [4
   'c8e8g8'r '<b8>c8e8' r '<b4>d4f4'
   '<a8>c8e8'r '<a8>c8' r '<b4>d4f4'
   'c8e8g8'r '<b8>c8e8' r 'd4f4a4'
   'c8e8a8'r 'c8e8a8'  r 'f8.a8.b8.''<b8>d8.f8.'r
  ]
  r4 < ef+ga

  [2
   b2... g2...
   a2... f+2.f+ga
   b2...>e2...
   f+2...: e2^8.<ef+ga
  ]
  g2...

  r1.
  [4
   'c8e8g8'r '<b8>c8e8' r '<b4>d4f4'
   '<a8>c8e8'r '<a8>c8' r '<b4>d4f4'
   'c8e8g8'r '<b8>c8e8' r 'd4f4a4'
   'c8e8a8'r 'c8e8a8'  r 'f8.a8.b8.''<b8>d8.f8.'r
  ]
  r2d24d+24e24
  [4 '<b8>d8f+8'r v(MML(v)-20)] v(MML(v)+80)
  
  '<b>df+'r '<b>deg'r



//------------------------------------
// Track 5 : 
//------------------------------------
TR(5) CH(5) P(64)



//------------------------------------
// Track 6 : 
//------------------------------------
TR(6) CH(6) P(64)



//------------------------------------
// Track 7 : 
//------------------------------------
TR(7) CH(7) P(64)



//------------------------------------
// Track 8 : 
//------------------------------------
TR(8) CH(8) P(64)



//------------------------------------
// Track 9 : 
//------------------------------------
TR(9) CH(9) P(64)



//------------------------------------
// Track 10 : ドラム系
//------------------------------------
TR(10) CH(10)
// マクロ定義
// b = bass / s = Snare
$b{n36,} $s{n38,}
// 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,}

@33,90,1
l16
Rhythm {

 v80 brrr r-4 v100qas8 r-4 v80ccv90o8

 [2
  v80 brrbr rbrrr brbrr rbrbr r-1^4 v100 rrrrs rrsrr rrrsr rrsrs r-1^4 v127e v80cccc [2 v100cv80c:c] [2 v100cv80c]c [2 v100cv80 : cc] o
  v80 rbrbr rbbrr brrrb brrrr r-1^4 v100 rrrrs rrsrr rrrsr rrsww r-1^4 v100d v80cccc [2 v100cv80c:c] [2 v100cv80c]c [2 v100cv80 : cc] o
  v80 brr r-8. v100 qas r-8. v80cc v100o
  v80 brrbr rbrrr brbrr rbrbr r-1^4 v100 rrrrs rrsrr rrrsr rrsrs r-1^4 v127e v80cccc [2 v100cv80c:c] [2 v100cv80c]c [2 v100cv80 : cc] o
  v80 rbrbr rbbrr brrrb brrrr r-1^4 v100 rrrrs rrsrr rrrsr rqqaz r-1^4 v100y v80cccc [2 v100cv80c:c] [2 v100cv80c]c [2 v100cv80 : cc] o
  :
  v80 brr r-8. v100 zss r-8. v90coc
 ]
 v80 brr r-8. v100 s64s32.ss r-8. v90cfc

 v80br r-8 v127 'y8e8'
 v80 rrrr r-4 v100 s8ss

 [2
  [2
   v80 brrr rrbr brrr rr r-2.. rrrr v100 s8.v70s rrrr v100 s8 r-2.. v127 e8 v70cc[2 v100crv70cc] v90o8
   v80 bbrr rrbr brrr rr r-2.. rrrr v100 s8rr rrv100 ss8r     r-2.. [3 v100crv70cc] v90o8
   v80 brrr rrbr brrr rr r-2.. rrrr v100 s8.v70s rrrr v100 s8 r-2.. [3 v100crv70cc] v90o8
   :
   v80 bbrr rrbr brrr rr r-2.. rrrr v100 s8rr rrv100 sszz     r-2.. [3 v100crv70cc] v90o8
  ]
  v80 bbrr brrr brrr rr r-2.. v100 rrs8 rrss qqaa zz r-2.. [3 v100crv70cc] v90o8

  [2
   v80 brrb rrrr rrbr r-2. v100 rrrr s8.s rrrr r-2. v127 y v80ccc [2 v100c v80ccc]
   v80 rrbr rrrr brrr r-2. v100 rrrr s8.s rrs8 r-2. [3 v100c v80c:cc] v90o8
   v80 brrb rrrr rrbr r-2. v100 rrrr s8.s rrrr r-2. [3 v100c v80ccc]
   :
   v80 rrbr rrrr bbrr r-2. v100 rrrr s8.s rrs8 r-2. [3 v100c v80c:cc] v90o8
  ]
  v80 brrr brrr brrr brrr r-1 v100 rrss qqaa rrss zzss r-1 v110d4 v80f4f4f4
 ]

 [2
  v80 brrbr rbrrr brbrr rbrbr r-1^4 v100 rrrrs rrsrr rrrsr rrsrs r-1^4 v127e v80cccc [2 v100cv80c:c] [2 v100cv80c]c [2 v100cv80 : cc] o
  v80 rbrbr rbbrr brrrb brrrr r-1^4 v100 rrrrs rrsrr rrrsr rrsww r-1^4 v100d v80cccc [2 v100cv80c:c] [2 v100cv80c]c [2 v100cv80 : cc] o
  v80 brr r-8. v100 qas r-8. v80cc v100o
  v80 brrbr rbrrr brbrr rbrbr r-1^4 v100 rrrrs rrsrr rrrsr rrsrs r-1^4 v127e v80cccc [2 v100cv80c:c] [2 v100cv80c]c [2 v100cv80 : cc] o
  v80 rbrbr rbbrr brrrb brrrr r-1^4 v100 rrrrs rrsrr rrrsr rqqaz r-1^4 v100y v80cccc [2 v100cv80c:c] [2 v100cv80c]c [2 v100cv80 : cc] o
  :
  v80 brr r-8. v100 zss r-8. v90coc
 ]
 v80 brr r-8. v100 s64s32.ss r-8. v90cfc

 v80 brrr r-4 v100 s8ss r-4 v127 'y4e4'

  [2
   v80 brrr rrbr brrr rr r-2.. rrrr v100 s8.v70s rrrr v100 s8 r-2.. v127 e8 v70cc[2 v100crv70cc] v90o8
   v80 bbrr rrbr brrr rr r-2.. rrrr v100 s8rr rrv100 ss8r     r-2.. [3 v100crv70cc] v90o8
   v80 brrr rrbr brrr rr r-2.. rrrr v100 s8.v70s rrrr v100 s8 r-2.. [3 v100crv70cc] v90o8
   :
   v80 bbrr rrbr brrr rr r-2.. rrrr v100 s8rr rrv100 sszz     r-2.. [3 v100crv70cc] v90o8
  ]
  v80 bbrr brrr brrr rr r-2.. v100 rrs8 rrss qqaa zz r-2.. [3 v100crv70cc] v90o8

  [2
   v80 brrb rrrr rrbr r-2. v100 rrrr s8.s rrrr r-2. v127 y v80ccc [2 v100c v80ccc]
   v80 rrbr rrrr brrr r-2. v100 rrrr s8.s rrs8 r-2. [3 v100c v80c:cc] v90o8
   v80 brrb rrrr rrbr r-2. v100 rrrr s8.s rrrr r-2. [3 v100c v80ccc]
   :
   v80 rrbr rrrr bbrr r-2. v100 rrrr s8.s rrs8 r-2. [3 v100c v80c:cc] v90o8
  ]
  v80 brrr brrr brrr brrr r-1 v100 rrss qqaa rrss zzss r-1 v110d4 v80f4f4f4

 [2
  v80 brrbr rbrrr brbrr rbrbr r-1^4 v100 rrrrs rrsrr rrrsr rrsrs r-1^4 v127e v80cccc [2 v100cv80c:c] [2 v100cv80c]c [2 v100cv80 : cc] o
  v80 rbrbr rbbrr brrrb brrrr r-1^4 v100 rrrrs rrsrr rrrsr rrsww r-1^4 v100d v80cccc [2 v100cv80c:c] [2 v100cv80c]c [2 v100cv80 : cc] o
  v80 brr r-8. v100 qas r-8. v80cc v100o
  v80 brrbr rbrrr brbrr rbrbr r-1^4 v100 rrrrs rrsrr rrrsr rrsrs r-1^4 v127e v80cccc [2 v100cv80c:c] [2 v100cv80c]c [2 v100cv80 : cc] o
  v80 rbrbr rbbrr brrrb brrrr r-1^4 v100 rrrrs rrsrr rrrsr rqqaz r-1^4 v100y v80cccc [2 v100cv80c:c] [2 v100cv80c]c [2 v100cv80 : cc] o
  :
  v80 brr r-8. v100 zss r-8. v90coc
 ]
 v80 brr r-8. v100 s64s32.ss r-8. v90cfc
 v80 brrr r-4 v100 rrss
 v80 brrr r-4 v100 ssss r-4 v127 'y4e4'

 [2
  [2
   v80 brb rrr brb rbb rrr r-2... v100 rsr srs rrr srr arw r-2... v127 e v80cc cv100cv80c ccv100c v80ccc v100c v80oc
   v80 bbr brr brr brr rrr r-2... v100  rrs rrs rsr qaz sss r-2... v80coc cv100cv80c coc v100cv80cc v100c v80co
   v80 brb rrr brb rbb rrr r-2... v100  rsr srs rrr srr arw r-2... v127y v80cc cv100cv80c ccv100c v80ccc v100c v80oc
   :
   v80 bbr brr brr brr rrr r-2... v100  rrs rrs rqq aaz zss r-2... v80coc cv100cv80c coc v100cv80cc v100c v80co
  ]
  :
  v80 brr brr brr brr brr r-2... v100  rss rss qss ass zss r-2... v80 [5 f8.]
 ]
 v80 brr brr brr brr brr r-2... v100  q64a32.qq a64a32.aa z64z32.zz www s64s32.ss r-2... v80 [5 f8.]

 v80 brrr rrbr bbrr r-4 v100 rrs64s32.v85s r-2. v127 'e2.y2.'
 v80 brrr brrr brrr r-2. v100 rs64s32.v85ss v100 l24 [2 qazqaz] l16

 [2
  v80 brrbr rbrrr brbrr rbrbr r-1^4 v100 rrrrs rrsrr rrrsr rrsrs r-1^4 v127e v80cccc [2 v100cv80c:c] [2 v100cv80c]c [2 v100cv80 : cc] o
  v80 rbrbr rbbrr brrrb brrrr r-1^4 v100 rrrrs rrsrr rrrsr rrsww r-1^4 v100d v80cccc [2 v100cv80c:c] [2 v100cv80c]c [2 v100cv80 : cc] o
  v80 brr r-8. v100 qas r-8. v80cc v100o
  v80 brrbr rbrrr brbrr rbrbr r-1^4 v100 rrrrs rrsrr rrrsr rrsrs r-1^4 v127e v80cccc [2 v100cv80c:c] [2 v100cv80c]c [2 v100cv80 : cc] o
  v80 rbrbr rbbrr brrrb brrrr r-1^4 v100 rrrrs rrsrr rrrsr rqqaz r-1^4 v100y v80cccc [2 v100cv80c:c] [2 v100cv80c]c [2 v100cv80 : cc] o
  :
  v80 brr r-8. v100 zss r-8. v90coc
 ]
 v80 brr r-8. v100 s64s32.ss r-8. v90cfc
 v80 brrr r-4 v100 rrss
 v80 brrrrr r-4. v100 s64s32.ss swg r-4. v127 'y4.e4.'

 v80 brrr brrr brrb brbr r-1 [3 v100c8v80cc] v127 y8e8


}

