;========================================
;=			SubTracks					=
;========================================

	#define VERSION 1

	;1. Sonic 3 Prototype
	;2. Sonic 3 PC Version

;========================================
;=			AddMusic Headers			=
;========================================

	#amk 2

;========================================
;=			SPC Generator				=
;========================================

#SPC
{
	#game "Sonic 3 & Knuckles"
	#title "Launch Base 2"
	#comment "from Sonic 3 PC Collection"
}

;========================================
;=			Global Controls				=
;========================================

	w160 t53

;========================================
;=			Remote Commands				=
;========================================

	(!900)[$f4$09]		;Instrument Reset
	(!901)[$ed$0f$da]	;Note Off 1
	(!902)[$ed$7c$fd]	;Note Off 2

;========================================
;=			Instrument Library			=
;========================================

#Instruments
{
	@13	$FE $E0 $7F $06 $00
	@4  $FC $EC $7F $03 $00
	@1  $FC $EC $7F $03 $00
	@14 $FF $F3 $7F $03 $80
	@3  $FC $FC $7F $06 $00
	@3  $FC $FA $7F $06 $00
	@0  $FE $F8 $7F $03 $00
	@21 $00 $00 $7F $03 $00
	@29 $FE $F6 $7F $03 $0D
	@22 $FE $E0 $7F $06 $00
	@29 $DF $F9 $7F $03 $00
	@0  $FC $EC $7F $03 $00
}

;========================================
;=			Instrument Macros			=
;========================================

;===Patch
	"@Organ=	@30 v140 y10 q5f $ee $00"
	"@Organ2=	@30 v140 y10 q5f $ee $17"
	"@Brass=	@31 v140 y10 q5f $ec $00 $02 $01 (!900,-1) (!902,3)"
	"@Brass2=	@32 v200 y10 q5f $ec $00 $02 $01 (!900,-1) (!902,3)"
	"@Brass3=	@41 v200 y10 q5f $ec $00 $02 $01 (!900,-1) (!902,3)"
	"@Bass=		@33 v255 y10 q5f (!900,-1) (!901,3) $fa $03 $40"
	"@BG=		@34 v220 y10 q5f"
	"@BG2=		@35 v220 y10 q6f"
	"@BG3=		@36 v220 y10 q6f"
	
;===Drums

	"@KI=@37 o4c"	;Kick Drum
	"@SN=@38 o4c"	;Snare
	"@HT=@39 o4c"	;HiTat
	"@HL=@39 o4c"	;HiTat
	"@TM=@40 o3f"	;Tom Medium
	"@TL=@40 o3c"	;Tom Low
	
;========================================
;=				Echo Setup				=
;========================================

	$ef $f6 $20 $e0
	$f1 $05 $30 $02
	$f5 $7f $00 $00 $00 $00 $00 $00 $00

;========================================
;=				Extras					=
;========================================

	"Channel # = #"


;================================================================
;================================================================
;= 						Sequence Start							=
;================================================================

;========================================
	Channel #7;							=
;========================================

	$f4$02/
	@Organ l16 [
	o3ega>cec<ag ega>cec<ag
	o3dfa+>dfd<a+f r >a8.frdr ]3
	o3cdgd dg>c<g g>cdc cdgd
	o3dgbg b>dgd r b8. gr8. [
	
	o3dfga+>d<a+gf dfga+>d<a+gf
	o3cd+g+>cd+c<g+d+ r >g8.d+rcr]3
	
	o2a+>cfc cfa+f fa+>c<a+ a+>cfc
	o3cfaf a>cfc r a8. fr8.
	
	(764)[o3 a+a+fa+ r8. >f8d8.] <f4
	o3 a+a+ga+ r8. >g8d+8.<a+4
	(764) f8
	   g8.gegr<g>cegeg>ceceg  
	   
	(764) < f4
	(764) f8a+8
	   ffcfr8.     >c8<g8. e8>c8<
	   bbgbrb>ddr<defgab>d [[

	(763)[	o3 a+a+gra+a+]gr8>a+8.a+ra+r ]]3
	(763) 	<fr8>a+8.a+ra+r
	(763) 	<gr8>f8.g+rg+r
			o3 g+g+d+r g+g+d+ r8>f+8.brbr
	
	o4 d+8dr <a+8>f8er c8g8f+r d8g+8gr d+8f+8.rf8.r 
	
	[[ (763) 	<g r8>a+8.a+ra+r
	o4 cc<g+r>cc<g+r8>>c8.crcr ]]2
	
;========================================
	Channel #1;							=
;========================================

	/ [ @Organ2 l16
	o3ega>cec<ag ega>cec<ag
	o3dfa+>dfd<a+f @Organ r >f8.dr<a+r ]3
	@Organ2
	o3cdgd dg>c<g g>cdc cdgd
	o3dgbg b>dgd r @Organ g8. dr8.
	
	@Organ2
	[ [[o3dfga+>d<a+gf]]2
	o3cd+g+>cd+c<g+d+ r @Organ >d+8.cr<g+r]3
	
	@Organ2
	o2a+>cfc cfa+f fa+>c<a+ a+>cfc
	o3cfaf a>cfc r @Organ f8. cr8.
	
	(762)[o3 ffdf r8. >d8<f8.]d4
	o3 ggd+g r8. >d+8<a+8.g4
	(762)d8
	e8.ece r<eg>ceceg>c<g>ce
	   
	(762) < d4
	(762) d8g8
	   cc<a>cr8.e8c8.<g8>e8
	   ggdg rgbb r<b>cdefga[[

	(761)[o3 ggd+r ggd+ r8] >g8.grgr ]]3
	o3 ffdrffd    r8>f8.frfr
	(761) c+8.frfr
	o3 d+d+crd+d+cr8>d+8.f+rf+r
	
	o3 a+8ar f8>c8<br g8>d8c+r<a8>d+8dr<a+8>d+8.rd8.r [
	
	o3 ggd+r ggd+ r8>g8.grgr
	o3 g+g+d+r g+g+d+ r8>g+8.g+rg+r ]2
	
;========================================
	Channel #2;							=
;========================================
	
	#if VERSION == 1
	/ @Brass $de $20 $0C $30
	o4 l4
	cg8.>c16r16<g8.>l16cr<grl4
	a+a8.f16r4.a8 g16r8.g8.c16 r1r4 <a+8>d8
	cg8.>c16r16<g8.>l16cr<grl4
	a+a8.f16r4.a8 g2.. q7f g16c16d2. q5f r8 <g16a16
	[o3 a+4 > f8. a+16 r16 f8. a+16 r16 f16 r16
	   g+4 g8. d+16 r4. g8] f16 r8. f8. < a+16 r1r4 g8g+8
	* > f2.. q7f f16<a+16>c2.. q5f r8
	@Brass2 l16
	o5 f4a+8.f16r16d16f8a8f8
	   a+4a8.grf8.f8g8
	   arfrdrf4drfrg1r8
		f4a+8.f16r16f16g8a8f8
	o6 d4c8.<a+rfgaa+8>c8<a4.g16r16g1r<
	@Brass q7f t55
	defgab>d
	@Brass t52
	(760)[d+8r8d+8.d+rd+d+8d+8d+8]
	d+rfrgrd+4.c4
	d+8r8d+8.d+rd+d+8d+8f8
	g8f8d8<a+2^8>
	(760)
	d+rfrgrd+4.r4
	d+d+d8r8 ffe8r8 ggf+8r8 g+g+g8r8 b4 a+4
	d+1.^r d+fgfd+d d+4. < a+8a+2 > c8c8d8d+8r8f4.
	#endif
	
	#if VERSION == 2
	/ @Brass $de $20 $0C $30
	o4 l4
	(844)[cg8.g16r16g8.l16grgrl4]
	a+a8.f16r4.a8 g16r8.g8.g16 r1r4 <a+8>d8
	(844)
	a+a8.f16r4.a8 g2.. q7f g16c16d2. q5f r8 <g16a16
	[o3 a+4 > f8. f16 r16 f8. f16 r16 f16 r16
	   g+4 g8. d+16 r4. g8] f16 r8. f8. f16 r1r4 < g8g+8
	* > f2.. q7f d+16e16f2.. q5f r8
	@Brass3 l16
	o5 f4a+8.>d4r16<a+16r16>d+16r16
	   <a+4a8.g8f4..r4. f8d4f8g1r8
	o5 f4a+8.>d4r16<a+8r8>d4c8.<a+8f16g16a16a+8>c8<
		a4.g16r16g1r<
	@Brass q7f 
	defgab>d
	@Brass 
	(760)[d+8r8d+8.d+rd+d+8d+8d+8]
	d+rfrgrd+4.c4
	d+8r8d+8.d+rd+d+8d+8f8
	g8f8d+8<a+2^8>
	(760)
	d+rfrgrd+4.r4
	d+d+d8r8 ffe8r8 ggf+8r8 g+g+g8r8 b4 a+4
	d+1^1 d+4. < a+8a+2 > c8c8d8d+8r8f4.
	#endif

;========================================
	Channel #3;							=
;========================================

	/ @Bass l8
	[
	o2 arar8.a16aar 
	a+ra+r8.a+16a+a+r ]3
	(300)[ grgr8.g16ggr ]2 [[
	(300)
	g+rg+r8.g+16g+g+r ]]3
	[ frfr8.f16ffr ]2
	drdr8.d16ddr
	(759)[d+rd+r8.d+16d+d+r]
	(701)[a+ra+r8.a+16a+a+r]
	(758)[o3crcr8.c16ccr]
	o2  drdr8.d16ddr
	(701)
	(758)2 <
	(759)
	> g+rg+r8.g+16g+g+r
	(759)
	a+ra+r8.a+16a+a+r
	>d+rd+r8.c+16c+c+r
	crcr8.<b16bbr
	a+8a4 > c8<b4 > d+8d4 f8e4 f+4f4<
	(759)4

;========================================
	Channel #4;							=
;========================================
	
	/ @BG l16 o4 [[
	r8ee r8ee rere erer
	(757)[r8dd r8dd rdrd drdr] ]]3 
	(757)2 [[
	(757)
	(756)[r8cc r8cc rcrc crcr] ]]3 
	(756)2
	@BG2
	(755)[o3dd>d<d>d<dd>dr<d>d<ddd>d<d]
	o3d+d+>d+<d+>d+<d+d+>d+r<d+>d+<d+d+d+>d+<d+
	(755)
	o3ee>e<e>e<ee>er<e>e<eee>e<e
	(755)
	o3ff>f<f>f<ff>fr<f>f<fff>f<f
	o3cc>c<c>c<cc>cr<c>c<ccc>c<c
	o2gg>g<g>g<gg>gr<g>g<ggg>g<g
	
	@BG3 l8 
	(754)[o3     d+  a+ > f > d+ a+ d+ < f  < a+]
	(753)[o3     d+  a+ > g > d+ a+ d+ < g  < a+]
	(754)
	o3     d   a+ > f > d  a+ d  < f  < a+

	o3     d+  a+ > f > d+ 
	o3	   r d+ g+ > d+
	o3     c g+ > c g+
	o3	   r d+ b > f+
	o4	d+d<a+>c<bg>gf+dd+d<a+>g+4g4
[[  (754)
	(753) ]]2
	

;========================================
	Channel #6;							=
;========================================
	
	/ @BG l16 o3 [[
	(752)[r8gg r8gg rgrg grgr]
	(751)[r8ff r8ff rfrf frfr] ]]3
	(752)2 [[
	(751)
	r8d+d+ r8d+d+ rd+rd+ d+rd+r]]3
	(751)2
	@Organ l16
	(750)[o4dd<a>dr8.<a+8a+8.a4]
	o4d+d+<a+>d+r8.<a+8g8.d+4
	o4dd<a>dr8.<a+8a+8.a8>
	c8.c<g>cr<ceg>c<g>cegeg>c
	(750)
	o4dd<a>dr8.<a+8a+8.a8>d8<
	aafar8.g8e8.c8g8dd<b>drdggrgab>cdef
	@BG3 l8 r16 
	(749)[o3 f > d+   a+> f  f <+a+   d+ < f]
	(748)[o3 g > d+   a+> g  g <+a+   d+] < g
	(749)
	o3 f > d    a+> f  f <+a+   d  < f
	
	o3 f > d+   a+> f  
	o3 c+ f > c+ f
	
	o3 d+ a+ > d+ > c
	o2 b > f+ > d+ b
	[r1]2
	(749)
	(748) < g
	(749)
	(748) g16

;========================================
	Channel #5;							=
;========================================
	/ $fa $03 $40 [[
	(601)[@KI4 @SN8. c16 @KI16 @SN8. c4]
	(602)[@KI4 @SN4 @KI4 @SN8 c16 c16]
	@KI4 @SN8. c16 @KI16 @SN8. c8 @TM16 f16
	@KI4 @SN8 @TL16 c16 @KI4 @SN16 c16 c16 c16 ]]4 [[
	(600)[@KI4 @SN8. c16 @KI16 @SN8. c4]
	(603)[@KI4 @SN4 @KI4 @SN8 c16 c16]
	(600)
	@KI4 @SN4 @KI4 @SN16 c16 c16 c16 ]]3
	@KI4 @SN8. c16 @KI16 @SN8. c4 
	(603)
	@SN8 c8 c8 @KI8 @SN8 c8 c4
	@KI4 @SN8. c16 @KI16 @SN8. [[c16]]4
	(601)
	(602)
	(601)
	@KI4 @SN4 @KI8 @SN16 c16 c16 c16 c16 c16 
;========================================
	Channel #0;							=
;========================================
	/
	[@HT8 @HL16 @HL16]99

	@HT8 @HL8
	[[ *7 @HT8 @HL8 ]]5
	*4