From eae3eccc9dd27ca7e4a6874bb040eeadb081b9ed Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sat, 26 Sep 2026 13:54:29 -0700 Subject: [PATCH] Audio improvements (#897) * Add .porydaw to gitignore * alt -> reverse, and add generic ADSR macros for compressed directsound voices --- .gitignore | 1 + include/macros/music_voice.inc | 24 +++++++++++++++--------- sound/voice_groups.inc | 4 ++-- 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 1cc616dc4..0f887cab3 100644 --- a/.gitignore +++ b/.gitignore @@ -47,3 +47,4 @@ build/ *.diff porymap.*.cfg prefabs.json +.porydaw/ diff --git a/include/macros/music_voice.inc b/include/macros/music_voice.inc index 64dd38214..d5ac60f75 100644 --- a/include/macros/music_voice.inc +++ b/include/macros/music_voice.inc @@ -4,12 +4,22 @@ .endm .macro voice_directsound_no_resample base_midi_key:req, pan:req, sample_data_pointer:req, attack:req, decay:req, sustain:req, release:req - .byte 8 + .byte 0x8 _voice_directsound \base_midi_key, \pan, \sample_data_pointer, \attack, \decay, \sustain, \release .endm - .macro voice_directsound_alt base_midi_key:req, pan:req, sample_data_pointer:req, attack:req, decay:req, sustain:req, release:req - .byte 16 + .macro voice_directsound_reverse base_midi_key:req, pan:req, sample_data_pointer:req, attack:req, decay:req, sustain:req, release:req + .byte 0x10 + _voice_directsound \base_midi_key, \pan, \sample_data_pointer, \attack, \decay, \sustain, \release + .endm + + .macro voice_directsound_compressed base_midi_key:req, pan:req, sample_data_pointer:req, attack:req, decay:req, sustain:req, release:req + .byte 0x20 + _voice_directsound \base_midi_key, \pan, \sample_data_pointer, \attack, \decay, \sustain, \release + .endm + + .macro voice_directsound_compressed_reverse base_midi_key:req, pan:req, sample_data_pointer:req, attack:req, decay:req, sustain:req, release:req + .byte 0x30 _voice_directsound \base_midi_key, \pan, \sample_data_pointer, \attack, \decay, \sustain, \release .endm @@ -140,13 +150,9 @@ .endm .macro cry sample:req - .byte 0x20, 60, 0, 0 - .4byte \sample - .byte 0xff, 0, 0xff, 0 + voice_directsound_compressed 60, 0, \sample, 255, 0, 255, 0 .endm .macro cry2 sample:req - .byte 0x30, 60, 0, 0 - .4byte \sample - .byte 0xff, 0, 0xff, 0 + voice_directsound_compressed_reverse 60, 0, \sample, 255, 0, 255, 0 .endm diff --git a/sound/voice_groups.inc b/sound/voice_groups.inc index 7738cc564..15ed2ac35 100644 --- a/sound/voice_groups.inc +++ b/sound/voice_groups.inc @@ -12004,7 +12004,7 @@ voicegroup110:: @ 8451990 .align 2 voicegroup111:: @ 8451F90 voice_directsound_no_resample 60, 0, DirectSoundWaveData_bicycle_bell, 255, 249, 0, 165 - voice_directsound_alt 60, 0, DirectSoundWaveData_bicycle_bell, 255, 0, 255, 165 + voice_directsound_reverse 60, 0, DirectSoundWaveData_bicycle_bell, 255, 0, 255, 165 voice_directsound 60, 0, DirectSoundWaveData_unknown_synth_snare, 255, 0, 255, 165 voice_directsound 60, 0, DirectSoundWaveData_sc88pro_glockenspiel, 255, 242, 0, 127 voice_noise_alt 60, 0, 0, 0, 1, 0, 1 @@ -12036,7 +12036,7 @@ voicegroup111:: @ 8451F90 voice_square_1_alt 60, 0, 19, 2, 0, 2, 0, 0 voice_directsound 60, 0, DirectSoundWaveData_trinity_30303_mega_bass, 255, 0, 255, 127 voice_square_1 60, 0, 103, 0, 0, 0, 15, 0 - voice_directsound_alt 60, 0, DirectSoundWaveData_8495028, 255, 0, 255, 127 + voice_directsound_reverse 60, 0, DirectSoundWaveData_8495028, 255, 0, 255, 127 voice_directsound 60, 0, DirectSoundWaveData_sc88pro_fretless_bass, 255, 255, 255, 127 voice_directsound 60, 0, DirectSoundWaveData_sc88pro_synth_bass, 255, 0, 255, 127 voice_directsound 60, 0, DirectSoundWaveData_8499110, 255, 0, 255, 127