Commit graph

901 commits

Author SHA1 Message Date
alexey.lysiuk
6622801ad5 - added line break to 'No GENMIDI lump' message
'ST_Init: Init startup screen.' is no longer concatenated with the given line
2020-03-14 19:11:43 +01:00
Rachael Alexanderson
673e52f02f - fix debug assertion, cleanup vestigial A_PlaySound addition 2020-03-04 09:46:09 +01:00
Rachael Alexanderson
19233e6a82 - add checking in S_StartSound for startTime length 2020-03-03 10:58:48 +01:00
Rachael Alexanderson
4625925a69 - ported over Nash's startTime for A_StartSound 2020-03-03 10:58:46 +01:00
Major Cooke
45c80916bc Added A_StopSounds(int chanmin, int chanmax).
- If both channels are 0, completely silences the actor.
- Adapted A_StopAllSounds to call A_StopSounds(0,0);
2020-03-01 20:27:03 +01:00
Major Cooke
3e77f9a6bd Added A_StopAllSounds. 2020-02-29 20:02:17 +01:00
drfrag
6fd642ed48 Revert "Revert "Stop sources immediately when the sound is forced to stop""
This reverts commit 82c4750710.
2020-02-29 19:35:22 +01:00
Rachael Alexanderson
dfcd5d1dd5 - use GAMENAMELOWERCASE macro for music config defaults
# Conflicts:
#	src/sound/music/music_config.cpp
2020-02-23 11:59:04 +01:00
alexey.lysiuk
d1786bc0c0 - fixed arguments order for ZMusic_Start() function 2020-02-23 11:59:02 +01:00
drfrag
82c4750710 Revert "Stop sources immediately when the sound is forced to stop"
This reverts commit 6b8cebe979.
2020-02-18 15:35:03 +01:00
Christoph Oelckers
87875a52ba - backported a few sound code fixes from Raze. 2020-02-15 17:55:42 +01:00
Christoph Oelckers
16d9da97eb - backported fix for loading VOC files.
In NAM there is one that needed a bit of extra treatment.
2020-02-01 20:34:42 +01:00
Chris Robinson
350d57e8db Remove FSoundLoadBuffer since it wasn't doing anything 2020-02-01 20:34:40 +01:00
Chris Robinson
c37caf4498 Remove LoadSoundBuffered since its no longer called 2020-02-01 20:34:37 +01:00
Chris Robinson
435a3885ca Get rid of the LoadSound3D method
It no longer does anything since there's no separate buffer for 3D sfx.
2020-02-01 20:34:35 +01:00
Chris Robinson
1065d18bc4 Update a couple comments about monoized sounds 2020-02-01 20:34:33 +01:00
Chris Robinson
6b8cebe979 Stop sources immediately when the sound is forced to stop
The reason for the previous delay was to allow OpenAL Soft to fade the sound to
silence and avoid a sudden amplitude change, which can cause a "click" or "pop"
noise. However, with OpenAL Soft 1.20, this is a built-in feature of the mixer
so the extra complexity is unnecessary.
2020-02-01 20:34:30 +01:00
Chris Robinson
e7c035ff81 Remove the 'monoize' option from sound loading
Unnecessary with the AL_SOFT_source_spatialize extension, which has been
available for over a year.
2020-02-01 20:34:28 +01:00
Chris Robinson
427b6a0d14 Remove the fallback for lack of AL_EXT_SOURCE_RADIUS
It's been available in OpenAL Soft for years and the fallback method wasn't very good.
2020-02-01 20:34:25 +01:00
alexey.lysiuk
068f0420a8 - restored old values for CHAN_... constants
https://forum.zdoom.org/viewtopic.php?t=66929
2020-01-12 00:49:20 +01:00
alexey.lysiuk
fd5889e200 - fixed resolving of music aliases with full filenames
https://forum.zdoom.org/viewtopic.php?t=66815
2020-01-07 19:55:59 +01:00
Petr Mrázek
848438839b - Run the Alsa MIDI thread every 40ms or so, use non-blocking sequencer 2020-01-07 19:55:55 +01:00
Chronos Ouroboros
24a11f7a9a Fixed some incorrect parentheses in S_PlaySoundPitch. 2020-01-07 19:55:54 +01:00
Christoph Oelckers
ce1f4427cc - cleaned up the parameters of A_StartSound.
There were two booleans that could be merged into the flag word.
This also fixes a bug with CHAN_NOSTOP not working for local sounds because it checked the wrong sound source for the playing sound.
2020-01-07 19:36:52 +01:00
Christoph Oelckers
ff3606e44e - refactored the MIDI list code.
Let's hope nothing got broken on the Linux side, the recent submission's code was not usable.

# Conflicts:
#	libraries/zmusic/zmusic/configuration.cpp
#	src/sound/music/i_music.cpp
#	src/sound/music/music_midi_base.cpp
2020-01-07 18:36:55 +01:00
Christoph Oelckers
dee8af1902 - made the sound decoding interface DLL friendly and added compile switches to the MIDI players so that different licenses can be uses as compile target.
# Conflicts:
#	src/sound/backend/i_sound.h

# Conflicts:
#	libraries/zmusic/mididevices/music_timiditypp_mididevice.cpp
2020-01-07 18:22:15 +01:00
Christoph Oelckers
e89cc73f80 - rewrote the ZMusic interface so that it is free of C++ constructs.
Now it is ready to put in a DLL.

# Conflicts:
#	libraries/zmusic/zmusic/mididefs.h
#	libraries/zmusic/zmusic/zmusic.h
2020-01-07 18:07:26 +01:00
Christoph Oelckers
f2a3a70aec - replaced the C++ based file access wrapper in ZMusic with a C compatible version. 2020-01-07 18:07:23 +01:00
Christoph Oelckers
7e01b19753 - there's no need to let the XM Vorbis decoder run through the client - all related functionality is part of ZMusic itself. 2020-01-07 18:07:21 +01:00
Christoph Oelckers
e5faff8cbb - made adjustments to the remaining parts of the function interface. 2020-01-07 18:07:19 +01:00
Christoph Oelckers
4e8359100f - made the ZMusic interface more DLL friendly: Reworked all functions not to throw exceptions across the library boundary and made a few definitions internal.
Not complete yet.

# Conflicts:
#	libraries/zmusic/zmusic/zmusic.h
2020-01-07 18:07:17 +01:00
Petr Mrázek
b07254507a - Support for MIDI on Linux via alsa sequencer 2020-01-07 18:04:28 +01:00
Marisa Kirisame
ebc6fcccd7 Additional CHAN_OVERLAP awareness for StartSound and ChangeSoundVolume/Pitch. 2020-01-06 19:49:21 +01:00
Christoph Oelckers
7919c86f3e - elimintated all cases from the ZScript code where channel indices and flags were combined into one parameter and removed all remnants of CHAN_PICKUP. 2020-01-06 19:49:18 +01:00
Christoph Oelckers
0d3a62f73a - fixed: A_StartSound was still masking the sound channel value for checking if it plays something. 2020-01-06 19:49:15 +01:00
Christoph Oelckers
1cacd3e3de - sound engine update.
Notable changes:
* IsSourcePlayingSomething had undefined behavior when checking unattached and unpositioned sounds.
* loading Blood RAW sounds with different sample rates but the same backing lump may not use the same hardware sound buffer.
* when playing an unpositioned sound the attenuation is irrelevant and must be ignored. This resulted in a 3D sound being started which was mostly inaudible due to lack of valid origin.
2020-01-06 15:08:32 +01:00
Marisa Kirisame
9e212c3582 Change IsSourcePlayingSomething to handle overlapping sounds. 2020-01-06 15:08:30 +01:00
Christoph Oelckers
bc1d728140 - made FSoundChan::EntChannel a full int and reordered the structure for better packing. 2020-01-06 15:08:28 +01:00
Christoph Oelckers
35e38bc8eb - fixed inverted listener check when using compatibility options. 2020-01-06 15:08:24 +01:00
Christoph Oelckers
38aa6c4281 - the old bit masking for the channel needs to go, of course. 2020-01-06 15:08:22 +01:00
Christoph Oelckers
9c825ea090 - fixed VOC loader. Its 16 bit code did not work because it set the variable to -16 instead of 16.
- removed a few MAX calls with std::max.
2020-01-06 15:08:20 +01:00
Christoph Oelckers
c3759f389c - separated the channel number from the flags in the sound interface so that the 8 channel limit can be eliminated.
- added Marisa Kirisame's CHAN_OVERLAP flag.
- exported S_IsActorPlayingSomething to ZScript.

The sound API change required deprecating A_PlaySound and S_Sound. There are now new variants S_StartSound and A_StartSound which have two distinct parameters for channel and flags.

# Conflicts:
#	src/bbannouncer.cpp
#	src/fragglescript/t_func.cpp
#	src/g_shared/a_lightning.cpp
#	src/p_effect.cpp
#	src/p_mobj.cpp
#	src/p_switch.cpp
#	src/playsim/p_spec.cpp
#	src/sound/s_doomsound.cpp
#	src/sound/s_doomsound.h
#	wadsrc/static/zscript/base.zs

# Conflicts:
#	src/intermission/intermission.cpp
#	src/sound/s_doomsound.cpp
2020-01-06 15:00:05 +01:00
Christoph Oelckers
ba006cbc5c - sound engine update. 2020-01-06 14:50:50 +01:00
alexey.lysiuk
7277717b32 - fixed linked sound resolving
Hash indices and sound ids were used interchangeably but they are different entities

https://forum.zdoom.org/viewtopic.php?t=66618
2020-01-06 14:50:48 +01:00
Christoph Oelckers
b0d38adb25 - made the sound resolving a virtual method
This way the player sounds can be done in the proper place without infesting the core.

# Conflicts:
#	src/sound/s_doomsound.cpp
2020-01-06 14:50:46 +01:00
alexey.lysiuk
179c4dd238 - rewrote test for occupied sound channel without special types
https://forum.zdoom.org/viewtopic.php?t=66613
2020-01-06 14:38:39 +01:00
alexey.lysiuk
3c157a4f2c - restored stopping of channel by new sound
If source actor/sector/polyobject is playing something on the selected channel, stop it before playing a new sound

https://forum.zdoom.org/viewtopic.php?t=66613
2020-01-06 14:38:37 +01:00
alexey.lysiuk
ea85cd18dd - remove redundant call to SoundRenderer::UpdateSounds()
At that point SoundEngine::StopAllChannels() did this already
2020-01-06 14:38:35 +01:00
alexey.lysiuk
da7515c0ce - moved sound engine cleanup calls to own function
https://forum.zdoom.org/viewtopic.php?t=66605#p1127457
2020-01-06 14:38:33 +01:00
alexey.lysiuk
9b2054ad4d - fixed crash when exiting before sound engine initialization
https://forum.zdoom.org/viewtopic.php?t=66605
2020-01-06 14:38:30 +01:00