kep-hack/macros/audio_macros.asm
dannye 20c4116788 Update audio macro names
change audio channel numbers from 0-7 back to 1-8
change all note macros back to single note macro
todo: fix comments with old macro names, update noise macros/instrument names
2019-07-27 23:21:39 -05:00

261 lines
2.8 KiB
NASM
Executable file

StopAllMusic: MACRO
ld a, $ff
call PlaySound
ENDM
Ch1 EQU 0
Ch2 EQU 1
Ch3 EQU 2
Ch4 EQU 3
Ch5 EQU 4
Ch6 EQU 5
Ch7 EQU 6
Ch8 EQU 7
audio_header: MACRO
db (_NARG - 2) << 6 | \2
dw \1_\2
IF _NARG > 2
db \3
dw \1_\3
ENDC
IF _NARG > 3
db \4
dw \1_\4
ENDC
IF _NARG > 4
db \5
dw \1_\5
ENDC
ENDM
;format: length [0, 7], pitch change [-7, 7]
pitch_sweep: MACRO
db $10
IF \2 > 0
db (\1 << 4) | \2
ELSE
db (\1 << 4) | (%1000 | (\2 * -1))
ENDC
ENDM
;format: length [0, 15], volume [0, 15], volume change [-7, 7], pitch
square_note: MACRO
db $20 | \1
IF \3 < 0
db (\2 << 4) | (%1000 | (\3 * -1))
ELSE
db (\2 << 4) | \3
ENDC
dw \4
ENDM
;format: length [0, 15], volume [0, 15], volume change [-7, 7], pitch
noise_note: MACRO
db $20 | \1
IF \3 < 0
db (\2 << 4) | (%1000 | (\3 * -1))
ELSE
db (\2 << 4) | \3
ENDC
db \4
ENDM
C_ EQU $0
C# EQU $1
D_ EQU $2
D# EQU $3
E_ EQU $4
F_ EQU $5
F# EQU $6
G_ EQU $7
G# EQU $8
A_ EQU $9
A# EQU $A
B_ EQU $B
;format: pitch length (in 16ths)
note: MACRO
db (\1 << 4) | (\2 - 1)
ENDM
;format: instrument length (in 16ths)
snare1: MACRO
db $B0 | (\1 - 1)
db $01
ENDM
snare2: MACRO
db $B0 | (\1 - 1)
db $02
ENDM
snare3: MACRO
db $B0 | (\1 - 1)
db $03
ENDM
snare4: MACRO
db $B0 | (\1 - 1)
db $04
ENDM
snare5: MACRO
db $B0 | (\1 - 1)
db $05
ENDM
triangle1: MACRO
db $B0 | (\1 - 1)
db $06
ENDM
triangle2: MACRO
db $B0 | (\1 - 1)
db $07
ENDM
snare6: MACRO
db $B0 | (\1 - 1)
db $08
ENDM
snare7: MACRO
db $B0 | (\1 - 1)
db $09
ENDM
snare8: MACRO
db $B0 | (\1 - 1)
db $0A
ENDM
snare9: MACRO
db $B0 | (\1 - 1)
db $0B
ENDM
cymbal1: MACRO
db $B0 | (\1 - 1)
db $0C
ENDM
cymbal2: MACRO
db $B0 | (\1 - 1)
db $0D
ENDM
cymbal3: MACRO
db $B0 | (\1 - 1)
db $0E
ENDM
mutedsnare1: MACRO
db $B0 | (\1 - 1)
db $0F
ENDM
triangle3: MACRO
db $B0 | (\1 - 1)
db $10
ENDM
mutedsnare2: MACRO
db $B0 | (\1 - 1)
db $11
ENDM
mutedsnare3: MACRO
db $B0 | (\1 - 1)
db $12
ENDM
mutedsnare4: MACRO
db $B0 | (\1 - 1)
db $13
ENDM
;format: rest length (in 16ths)
rest: MACRO
db $C0 | (\1 - 1)
ENDM
; format: notetype speed, volume, fade
note_type: MACRO
db $D0 | \1
db (\2 << 4) | \3
ENDM
dspeed: MACRO
db $D0 | \1
ENDM
octave: MACRO
db $E8 - \1
ENDM
toggle_perfect_pitch: MACRO
db $E8
ENDM
;format: vibrato delay, rate, depth
vibrato: MACRO
db $EA
db \1
db (\2 << 4) | \3
ENDM
pitch_slide: MACRO
db $EB
db \1
db \2
ENDM
duty_cycle: MACRO
db $EC
db \1
ENDM
tempo: MACRO
db $ED
db \1 / $100
db \1 % $100
ENDM
stereo_panning: MACRO
db $EE
db \1
ENDM
volume: MACRO
db $F0
db (\1 << 4) | \2
ENDM
execute_music: MACRO
db $F8
ENDM
duty_cycle_pattern: MACRO
db $FC
db \1
ENDM
;format: callchannel address
sound_call: MACRO
db $FD
dw \1
ENDM
;format: loopchannel count, address
sound_loop: MACRO
db $FE
db \1
dw \2
ENDM
sound_ret: MACRO
db $FF
ENDM