Commit Graph

55 Commits

Author SHA1 Message Date
terminx cfa40f33df Fix volume slider bug introduced in r7773
git-svn-id: https://svn.eduke32.com/eduke32@7780 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:40:17 +02:00
terminx 027afc2347 Patch from Nuke.YKT to replace audiolib's volume table with floating point calculations
This fixes an issue where rapidly changing the player's angle could result in the audio "popping" due to the sudden change to a new position in the volume table, and the resulting difference in volume between one sample and the next. This also fixes a DC offset issue when applying the volume level to certain sample types.

git-svn-id: https://svn.eduke32.com/eduke32@7773 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:39:01 +02:00
terminx 1e0dd0e534 Templatized linked list functions
git-svn-id: https://svn.eduke32.com/eduke32@7720 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 13:08:34 +02:00
terminx ccdba037b5 Added Xfree() function to accompany the Xmalloc() family of functions and change all uses of Bfree() to Xfree()
This was necessary because everything is already allocated with the Xmalloc() functions, but a future commit will make blocks allocated with those functions no longer compatible with the system implementation of free(), which Bfree() wraps.

git-svn-id: https://svn.eduke32.com/eduke32@7705 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/build.cpp
#	source/build/src/mdsprite.cpp
#	source/build/src/polymer.cpp
#	source/build/src/polymost.cpp
#	source/build/src/texcache.cpp
#	source/build/src/voxmodel.cpp
2019-09-20 12:07:10 +02:00
hendricks266 849b095b26 Audiolib: Fix use-after-frees in Vorbis, FLAC, XA decoding
git-svn-id: https://svn.eduke32.com/eduke32@7684 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 10:14:33 +02:00
hendricks266 19a5e86a35 Audiolib: Clean up samples handling
git-svn-id: https://svn.eduke32.com/eduke32@7683 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 10:14:30 +02:00
terminx b0a4b6a1ee Convert loops using unsigned integers as iterators to use regular signed ints instead
https://kristerw.blogspot.com/2016/02/how-undefined-signed-overflow-enables.html

Doing this as cleanly as possible involved demoting several function parameters concerning object sizes and counts from size_t to int--I'm fine with this change as the functions in question are not actually capable of handling input with sizes larger than what can be stored in a signed 32-bit integer, making the use of size_t here misleading at best.

git-svn-id: https://svn.eduke32.com/eduke32@7673 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/polymost.cpp
#	source/build/src/texcache.cpp
#	source/build/src/tilepacker.cpp
2019-09-20 10:04:24 +02:00
Christoph Oelckers 0254bf82d3 - added NBlood source. 2019-09-20 00:42:45 +02:00
Christoph Oelckers c2e4a6cb64 - sound system additions from NBlood, except for the backing code for OPL playback. 2019-09-19 20:22:09 +02:00
terminx 425c183c67 Clean up DirectSound driver in audiolib
This includes a small patch from Nuke.YKT as well.

git-svn-id: https://svn.eduke32.com/eduke32@7361 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-02 23:21:01 +00:00
terminx c757725e65 Remove a "cheap fix" from multivoc that is no longer needed and should never have been needed in the first place
git-svn-id: https://svn.eduke32.com/eduke32@7360 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-02 23:20:56 +00:00
terminx 27977403fd Remove 3 lines of audiolib header cruft
git-svn-id: https://svn.eduke32.com/eduke32@7328 1a8010ca-5511-0410-912e-c29ae57300e0
2019-02-18 22:02:27 +00:00
terminx bd55b2d573 I honestly can't remember why I wrote this like this, but it's problematic so I'm changing it.
git-svn-id: https://svn.eduke32.com/eduke32@7309 1a8010ca-5511-0410-912e-c29ae57300e0
2019-01-12 00:22:14 +00:00
terminx 74d766d988 Create new MV_CleanupVoice() function to handle most of what was in MV_StopVoice() plus the MV_CallBackFunc() functionality
git-svn-id: https://svn.eduke32.com/eduke32@7307 1a8010ca-5511-0410-912e-c29ae57300e0
2019-01-12 00:22:05 +00:00
terminx 9f3cf8002b Slightly revise multivoc locking logic
git-svn-id: https://svn.eduke32.com/eduke32@7306 1a8010ca-5511-0410-912e-c29ae57300e0
2019-01-12 00:22:02 +00:00
terminx 465e19909f Change audiolib mixing functions to just use a return value instead of setting a global to indicate the new mixing buffer position
git-svn-id: https://svn.eduke32.com/eduke32@7285 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:40:03 +00:00
terminx c3f88abf73 Slight cleanup to MV_GetVorbisCommentLoops(). The biggest change here is swapping calls to atol to our Batol macro, which is actually backed by strtol instead of atol.
git-svn-id: https://svn.eduke32.com/eduke32@7284 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:39:57 +00:00
terminx 91096d2415 Hendricks and I discussed "auto *" and we've come to the conclusion that it's bad form, so this corrects that.
git-svn-id: https://svn.eduke32.com/eduke32@7283 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:39:51 +00:00
terminx 6258806a3a Reduce vorbis read block size from 32k to MV_MIXBUFFERSIZE. Despite requiring more calls into libvorbis, this should be faster on slower CPUs in cases where more copies of the same .ogg sound are attempting to be played at once than are allowed, e.g large explosion scenes in Ion Maiden.
git-svn-id: https://svn.eduke32.com/eduke32@7282 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:39:41 +00:00
terminx ea94b36dec Fix function that some sadist formatted with 3 spaces
git-svn-id: https://svn.eduke32.com/eduke32@7280 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:39:31 +00:00
terminx e513e1ceae Cleanup includes
git-svn-id: https://svn.eduke32.com/eduke32@7186 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:09:48 +00:00
terminx 0f0974874b Set XMP_PLAYER_INTERP to XMP_INTERP_SPLINE as it seems to sound better than the default setting
git-svn-id: https://svn.eduke32.com/eduke32@7163 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:07:04 +00:00
terminx 28bed56348 The last of my audiolib changes for now. These change no functionality.
git-svn-id: https://svn.eduke32.com/eduke32@7127 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-25 23:33:21 +00:00
terminx 890341d3af Fix screwed up spacing in a few audiolib files. No functional changes.
git-svn-id: https://svn.eduke32.com/eduke32@7126 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-25 23:33:14 +00:00
terminx 51d4347e2c Remove unnecessary "Playing" member of VoiceNode struct
git-svn-id: https://svn.eduke32.com/eduke32@7124 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-25 23:33:04 +00:00
terminx ed2f9f247b Rework volume control to not completely suck
git-svn-id: https://svn.eduke32.com/eduke32@7122 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-25 23:32:50 +00:00
terminx 6513d9f3e3 Make ASS's mixing functions take a pointer to a voice instead of passing a bunch of parameters separately
git-svn-id: https://svn.eduke32.com/eduke32@7121 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-25 23:32:41 +00:00
terminx 6d226cf0da Mixer function fixups from H266
git-svn-id: https://svn.eduke32.com/eduke32@7120 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-25 23:32:35 +00:00
terminx 1c007c56c5 More sound work
git-svn-id: https://svn.eduke32.com/eduke32@7119 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-25 23:32:29 +00:00
terminx 374a09536d Add per-sound volume support to audiolib. This allows you to control the volume of sounds independently from the distance-based system exposed through CON. To use this, you must define your sounds via the .def syntax and set the "volume" property--default is 1.0.
git-svn-id: https://svn.eduke32.com/eduke32@7117 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-25 23:32:14 +00:00
terminx f1cf0bafdd pitch.cpp cleanup.
git-svn-id: https://svn.eduke32.com/eduke32@7101 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-25 23:30:51 +00:00
terminx 4bb9a4b792 sscanf format parameter fixups
git-svn-id: https://svn.eduke32.com/eduke32@7083 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-25 23:29:20 +00:00
terminx 688fadd729 macOS build fix
git-svn-id: https://svn.eduke32.com/eduke32@7081 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-25 23:29:08 +00:00
terminx 1f8b23152e Replace remaining instances of regular malloc/calloc/realloc/strdup with our memory error handler versions
git-svn-id: https://svn.eduke32.com/eduke32@7079 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-25 23:28:56 +00:00
terminx 9613bbac33 Use std::min and std::max instead of min and max macros.
git-svn-id: https://svn.eduke32.com/eduke32@7078 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-16 06:09:54 +00:00
terminx aa939642d6 Fix MV_GetNextWAVBlock() to no longer check if the unsigned BlockLength value is less than 0.
git-svn-id: https://svn.eduke32.com/eduke32@7043 1a8010ca-5511-0410-912e-c29ae57300e0
2018-10-07 05:23:34 +00:00
hendricks266 6cb29c820c sdlmusic: Slight cosmetic cleanup
git-svn-id: https://svn.eduke32.com/eduke32@6891 1a8010ca-5511-0410-912e-c29ae57300e0
2018-05-19 14:14:25 +00:00
hendricks266 03f2cdd9b3 Fix MIDI playback on non-Windows platforms
git-svn-id: https://svn.eduke32.com/eduke32@6889 1a8010ca-5511-0410-912e-c29ae57300e0
2018-05-19 14:14:18 +00:00
terminx b92d4f6c1b Slight change to FX_DetectFormat(); format specifications seem to say there's no such thing as WAVE without RIFF.
git-svn-id: https://svn.eduke32.com/eduke32@6837 1a8010ca-5511-0410-912e-c29ae57300e0
2018-04-21 06:04:44 +00:00
hendricks266 607ddc45e0 xa.cpp: Tabs to spaces.
git-svn-id: https://svn.eduke32.com/eduke32@6764 1a8010ca-5511-0410-912e-c29ae57300e0
2018-03-13 23:29:38 +00:00
hendricks266 6acbb77ac5 xa.cpp: Fix the crackling noise.
git-svn-id: https://svn.eduke32.com/eduke32@6763 1a8010ca-5511-0410-912e-c29ae57300e0
2018-03-13 23:29:35 +00:00
hendricks266 5f52049948 xa.cpp: Cleanup that didn't help the crackling noise.
git-svn-id: https://svn.eduke32.com/eduke32@6762 1a8010ca-5511-0410-912e-c29ae57300e0
2018-03-13 23:29:31 +00:00
terminx b7dfd992ae Revert change to _multivc.h because it fucked up the volume slider
git-svn-id: https://svn.eduke32.com/eduke32@6712 1a8010ca-5511-0410-912e-c29ae57300e0
2018-02-27 16:54:42 +00:00
terminx 1c342e0bde Reduce max volume to prevent audio clipping
git-svn-id: https://svn.eduke32.com/eduke32@6711 1a8010ca-5511-0410-912e-c29ae57300e0
2018-02-27 15:21:01 +00:00
pogokeen efaf328e4d Fixed race condition where XMP voices could be played by the audio driver thread before they were fully initialized or fully freed
git-svn-id: https://svn.eduke32.com/eduke32@6564 1a8010ca-5511-0410-912e-c29ae57300e0
2017-12-17 02:03:52 +00:00
hendricks266 64d76db260 Add support for MTM modules.
git-svn-id: https://svn.eduke32.com/eduke32@6475 1a8010ca-5511-0410-912e-c29ae57300e0
2017-10-15 23:09:59 +00:00
terminx dad337add8 Fix gcc 7.1.0 warnings
git-svn-id: https://svn.eduke32.com/eduke32@6370 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-18 20:53:41 +00:00
hendricks266 e51960b3a2 Fix memory leaks in audiolib. Fixes issue #59.
git-svn-id: https://svn.eduke32.com/eduke32@6202 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-19 23:06:53 +00:00
hendricks266 06a38e3873 Audiolib: Re-add a fixed version of old code for the SDL driver to initialize SDL as a whole or its audio subsystem if it has not yet been initialized.
Patch from NY00123.

DONT_BUILD.

git-svn-id: https://svn.eduke32.com/eduke32@6080 1a8010ca-5511-0410-912e-c29ae57300e0
2017-03-01 09:35:58 +00:00
hendricks266 62a921c409 Remove the implicit "static" from our FORCE_INLINE macro.
This will be important for C++ member functions.

git-svn-id: https://svn.eduke32.com/eduke32@6076 1a8010ca-5511-0410-912e-c29ae57300e0
2017-02-25 08:15:53 +00:00