
Int LOOP=3
Int VOCALOID=1
Int BACK=1

Tempo 150

Function RandR(Int MIN, Int MAX) {
	Str MML="r"
	IF(RANDON=1) {
		RMML=RMML+"r"
		Int VALUE=Random(0,10)
		IF(VALUE<5) {
			MML=MML+"-"
		} ELSE {
			RMML=RMML+"-"
		}
		Str RAND=Random(MIN,MAX)
		MML=MML+RAND
		RMML=RMML+RAND
//		Print(MML)
		MML
	}
}

	Function RandV(Int MIN, Int MAX) {
		Str MML="v"
		MML=MML+Random(MIN,MAX)
		MML
	}

#PEDALON={Sub {r16y64,127}}
#PEDALOFF={r-32 y64,0 r32}

Function LoopPlay(Str Mml) {
	Str _MML

	For (Int i = 1; i <= LOOP + LOOPDEFS; i++) {
		_MML=_MML + #STR(Mml)
	}
	_MML
}


#intro={
	#aea={'ae>a<'}
	#ada={'ad>a<'}
	#beb={'be>b<'}
	[l6 RandV(100,110) #aea RandV(80,90) l12#aea [3 r6 RandV(80,100) #aea]]
	[l6 RandV(100,110) #ada l12 RandV(80,90) #ada [3 r6 RandV(80,100) #ada]]
	[l6 RandV(100,110) #aea l12 RandV(80,90) #aea [3 r6 RandV(80,100) #aea]]
	q100 #PEDALON r6 RandV(70,80) #beb
	[7 RandV(90,100) #beb RandV(80,90) #beb RandV(70,80) #beb] #PEDALOFF
}

Function Vibrate(delay1, depth1, delay2, depth2, delay3, depth3, delay4, depth4, delay5, depth5) {
	Int	NowTime;
	NowTime = Time;
	IF(delay1=0) {
		Modulation(depth1)
	} ELSE {
		Modulation.onNoteWave(0, 0, delay1 /2, 0, depth1, delay1/2)
		IF(delay2<>0) {
			Time=NowTime+delay1
			Modulation.onNoteWave(depth1, depth2, delay2)
			IF(delay3<>0) {
				Time=NowTime+delay1+delay2
				Modulation.onNoteWave(depth2, depth3, delay3)
				IF(delay4<>0) {
					Time=NowTime+delay1+delay2+delay3
					Modulation.onNoteWave(depth3, depth4, delay4)
					IF(delay5<>0) {
						Time=NowTime+delay1+delay2+delay3+delay4
						Modulation.onNoteWave(depth4, depth5, delay5)
					}
				}
			}
		}
	}
	Time=NowTime
}

#melody={
		o5
		v127

		Vibrate(!4,70)
		[
			p%.onTime(0,1500,!4,1500,-500,!2)
			e2^6e12f#6e12
			g6f#4
			p%.onTime(0,-1500,!4,-1500,100,!2)
			e12^4.r8
		]
		[
			p%.onTime(0,1700,!4,1700,-500,!2)
			a2^6a12b6a12
			b#6b4
			p%.onTime(0,-1500,!4,-1500,300,!2)
			a12^4.r8
		]
		p%.onTime(0,1500,!4,1500,-500,!2)
		e2^6e12f#6e12
		g6f#4e4d4
		p%.onTime(0,-1500,!4,-1500,1500,!2,1500,-1500,!2)
		e12^1^2.r4

		p%.onTime(0,1300,!4,1300,-500,!2)
		e2^6e12f#6e12
		g6f#4
		p%.onTime(0,-1000,!4,-1000,500,!2)
		e12^4.r8

		p%.onTime(0,1700,!4,1700,-500,!2)
		a2^6a12b6a12
		b#6b4
		p%.onTime(0,1000,!4,1000,300,!2)
		a12^4.r8

		p%.onTime(0,1700,!4,1700,-500,!2)
		b2^6b12>c#6<b12
		p%.onTime(0,1000,!24,1000,-4000,!16)
		>d6&c#4<
		b4g#4
		p%.onTime(0,1000,!4,1000,-300,!2)
		a12^1^2.r4
}

IF(BACK=1) {
	TR(1)
		o4
		q95v100
		@(DistortionGuitar)
		#intro

		LoopPlay(
			#melody
		)
}

#AA={RandV(90,100) RandV(90,100) rra RandV(90,100) rrr RandV(90,100) arr RandV(90,100) rrr}
#BA={RandV(90,100) RandV(90,100) rrb RandV(90,100) rrr RandV(90,100) brr RandV(90,100) rrr}
#CA={RandV(90,100) RandV(90,100) rrc# RandV(90,100) rrr RandV(90,100) c#rr RandV(90,100) rrr}
#DA={RandV(90,100) RandV(90,100) rrd RandV(90,100) rrr RandV(90,100) drr RandV(90,100) rrr}
#EA={RandV(90,100) RandV(90,100) rre RandV(90,100) rrr RandV(90,100) err RandV(90,100) rrr}
#FA={RandV(90,100) RandV(90,100) rrf# RandV(90,100) rrr RandV(90,100) f#rr RandV(90,100) rrr}
#GA={RandV(90,100) RandV(90,100) rrg# RandV(90,100) rrr RandV(90,100) g#rr RandV(90,100) rrr}
#AB={RandV(90,100) RandV(90,100) arr RandV(90,100) rra RandV(90,100) rrr RandV(90,100) rrr}
#BB={RandV(90,100) RandV(90,100) brr RandV(90,100) rrb RandV(90,100) rrr RandV(90,100) rrr}
#CB={RandV(90,100) RandV(90,100) c#rr RandV(90,100) rrc# RandV(90,100) rrr RandV(90,100) rrr}
#DB={RandV(90,100) RandV(90,100) drr RandV(90,100) rrd RandV(90,100) rrr RandV(90,100) rrr}
#EB={RandV(90,100) RandV(90,100) err RandV(90,100) rre RandV(90,100) rrr RandV(90,100) rrr}
#FB={RandV(90,100) RandV(90,100) f#rr RandV(90,100) rrf# RandV(90,100) rrr RandV(90,100) rrr}
#GB={RandV(90,100) RandV(90,100) g#rr RandV(90,100) rrg# RandV(90,100) rrr RandV(90,100) rrr}

IF(VOCALOID=1) {
	TR(2)

		l12
		o4
		#AA #AB #AA #AB #AA #AB
		r6 [22 RandV(90,100) b]


		LoopPlay(
			[#AA #AB]
			[#AA #AB]
			#AA #AB
			#BA #BB
			#AA #AB
			#AA #AB
			#BA #BB
			#AA #AB
		)
	v110 arrrrarrrrrq100b1.
		
	TR(3)
		l12
		o4
		#EA #EB #FA #FB #EA #EB
		r6 [22 RandV(90,100) g#]

		LoopPlay(
			[#EA #EB]
			[#FA #FB]
			#EA #EB
			#GA #GB
			#EA #EB
			#FA #FB
			#GA #GB
			#EA #EB
		)
	v110 errrrerrrrrq100e1.
		
	TR(4)
		l12
		o4
		#CA #CB #DA #DB #CA #CB
		r6 [22 RandV(90,100) e]

		LoopPlay(
			[#CA #CB]
			[#DA #DB]
			#CA #CB
			#EA #EB
			#CA #CB
			#DA #DB
			#EA #EB
			#CA #CB
		)
	v110 c#rrrrc#rrrrq100c#1.

}
#bintro={
	a>c#ef#
	gf#ec#
	df#ab
	>c<baf#<
	a>c#ef#
	gf#ec#
	eedd
	c#c#<bb
}

IF(BACK=1) {
	TR(9)
		@(FretlessBass)
		o2q95v95
		#bintro

		LoopPlay(
			o2q95v95
			[
				a>c#ef#gf#ec#<
			]
			[
				>df#ab>c<baf#<
			]
			a>c#ef#gf#ec#<
			eg#b>c#dc#<bg#

			a>c#ef#gf#ec#<
			>df#ab>c<baf#<
			>eg#b>c#dc#<bg#
			ac#ef#gf#ec#
		)

	l12arrrrarrrrq100a1.
	
	TR(10)
	v120
	‰¹F(JazzSet)
	‰¹F(BrushSet)
		$B{Sub{RandR(999,1728) RandV(124,127) n(Kick1),16}r}//35
		$s{Sub{RandR(999,1728) RandV(120,127) n(Snare1),16}r}//38
		$h{Sub{RandR(999,1728) RandV(120,127) n(ClosedHiHat),16}r}//42
		$p{Sub{RandR(999,1728) RandV(120,127) n(PedalHiHat),16}r}//44
		$o{Sub{RandR(999,1728) RandV(120,127) n(OpenHiHat),16}r}//46
		$c{Sub{RandR(999,1728) RandV(120,127) n(CrashCymbal1),16}r}//49 or 57
	#r={
		Sub{
			Rythm{o4p6o12o4p6o12}
		}
		Rythm{b4s4b4s4}
	}

	#r1={
		Sub{
			Rythm{c2c2}
		}
		Rythm{[b6[4 s12]]}
	}

	#r2={
		Sub{
			Rythm{o4p6o12o4p6o12}
		}
		Rythm{b4s4b6[4 s12]}
	}

	#r3={
		Rythm{[4 p4]}
	}

	[6 #r]
	[2 #r1]

	LoopPlay(
		Sub{Rythm{c1}}
		[8 #r]
		Sub{Rythm{c1}}
		[4 #r]
		Sub{Rythm{c1}}
		[2 #r]
		Sub{Rythm{c1}}
		[2 #r]
		Sub{Rythm{c1}}
		#r2
		#r3
		Sub{Rythm{c1}}
		#r
		#r2
	)
	l4^12^12
	Rythm{bbb}
}
