Vitaly Novichkov
daf6321dbc
ADLMIDI: Set the different gain per volume model
...
Different volume models were means louder or quiter sounding of the rest of notes in the song. And to avoid the mess between volume models, let's use different gain factor for each volume model?
2020-10-04 12:50:28 +02:00
Wohlstand
d4bd1a369f
ADL & OPN: Added SysEx calls
...
They are supported by those engines and needed for XG and GS specific controls: GS custom drums are working and supported!
2020-10-04 12:50:26 +02:00
Wohlstand
3b37bcf684
ADLMIDI: Don't even try to load custom bank if disabled
2020-10-04 12:50:24 +02:00
Wohlstand
a574025373
OPNMIDI: Fixed an inability to load a custom bank
2020-10-04 12:50:22 +02:00
Wohlstand
115388800f
Use the "Auto" volume model by default at libADLMIDI
...
After a small set of tests, it's fine to use the "AUTO" volume model by default.
Every embedded bank and every WOPL file has a setting of a volume model that matches to the behavior of the original OPL2/3 driver of each volume model.
2020-10-04 12:50:17 +02:00
Wohlstand
243aa96931
Update default bank and some settings of libADLMIDI
2020-10-04 12:50:14 +02:00
Christoph Oelckers
e504b2682e
- embedded the default OPN bank directly in the binary so that it works, even if no custom bank is set.
2020-10-04 12:50:12 +02:00
alexey.lysiuk
479f421007
- fixed event processing in XMI reader
...
Event pointer was moved forward twice leaving arbitrary garbage data in the stream
https://forum.zdoom.org/viewtopic.php?t=69631
2020-08-22 13:07:43 +02:00
alexey.lysiuk
bbf72c2891
- fixed switching of subsong for already playing GME song
...
https://forum.zdoom.org/viewtopic.php?t=67564
2020-02-26 12:49:23 +01:00
Christoph Oelckers
c57e16edf8
- use C++11 features to delete unwanted methods.
2020-02-26 12:49:21 +01:00
Christoph Oelckers
08f5a941c5
- fixed: StreamSong did not flag itself as stopped when non-looping playback ended.
2020-02-26 12:49:20 +01:00
Christoph Oelckers
6a2b4c5bef
- fixed uninitialized variables in decoders.
2020-02-26 12:49:18 +01:00
alexey.lysiuk
42f732798d
- fixed uninitialized variable in OPL song
...
Mono streams could be erroneously treated as stereo, doubling their playback speed
https://forum.zdoom.org/viewtopic.php?t=66939
2020-01-12 18:08:47 +01:00
drfrag
cb48b796a8
- Fixed compilation with MinGW.
2020-01-10 01:11:54 +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
Christoph Oelckers
1cf5ce6bab
- fixed warnings.
2020-01-07 18:37:01 +01:00
Rachael Alexanderson
a085088893
- add EnumerateDevices for alsa per suggestion of the original author
2020-01-07 18:36:59 +01:00
Rachael Alexanderson
f67b217415
- fix compiler error with Alsa enumeration
2020-01-07 18:36:58 +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
b6577d9f55
- forgot to save this one.
2020-01-07 18:07:28 +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
alexey.lysiuk
e1460eb050
- fixed crash during enumeration of MIDI devices
...
libraries/zmusic/zmusic/configuration.cpp:109:9: warning: returning reference to local temporary object [-Wreturn-stack-address]
2020-01-07 18:04:30 +01:00
Petr Mrázek
b07254507a
- Support for MIDI on Linux via alsa sequencer
2020-01-07 18:04:28 +01:00
Christoph Oelckers
a92f71917a
- apply the ZMusic mutex a bit more finely grained.
...
It should only guard the critical parts, like calling Stop() but can let Update and IsPlaying method work unhindered otherwise.
2020-01-06 01:30:55 +01:00
Christoph Oelckers
5544e50ca4
- fixed: ZMusic_Close may not lock the mutex because it will delete it.
...
Here the calling code must ensure that the music object won't be accessible anymore before it gets deleted.
2020-01-06 01:30:47 +01:00
Christoph Oelckers
2498fbf2b7
- Moved all music related synchronization to the top level
...
Most of the synchronization was too deep in the implementation so that it did not guard everything it needed.
Now each song has precisely one mutex which must be locked for all access to its internals - this is done in the public ZMusic interface
2020-01-06 01:30:45 +01:00
Christoph Oelckers
6b098107ce
- ZMusic interface refactoring.
...
Use global functions instead of the class interface which exposed too many implementation details.
2020-01-06 01:30:43 +01:00
alexey.lysiuk
baa613ff62
- added dynamic loading of FluidSynth 2.x
2020-01-06 01:11:20 +01:00
alexey.lysiuk
f144af949b
- return null instead of throwing exception if CD playback isn't supported
...
The game should switching to MIDI music on platforms without CD playback support
It was impossible to start Hexen on platforms other than Windows
2020-01-06 01:11:02 +01:00
alexey.lysiuk
fe76293f2d
- handled differences of values returned by fluid_settings_...() functions
...
FluidSynth 1.x: these functions return 1 on success and 0 otherwise
FluidSynth 2.x: these functions return FLUID_OK (0) on success and FLUID_FAILED (-1) otherwise
2020-01-05 21:09:31 +01:00
alexey.lysiuk
d7f0da033d
- fixed setting of FluidSynth reverb and chorus
2020-01-05 21:09:29 +01:00
alexey.lysiuk
922eb28ca2
- fixed compilation with old versions of Xcode
...
libraries/zmusic/mididevices/music_fluidsynth_mididevice.cpp:628:3: error: use of undeclared identifier 'free'
2020-01-05 21:08:03 +01:00
alexey.lysiuk
9d49e33a80
- cleaned POSIX compiler arguments for libraries
...
Removed omission of frame pointers as it makes crash reports much less useful
Modified warning flags to hide annoying reports for external code
2020-01-05 21:08:01 +01:00
alexey.lysiuk
4c099300ca
- implemented str(n)icmp function definitions via CMake macro
2020-01-05 21:07:58 +01:00
alexey.lysiuk
aa8438cb45
- applied fast math flags to C and C++ files
...
Avoid copy-paste using CMake macro
# Conflicts:
# CMakeLists.txt
# libraries/glslang/OGLCompilersDLL/CMakeLists.txt
# libraries/glslang/glslang/CMakeLists.txt
# libraries/glslang/spirv/CMakeLists.txt
2020-01-05 21:07:36 +01:00
alexey.lysiuk
49b8bedc86
- fixed: soundfont selection for FluidSynth was ignored
2020-01-05 21:06:42 +01:00
alexey.lysiuk
a4930f9d8b
- restored ability to link with thirdparty sound libraries explicitly
...
DYN_SNDFILE=NO and DYN_MPG123=NO were ignored while DYN_FLUIDSYNTH=NO broke compilation
These options should be applied to ZMusic target instead of the main executable
As a bonus, it's now possible to build GZDoom without FluidSynth
2020-01-05 21:06:37 +01:00
Christoph Oelckers
89d7330ba9
- cleanup of the sound init/exit code.
...
Now there is only one single entry point for both, instead of previously 2 entry and 4 exit points.
This also eliminates the explicit shutdown of ZMusic. Timidity++'s two buffers have been put in containers that self-destruct on shutdown and calling dumb_exit is not necessary because the only feature requiring it is not used by any code in the music library.
2020-01-05 21:04:09 +01:00
drfrag
731e11bd88
- Add libdl to ZMusic for linux targets, hope this fixes linking.
2020-01-05 14:44:54 +01:00
alexey.lysiuk
0c86fad217
- fixed build issues with POSIX targets
2020-01-05 14:44:01 +01:00
Christoph Oelckers
0888b0b0e7
- fixed the CDDA check to not catch all RIFF files.
2020-01-05 14:39:11 +01:00
Christoph Oelckers
7bd8abc074
- fixed crash with non-looping music ending.
...
In this case it was the song terminating the stream, with the new setup the main music code has to do this itself.
2020-01-05 14:39:09 +01:00
Christoph Oelckers
1616bc93a7
- fixed compilation on Windows.
...
# Conflicts:
# libraries/zmusic/musicformats/win32/i_cd.cpp
# Conflicts:
# libraries/zmusic/musicformats/win32/i_cd.cpp
2020-01-05 14:39:08 +01:00
Christoph Oelckers
ee4bf9670e
- renamed a few functions in the public interface of ZMusic.
2020-01-05 14:39:03 +01:00
Christoph Oelckers
16212e946b
- moved the music loader code to ZMusic.
...
This was the final piece of code reorganization.
What's left is cleaning up the interface.
2020-01-05 14:39:01 +01:00