Commit graph

32 commits

Author SHA1 Message Date
RoqueDeicide
3eabbd3598 Fixed incorrect number of bytes being reported to FluidSynth when relaying a SysEx message. 2024-02-29 18:50:20 +01:00
Sam James
7695852856 Add missing standard library includes (fix build with GCC 13)
GCC 13 (as usual for new compiler releases) shuffles around some
internal includes and so <cstdint> etc is no longer transitively included.

See https://www.gnu.org/software/gcc/gcc-13/porting_to.html.

Bug: https://bugs.gentoo.org/892814
2023-02-04 21:40:13 +01:00
alexey.lysiuk
1dda85bbe1 - fixed crash when FluidSynth soundfont cannot be loaded
Since FluidSynth 2.1.6, delete_fluid_settings() must be called after delete_fluid_synth()
2022-11-21 10:05:18 +02:00
Christoph Oelckers
47475495f4 - integrate FluidSynth directly into the project in source form.
The primary reason for this is to avoid dealing with FluidSynth's rather messy compile setup.
This also protects us from breaking API/ABI changes like between version 1 and 2.

This still needs work for Linux/macOS to deal with glib. Windows works fine.
2022-07-31 12:12:11 +02:00
Emanuele Disco
ad00418fec - fixed fluidsynth settings getting reset to default during midi init playback sequence 2022-04-12 08:52:54 +02:00
Emanuele Disco
f4cfb36f4a Fixes for gus and wildmidi emulation
- fixed gus emulation not working with DMXGUS and DMXGUSC lump
- gus_patchdir and/or ULTRADIR variable can be used to load custom gus patches together with main patches set with midi_config (not required when using DMXGUS(C) lump configuration)
- gus_patchdir and ULTRADIR variable can be used with both DMXGUS and timidity configuration when using GUS emulation
- fixed wildmidi emulation not working with collection of gus patches (resource files)
- removed sf2 files from midi_config items for gus emulation (when using sf2 with gus emulation the sound is distorted), only resource files will be listed to be used with gus emulation.
- removed the `already loaded` check from timidity setup in order to recreate the reader even when changing the gus memory.
2022-04-09 22:41:24 +02:00
Christoph Oelckers
6b5aebf6a3 - fixed inverted error checking logic for loading a patch set in the WildMidi player. 2021-12-29 19:07:32 +01:00
Chris Robinson
db05f4a8ef Implement ZMusic_GetStreamInfo using GetStreamInfoEx 2021-11-06 09:00:11 +01:00
Chris Robinson
3696d8fa27 Add a new ZMusic_GetStreamInfoEx function
This provides cleaner info about the stream format
2021-11-06 09:00:11 +01:00
Cacodemon345
514ef6b528 Add handling for KeyPress events and avoid calling snd_seq_sync_output_queue twice 2021-05-25 13:57:46 +03:00
Cacodemon345
fee3bc352e Improve ALSA MIDI backend
1. No longer excludes builtin MIDI passthrough ports.
2. "GZDoom" references changed to "ZMusic Program".
3. No longer bugs out when MIDI playback is paused.
2021-05-25 13:57:46 +03:00
alexey.lysiuk
2b291705f2 - support dynamic loading of FluidSynth 2.2 2021-05-19 09:13:53 +03:00
alexey.lysiuk
0ee7aa9a5b - support arbitrary number of FluidSynth dynamic library names 2021-05-19 09:13:32 +03:00
alexey.lysiuk
69692696ec - load FluidSynth dynamic library once
https://forum.zdoom.org/viewtopic.php?t=70710
2021-05-19 09:12:59 +03:00
alexey.lysiuk
74ff273a3d - fixed file header in MIDI wave writer
https://forum.zdoom.org/viewtopic.php?t=72161
2021-05-05 11:20:02 +03:00
alexey.lysiuk
0c2ac8cbf3 - open MIDI wave output as binary file
https://forum.zdoom.org/viewtopic.php?t=72161
2021-05-05 11:20:02 +03:00
alexey.lysiuk
e79fdcef2c - forward callback to play device in MIDI wave writer
https://forum.zdoom.org/viewtopic.php?t=72161
2021-05-05 11:18:04 +03:00
alexey.lysiuk
ba9e9da6e6 - fixed incorrect buffer size in wave writer device
See #23
2021-03-19 09:47:22 +02:00
Vitaly Novichkov
8c9f402c31 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 08:03:44 +02:00
Wohlstand
2f5332a461 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 08:03:44 +02:00
Wohlstand
61f54f9487 ADLMIDI: Don't even try to load custom bank if disabled 2020-10-04 08:03:44 +02:00
Wohlstand
14c771f609 OPNMIDI: Fixed an inability to load a custom bank 2020-10-04 08:03:44 +02:00
Wohlstand
03afaef324 Update default bank and some settings of libADLMIDI 2020-10-04 08:03:44 +02:00
alexey.lysiuk
b9d22fb358 - do not expose module_progdir variable
If the same global variable is used by executable that linked to ZMusic dynamic library, both definitions may clash
For example, Linux builds of GZDoom and Raze could crash on exit because of double free, std::string destructor was called twice on the same module_progdir variable
2020-02-23 12:25:52 +02:00
Christoph Oelckers
55921d0d34 - the last bit of needed exports for GZDoom.
The ADL banks must be accessible to the menu for properly setting up this player.
2020-02-08 14:23:29 +01:00
Christoph Oelckers
aa004f78a9 - removed garbage character. 2020-01-11 15:34:33 +01:00
Christoph Oelckers
5c8607c846 - removed the last use of the Alsa message function. 2020-01-11 15:17:00 +01:00
Christoph Oelckers
17d7942d02 - made the global interface c compatible. Added an empty C source so that incompatibilities immediately trigger compile errors.
- simplified the message printing interface to a single function.
2020-01-11 12:47:07 +01:00
Christoph Oelckers
463cd4e0c5 - updated the Alsa MIDI device.
Not tested yet.
2020-01-11 10:31:13 +01:00
Christoph Oelckers
fb0d3ac183 - embedded the default OPN bank directly in the binary so that it works, even if no custom bank is set. 2020-01-04 17:14:09 +01:00
Rachael Alexanderson
7d966ffe65 - fix compile on linux 2020-01-04 10:00:15 -05:00
Christoph Oelckers
a4eae42ec5 - initial commit 2020-01-02 17:52:30 +01:00