Commit graph

1033 commits

Author SHA1 Message Date
Filippos Karapetis
404d098e33 AUDIO: Use pointers when deleting inside range loops 2025-03-27 13:47:57 +08:00
Filippos Karapetis
2255fb7d53 AUDIO: Use C++ 11 range-based for loops 2025-03-27 13:47:57 +08:00
Donovan Watteau
30536b1e02 AUDIO: JANITORIAL: Replace a broken URL with a Wayback Machine copy 2025-03-24 14:42:19 +01:00
Cameron Cawley
77523c844c CONFIGURE: Make SVQ1 and QDM2 optional components 2025-03-03 07:31:41 +02:00
Coen Rampen
ed650e1cf0 AUDIO: Fix OPL channel allocation for rhythm mode 2025-02-22 23:13:54 +01:00
Coen Rampen
9789f6914b DARKSEED: Implement floppy version music 2025-02-22 23:13:54 +01:00
Misty De Meo
5aab0d9a95
AUDIO: remove orphaned constants
These are no longer used after debe30b25e.
2025-02-08 22:34:27 -08:00
Coen Rampen
debe30b25e AUDIO: Add full support for type 1 SMF
Type 1 SMF files consist of multiple tracks that are to be played simultaneously
in parallel. Support for this was previously implemented by merging these tracks
into one single track, then treating the result as a regular type 0 SMF file.

This commit adds full support for type 1 files. The parallel tracks are loaded
as subtracks of the parent track and played simultaneously in real time. This
allows for support of MIDI formats with parallel subtracks that do not use the
SMF format (Dark Seed floppy version) or that jump to offsets within each
parallel subtrack (Origin MIDI).
2025-02-07 14:10:52 +01:00
Cameron Cawley
7187c9293f AUDIO: Mark more AdLib symbols as const 2025-01-28 23:24:40 +02:00
Raffaello Bertini
15425aa66b AUDIO: Fix playback in OPL3 mono mode
If running an OPL2 track on a DOS_BOX OPL3 emulator,
The buffer will be divided by 2 like if it is stereo,
but it will generate a mono audio stream, as opl3Active
flag is disabled, so it will act as an OPL2.
The error results in wrong sound produced.
This fix the issue when OPL3 is used as an OPL2 and therefore
as a mono audio source.

The current error should be easily reproducible if
using OPL3 with .ADL Westwood's files.

This bug it might have never been noticed because those files,
in kyra engine, are using always OPL2 (kAdlib) is used.

When DosBox OPL3 Emulator is run as OPL2 compatibilty mode,
requires to call the GenerateBlock2 method as the internal
stereo mode used in GenerateBlock3 is not activated.

This fix covers all scenarios:
- OPL2: default common base case, non stereo.
- DUAL_OPL2: This is kind of OPL3 mode,
             I don't think is really fully supported,
- OPL3 in OPL2 mode: In this scenario the audio buffer is stereo, but
                     the emulator is generating mono audio.
- OPL3 in OPL3 mode: this is the full stereo mode of OPL3.
2025-01-24 22:40:35 +01:00
Le Philousophe
de5b118fe5 AUDIO: MT32: Force MT32 rebuild after configure is run
When configuration flags are changed (ASan enabling for example), force
rebuild the MT32 objects.
They were not rebuild because not depending on config.h
2024-12-29 01:10:52 +01:00
Thierry Crozat
ae660505a4 AUDIO: Fix Fluidsynth soundfont path check on iOS
On iOS a sandboxed filesystem is used where the root is in the
Application folder instead of being the filesystem root. As a
result path used in ScummVM (for example for FSNode) are different
from filesystem paths. For fluidsynth the internal soundfont path
is transformed to a filesystem path to pass to the fluidsynth
library. On iOS trying to create a FSNode with that full path does
not work and that caused the soundfont existence check to fail.
2024-12-27 10:16:48 +02:00
Eugene Sandulenko
be4ac56d3b
CONFIGURE: Turned MPC into a component 2024-12-26 22:57:11 +01:00
Eugene Sandulenko
c0f635ba38
CONFIGURE: Added VGMTrans Soundfont audio as a component 2024-12-26 22:54:56 +01:00
Thierry Crozat
bf2a6fc638 CONFIGURE: Fix compilation with mt32emu enabled 2024-12-26 21:27:23 +01:00
Eugene Sandulenko
bd88407cdd
CONFIGURE: Skip compilation of unnecessary file with mt32emu disabled 2024-12-26 19:38:28 +01:00
Eugene Sandulenko
89febd4230
CONFIGURE: Turned sid_audio into a component 2024-12-26 19:30:48 +01:00
Eugene Sandulenko
4a70b3507f
CONFIGURE: Added fmtowns_pc98_audio as a component 2024-12-26 19:18:49 +01:00
Hubert Maier
f54fd81b4f
JANITORIAL: Fix typos in general files 2024-12-25 16:57:34 +02:00
athrxx
f06279c8b2 SCUMM: (IMS) - get rid of Mac sfx instrument type
(since it was an unnecessary hack)
2024-11-23 23:07:44 +01:00
elasota
ca88c52064 AUDIO: Split MIDI check flags out, fail checkDevice by default for "auto" 2024-11-04 23:00:57 +02:00
elasota
6a03f4ada3 AUDIO: Add checkDevice support for FluidSynth 2024-11-04 23:00:57 +02:00
Coen Rampen
db130d6dab DARKSEED: Improve CD music accuracy 2024-11-02 18:11:29 +01:00
Coen Rampen
bcdd54ee8d DARKSEED: Add CD version music player 2024-10-27 21:34:06 +01:00
Cameron Cawley
197ba8cbd5 BACKENDS: Remove leftover GP2X references 2024-09-29 22:48:29 +01:00
D G Turner
e6c3b103c9 AUDIO: Fix Empty Format String GCC Compiler Warning 2024-09-21 23:29:06 +01:00
Filippos Karapetis
86a1190200 AUDIO: Remove most goto statements from the Maxtrax decoder 2024-09-19 18:10:05 +03:00
Filippos Karapetis
962e711b8e AUDIO: Adapt maxtrax debug code to our standards
The debug information is now tied to a debug level, similar to
how it's implemented in the rest of our codebase
2024-09-19 17:21:27 +03:00
Hubert Maier
11ecd6982e JANITORIAL: AUDIO: Fix typos 2024-09-13 12:04:57 +03:00
Torbjörn Andersson
4877a1981d AUDIO: Sync with upstream Nuked OPL. Last commit: cfedb09e 2024-09-09 09:25:43 +03:00
Le Philousophe
9d5a5e092b AUDIO: Add support for libmpcdec 1.2.6
Previously, only the latest release was supported.
2024-09-07 00:15:07 +02:00
Le Philousophe
867cbfcd0d ANDROID: Create a dedicated define for Android backend
This allows other backends (SDL, libretro) to be used on Android without
hacks.
2024-09-02 20:53:57 +03:00
Eugene Sandulenko
8df0a89aba QDENGINE: Mark image/video decoders used by the engine 2024-08-22 22:09:48 +02:00
Eugene Sandulenko
91e5394f5c
JANITORIAL: Remove trailing spaces 2024-08-14 19:10:00 +02:00
Eugene Sandulenko
e55c79a5d9
AUDIO: Added MPC (musepack7+) decoder, based on libmpcdec library 2024-08-14 16:11:20 +02:00
Donovan Watteau
724fedbbe5 BUILD: AUDIO: Drop support for FLAC < 1.1.3
FLAC 1.1.3 (and its newer API) was released in late 2006, so it has probably
"propagated everywhere" now.
2024-08-11 19:51:39 +03:00
Cameron Cawley
5f70129eab AUDIO: Remove unused interface for OPL reads 2024-08-11 17:54:01 +03:00
chillywillysoft
3e55f172d8 SOFTSYNTH/PCSPK: fix overflow to allow sounds longer than 97 ms (at 44100 Hz) 2024-08-06 20:20:09 +03:00
Cameron Cawley
421cb1f087 COMMON: Rename common/math.h to common/intrinsics.h 2024-07-27 14:00:48 +03:00
Eugene Sandulenko
8d4b8d2c70
AUDIO: Add missing override keyword 2024-07-27 10:15:21 +02:00
Cameron Cawley
b5887b2464 AUDIO: Share code between OPL and CMS implementations 2024-07-27 00:54:57 +03:00
Cameron Cawley
e3b16b832d AUDIO: Change the EmulatedCMS API to match EmulatedOPL 2024-07-27 00:54:57 +03:00
Paul Gilbert
3d71d8e08c COMMON: Move huffman.h to common/compression/ 2024-07-15 02:56:12 +02:00
Filippos Karapetis
cd2f52339f AUDIO: Remove leftover reference to common/inttypes.h 2024-07-04 15:18:00 +03:00
Torbjörn Andersson
a16f24b9bb AUDIO: Sync with upstreams Nuked OPL. Last commit: 730f8c2 2024-07-04 15:13:11 +03:00
Filippos Karapetis
7347a82df2 COMMON: Remove inttypes.h
It contains defines that should be available from scummsys.h.
Also, it contains defines to support ancient and
now unsupported versions of MSVC (2013 and earlier)
2024-07-04 00:03:15 +03:00
Scott Percival
413c0aed2a
COMMON: Add QuickTime IMA ADPCM decoder for AIFF
Fixes numerous sound files in AMBER: Journeys Beyond.
2024-06-22 15:07:41 +08:00
Cameron Cawley
1357bfe672 COMMON: Avoid including engine headers in common code for DebugChannelDef 2024-06-20 20:15:57 +01:00
Cameron Cawley
bd124e2956 AUDIO: Clarify the return value of Mixer::getOutputBufSize() 2024-06-05 12:32:25 +01:00
athrxx
d7e8a54756 AUDIO/GUI: add Mac sound option 2024-05-30 20:10:51 +02:00