MUSIC PROC ;; Pitch effects ;; @@pitch01 DECLE 0, 0, 0, 0 @@pitch02 DECLE 0, 3, 8, 12 @@pitch03 DECLE 0, 4, 7, 12 @@pitch04 DECLE 0, 6, 9, 12 ;; Envelopes ;; @@env01 DECLE 2 DECLE $FEDC, $BA98, $7654, $3210 DECLE $0000, $0000, $0000, $0000 DECLE $0000, $0000, $0000, $0000 DECLE $0000, $0000, $0000, $0000 @@env02 DECLE 1 DECLE $FFFF, $EEEE, $DDDD, $CCCC DECLE $BBBB, $AAAA, $9999, $8888 DECLE $7777, $6666, $5555, $4444 DECLE $3333, $2222, $1111, $0000 ;; Drums ;; @@drum1 DRUM($380, $10, 0, 1, $F) DRUM($380, $10, 1, 0, $F) DRUM($380, $10, 1, 0, $F) DRUM($580, $1F, 1, 0, $E) DRUM($580, $1F, 1, 1, $D) DRUM($580, $1F, 1, 1, $C) DRUM($580, $1F, 1, 0, $A) DRUM($580, $1F, 1, 0, $8) @@drum2 DRUM($280, $10, 0, 1, $F) DRUM($280, $10, 1, 0, $F) DRUM($280, $10, 1, 0, $F) DRUM($480, $1F, 1, 0, $E) DRUM($480, $1F, 1, 1, $D) DRUM($480, $1F, 1, 1, $C) DRUM($480, $1F, 1, 0, $A) DRUM($480, $1F, 1, 0, $8) @@hithat DRUM($380, $04, 0, 1, $D) DRUM($380, $04, 0, 1, $6) DRUM(0, 0, 0, 0, 0) DRUM(0, 0, 0, 0, 0) DRUM(0, 0, 0, 0, 0) DRUM(0, 0, 0, 0, 0) DRUM(0, 0, 0, 0, 0) DRUM(0, 0, 0, 0, 0) ENDP SONG00 PROC ;; Speed / Pointers ;; DECLE 6, @@patterns, @@instr ;; Order of patterns ;; DECLE 0, 1, 2, 2, 3, 4, (-2 AND $FFFF) ;; Details of patterns ;; @@patterns DECLE 48, @@pd00, @@pb00, @@ps00 DECLE 48, @@pd01, @@pb01, @@ps00 DECLE 48, @@pd01, @@pb01, @@pc01 DECLE 48, @@pc01, @@pb01, @@pm01 ; add drums DECLE 48, @@pc01, @@pb01, @@pm02 ; add drums ;; Standard instruments (pitch effect, vibrato, envelope) ;; @@instr DECLE MUSIC.pitch01, 1, MUSIC.env01 DECLE MUSIC.pitch02, 1, MUSIC.env01 DECLE MUSIC.pitch03, 1, MUSIC.env01 DECLE MUSIC.pitch04, 1, MUSIC.env01 ; DECLE MUSIC.pitch01, 2, MUSIC.env02 ;; Drums ;; DECLE MUSIC.drum1 DECLE MUSIC.drum2 DECLE MUSIC.hithat ; Actual music instrument - unreachable / causes crash! ;; Patterns ;; ; silence @@ps00 NOTE("NUL 00F") NOTE("NUL 00F") NOTE("NUL 00F") ; drums first two blocks @@pd00 NOTE("NUL 002") NOTE("DRM 3F1") ; hihat NOTE("DRM 3F3") NOTE("DRM 3F1") NOTE("DRM 3F3") NOTE("DRM 3F1") NOTE("DRM 3F3") NOTE("DRM 3F1") NOTE("DRM 3F3") NOTE("DRM 3F1") NOTE("DRM 3F3") NOTE("DRM 3F1") NOTE("DRM 3F3") NOTE("DRM 3F1") NOTE("DRM 3F3") NOTE("DRM 3F1") NOTE("DRM 3F0") ; drums remaining blocks @@pd01 NOTE("DRM 1F2") NOTE("DRM 3F1") NOTE("DRM 3F0") NOTE("DRM 2F2") NOTE("DRM 3F1") NOTE("DRM 3F0") NOTE("DRM 1F1") NOTE("DRM 1F0") NOTE("DRM 3F1") NOTE("DRM 3F0") NOTE("DRM 2F2") NOTE("DRM 3F1") NOTE("DRM 3F0") NOTE("DRM 1F2") NOTE("DRM 3F1") NOTE("DRM 3F0") NOTE("DRM 2F2") NOTE("DRM 3F1") NOTE("DRM 3F0") NOTE("DRM 1F1") NOTE("DRM 1F0") NOTE("DRM 3F1") NOTE("DRM 3F0") NOTE("DRM 2F1") NOTE("DRM 2F0") NOTE("DRM 3F0") NOTE("DRM 2F0") NOTE("DRM 3F0") ; instrument 1 = plain short ; instrument 2 = arpeggio short 038 ; instrument 3 = arpeggio short 047 ; instrument 4 = arpeggio short 069 ; instrument 5 = plain long ; chords - currently not mixed in @@pc01 NOTE("F#4 2F2") NOTE("NUL 001") NOTE("F#4 2F2") NOTE("NUL 003") NOTE("G-4 3F2") NOTE("NUL 001") NOTE("G#4 2F2") NOTE("NUL 003") NOTE("A-4 3F1") NOTE("NUL 000") NOTE("A-4 3F1") NOTE("NUL 002") NOTE("A-4 3F2") NOTE("NUL 000") NOTE("F#4 2F1") NOTE("NUL 000") NOTE("F#4 2F1") NOTE("NUL 000") NOTE("G-4 4F2") NOTE("NUL 002") ; bass first block @@pb00 NOTE("D-1 1F2") NOTE("NUL 002") NOTE("F#1 1F2") NOTE("NUL 002") NOTE("G-1 1F2") NOTE("NUL 002") NOTE("G#1 1F2") NOTE("NUL 002") NOTE("A-1 1F2") NOTE("NUL 002") NOTE("G-1 1F2") NOTE("NUL 002") NOTE("F#1 1F2") NOTE("NUL 002") NOTE("E-1 1F2") NOTE("NUL 002") ; bass remaining blocks @@pb01 NOTE("D-1 1F2") NOTE("D-2 1F2") NOTE("F#1 1F2") NOTE("F#2 1F2") NOTE("G-1 1F2") NOTE("G-2 1F2") NOTE("G#1 1F2") NOTE("G#2 1F2") NOTE("A-1 1F2") NOTE("A-2 1F2") NOTE("G-1 1F2") NOTE("G-2 1F2") NOTE("F#1 1F2") NOTE("F#2 1F2") NOTE("E-1 1F2") NOTE("E-2 1F2") ; melody @@pm01 NOTE("NUL 001") NOTE("F#5 1F0") NOTE("G-5 1F1") NOTE("A-5 1F2") NOTE("B-5 1F2") NOTE("G-5 1F5") NOTE("NUL 001") NOTE("G-5 1F0") NOTE("F#5 1F0") NOTE("E-5 1F1") NOTE("D-5 1F0") NOTE("C#5 1F1") NOTE("D-5 1F0") NOTE("E-5 1F1") NOTE("A-4 1F2") NOTE("B-5 1F2") NOTE("A-5 1F2") NOTE("F#5 1F2") NOTE("A-5 1F5") NOTE("NUL 000") @@pm02 NOTE("NUL 001") NOTE("F#5 1F0") NOTE("G-5 1F1") NOTE("A-5 1F2") NOTE("F#5 1F2") NOTE("D-5 1F2") NOTE("B-4 1F2") NOTE("E-5 1F5") NOTE("D-5 1F0") NOTE("C#5 1F1") NOTE("D-5 1F0") NOTE("E-5 1F1") NOTE("A-4 1F2") NOTE("C#5 1F2") NOTE("D-5 1F6") NOTE("C#5 1F4") NOTE("NUL 000") ENDP