terminx
4ff4fddf62
The constening
...
git-svn-id: https://svn.eduke32.com/eduke32@8224 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/audiolib/include/al_midi.h
2019-10-24 19:26:23 +02:00
terminx
ff10fdf929
Add mus_adlibstereo cvar to enable and disable AdLib stereo mode
...
git-svn-id: https://svn.eduke32.com/eduke32@8223 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-24 19:26:16 +02:00
terminx
8a61ceeb36
Add a cvar array for audiolib
...
git-svn-id: https://svn.eduke32.com/eduke32@8222 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-24 19:26:15 +02:00
terminx
a2ab5492cc
Further small midi cleanup changes--nothing functional
...
git-svn-id: https://svn.eduke32.com/eduke32@8221 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/audiolib/include/al_midi.h
# source/audiolib/src/_al_midi.h
2019-10-24 19:26:14 +02:00
terminx
6fa287c767
Further AdLib cleanup... leaving this in a separate commit in case I fucked something up
...
git-svn-id: https://svn.eduke32.com/eduke32@8220 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-24 19:25:49 +02:00
terminx
8eb5233232
Further audiolib work... I think this is almost done!
...
git-svn-id: https://svn.eduke32.com/eduke32@8219 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# GNUmakefile
# platform/Windows/audiolib.vcxproj
# platform/Windows/audiolib.vcxproj.filters
# platform/Windows/build.vcxproj
# platform/Windows/build.vcxproj.filters
# source/audiolib/include/al_midi.h
# source/audiolib/src/_al_midi.h
# source/duke3d/src/osdcmds.cpp
# source/duke3d/src/sounds.cpp
2019-10-24 19:25:48 +02:00
terminx
8a1681fb5a
More audiolib work
...
git-svn-id: https://svn.eduke32.com/eduke32@8218 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/audiolib/src/music.cpp
# Conflicts:
# GNUmakefile
# platform/Windows/audiolib.vcxproj
# platform/Windows/audiolib.vcxproj.filters
# source/duke3d/src/menus.cpp
2019-10-24 19:25:09 +02:00
terminx
8b20118026
Audiolib rework WIP
...
This attempts to rectify the differences between versions of JFAudiolib created after we forked the code, and the extra features contained in Nuke.YKT's fork of our version.
git-svn-id: https://svn.eduke32.com/eduke32@8216 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# GNUmakefile
# platform/Windows/audiolib.vcxproj
# platform/Windows/audiolib.vcxproj.filters
# platform/Windows/eduke32.vcxproj
# platform/Windows/eduke32.vcxproj.filters
# source/audiolib/include/fx_man.h
# source/audiolib/include/multivoc.h
# source/audiolib/src/flac.cpp
# source/audiolib/src/formats.cpp
# source/audiolib/src/fx_man.cpp
# source/audiolib/src/vorbis.cpp
# source/audiolib/src/xa.cpp
# source/audiolib/src/xmp.cpp
# source/duke3d/src/sounds_mapster32.cpp
# Conflicts:
# Common.mak
# GNUmakefile
# platform/Windows/audiolib.vcxproj
# platform/Windows/audiolib.vcxproj.filters
# platform/Windows/eduke32.vcxproj
# platform/Windows/eduke32.vcxproj.filters
# source/audiolib/include/multivoc.h
# source/audiolib/src/vorbis.cpp
# source/duke3d/src/config.cpp
# source/duke3d/src/game.h
# source/duke3d/src/osdcmds.cpp
# source/duke3d/src/sounds_mapster32.cpp
2019-10-24 19:24:31 +02:00
terminx
a1f08f2465
New files for audiolib
...
This is in a separate commit just to make the changes to existing files easier to go through.
git-svn-id: https://svn.eduke32.com/eduke32@8215 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/audiolib/include/midi.h
# source/audiolib/src/_midi.h
# source/audiolib/src/al_midi.cpp
# source/audiolib/src/midi.cpp
# source/audiolib/src/music.cpp
# source/audiolib/src/oplmidi.cpp
# source/duke3d/src/midi.cpp
# Conflicts:
# source/audiolib/src/al_midi.cpp
# source/audiolib/src/midi.cpp
# source/audiolib/src/music.cpp
2019-10-24 19:22:49 +02:00
terminx
d6e52ed526
Use SDL audiolib driver on Windows
...
This shitcans the SDL_mixer requirement but leaves platforms other than Windows without built-in MIDI playback capability until Nuke.YKT's OPL3 emulator is merged. This also reworks sdlmusic.cpp into music_external.cpp, including an untested port of the code to Windows.
git-svn-id: https://svn.eduke32.com/eduke32@8214 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# GNUmakefile
# platform/Windows/eduke32.vcxproj
# platform/Windows/props/build_common.props
# source/audiolib/src/sdlmusic.cpp
# Conflicts:
# Common.mak
# GNUmakefile
# platform/Windows/audiolib.vcxproj
# platform/Windows/eduke32.vcxproj
# platform/Windows/eduke32.vcxproj.filters
# platform/Windows/props/build_common.props
# source/audiolib/src/driver_sdl.cpp
# source/audiolib/src/sdlmusic.cpp
# source/build/include/vfs.h
# source/build/include/winbits.h
# source/build/src/winbits.cpp
2019-10-24 19:22:06 +02:00
terminx
c0b7745013
Misc audiolib cleanups
...
git-svn-id: https://svn.eduke32.com/eduke32@8213 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/audiolib/src/fx_man.cpp
# source/audiolib/src/multivoc.cpp
# Conflicts:
# source/audiolib/include/multivoc.h
# source/audiolib/src/multivoc.cpp
# source/audiolib/src/vorbis.cpp
2019-10-24 19:20:33 +02:00
terminx
a278a85b3b
Add const to dest parameter of MV_Reverb()
...
git-svn-id: https://svn.eduke32.com/eduke32@8184 1a8010ca-5511-0410-912e-c29ae57300e0
2019-10-20 11:53:25 +02:00
terminx
9756db95ca
Use templates for audiolib mixing functions
...
Patch from NY00123.
git-svn-id: https://svn.eduke32.com/eduke32@8183 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/audiolib/src/mix.cpp
# source/audiolib/src/mixst.cpp
2019-10-20 11:51:57 +02:00
terminx
d7f779eaec
Use EXIT_FAILURE and EXIT_SUCCESS from stdlib.h when calling exit()
...
git-svn-id: https://svn.eduke32.com/eduke32@8190 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/build/src/build.cpp
# source/build/src/polymost.cpp
# source/build/src/tiles.cpp
# source/duke3d/src/astub.cpp
2019-10-20 10:45:48 +02:00
Christoph Oelckers
2cbe211e7c
- transitioned project to CMake and deleted most of the old build system.
...
The EDuke32 and RedNukem frontends are working, Blood isn't yet.
Notes:
many of the CMake variables and its output still refer to zdoom. Before changing that I wanted to make sure to be able to commit something that works.
support code for Windows XP has been entirely removed. On Windows this will only target Vista and up.
the crc32.h header had to be renamed to deconflict from zlib.
several Windows API calls were changed to call the A-versions directly. Weirdly enough there were places that defined their parameters as T types but in a non-working way.
removed some remaining editor files and support for the native software rendering only Windows backend.
in a few simple cases, replaced 'char' with 'uint8_t'. The code as-is depends on chars being unsigned which is non-portable. This needs to be carefully reviewed.
2019-09-22 23:15:46 +02:00
Christoph Oelckers
5050716bc0
- removed most extern "C" from the rest of the code base.
2019-09-21 20:14:34 +02:00
Christoph Oelckers
71b332459b
- removed Android and Mapster headers plus raw EDuke assets in Blood folder.
2019-09-21 19:30:20 +02:00
nukeykt
6c08ae1966
Fix 16-bit audio mixing
2019-09-21 10:21:27 +02:00
nukeykt
75d2e81e98
Move midi stuff to audiolib
...
# Conflicts:
# platform/Windows/eduke32.vcxproj
# platform/Windows/nblood.vcxproj.filters
# source/audiolib/include/al_midi.h
# source/audiolib/include/opl3.h
# source/audiolib/include/oplmidi.h
# source/audiolib/src/_al_midi.h
# source/audiolib/src/_oplmidi.h
# source/audiolib/src/al_midi.cpp
# source/audiolib/src/opl3.cpp
# source/audiolib/src/oplmidi.cpp
# source/duke3d/Dependencies.mak
# source/duke3d/src/sdlmusic.cpp
2019-09-21 09:37:07 +02:00
Christoph Oelckers
20f5972b9b
- fixed everything to compile again.
2019-09-20 19:37:29 +02:00
terminx
36366c0c98
M-M-M-MUTEX MADNESS
...
git-svn-id: https://svn.eduke32.com/eduke32@7937 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 16:03:04 +02:00
terminx
53cd67b0f2
Add ifdef guard
...
git-svn-id: https://svn.eduke32.com/eduke32@7931 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 16:02:51 +02:00
terminx
0f5f35aa85
Fix build error
...
git-svn-id: https://svn.eduke32.com/eduke32@7927 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 16:01:24 +02:00
terminx
128510a6d9
Change audiolib's SDL driver's mutex stuff to use our implementation
...
git-svn-id: https://svn.eduke32.com/eduke32@7926 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 16:01:22 +02:00
terminx
635a929359
Audiolib housekeeping
...
git-svn-id: https://svn.eduke32.com/eduke32@7918 1a8010ca-5511-0410-912e-c29ae57300e0
# Conflicts:
# source/audiolib/src/multivoc.cpp
2019-09-20 15:50:09 +02:00
terminx
9302e48cef
Use a LUT instead of a switch to handle choosing which audiolib mixer function to use for a voice
...
git-svn-id: https://svn.eduke32.com/eduke32@7917 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:48:58 +02:00
terminx
2307160c4a
Tweak DirectSound error
...
git-svn-id: https://svn.eduke32.com/eduke32@7910 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:46:39 +02:00
terminx
24aba0220d
Replace some of the mutex usage in the DirectSound driver with our own implementation
...
git-svn-id: https://svn.eduke32.com/eduke32@7909 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:46:37 +02:00
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