Commit Graph

1401 Commits

Author SHA1 Message Date
Marisa Heit 2867c8d8db Fix potential race condition when creating detached threads 2022-07-25 21:15:29 -05:00
Marisa Heit 32f4347d26 Use native Win32 API instead of glib on Windows
- Don't look for PkgConfig on Win32.
- Don't force glib and gthread on Win32.
- Support finding libsndfile with vcpkg.
- Add enable-static-msvcrt option to use the static VC runtime library.
- Add stubs that define glib functions to Win32 equivalents.
2022-07-24 22:47:32 -05:00
Bill Peterson 57554ee35a Reorder LADSPA fx mixing
This PR moves mixing of LADSPA effects in fluid_rvoice_mixer_process_fx() before mixing of the internal reverb and chorus effects.

Currently, if a user sets synth.audio-groups >1, LADSPA effects can be applied to specific MIDI channels only. The user can then follow @mawe42's great suggestion from the mailing list and use a zero-gain amp effect to mix the LADSPA buffers back to the first host port for output to the sound card (This seems like the most proper way to do this IMO - the LADSPA subsystem shouldn't have to figure out what FluidSynth's audio output channels are on its own).

However, since the internal reverb and chorus are applied first and don't care about synth.audio-groups, the LADSPA effects will appear in the internal effects buffers regardless of which audio_group the currently-playing MIDI channels are part of. Increasing synth.effects-groups is not ideal since it adds a lot of processing load, and also would seem to require that effects-groups always be equal to audio-groups. A user could disable the internal reverb and chorus and add them as LADSPA effects, but it's nice to be able to have backing instruments or tracks from MIDI files play "normally" (i.e. according to the soundfonts' reverb and chorus settings), while a user plays lead with interesting effects that don't alter the backing voices.

Resolves #1117.
2022-06-27 17:45:59 +02:00
derselbst 24898c126d Merge branch '2.2.x' into master 2022-06-27 17:43:09 +02:00
derselbst 1f8c6a4633 Minor cleanup 2022-06-27 17:39:18 +02:00
Pedro López-Cabanillas 9910b0dc9b Adding audio.periods setting to the fluid_pulse audio driver
This common setting was ignored by the PulseAudio driver.
It doesn't change the synthesis buffer size, which is still
the number of frames specified by audio.period-size, but
the number of periods may be raised to request a higher latency
amount, unless audio.pulseaudio.adjust-latency is 1 (the
default). In turn, PulseAudio will grant or not this latency
request. See: [PulseAudio Latency
Control](https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/Developer/Clients/LatencyControl/).
2022-06-27 17:39:18 +02:00
Tom M a50680aafa
Add warnings and extend documentation for issue #1120 (#1126) 2022-06-27 17:26:15 +02:00
Tom M 3a3ed4f783
Fix system-wide config file not loaded (#1121) 2022-06-23 20:32:29 +02:00
derselbst 58ec0d8eb7 Fix div by zero in fluid_player_set_tempo() 2022-06-15 22:07:44 +02:00
derselbst 3591299ea0 Format recent code changes 2022-06-11 17:26:09 +02:00
Bill Peterson ff362b52cd fluid_midi_parser_parse pass all realtime messages 2022-06-10 03:50:08 -05:00
Bill Peterson fe7fa3e309 winmidi pass system realtime messages 2022-06-10 03:49:36 -05:00
Bill Peterson 1b4b7ddbfe alsa_seq pass system realtime messages 2022-06-10 03:49:30 -05:00
derselbst f06619e079 Merge remote-tracking branch 'origin/2.2.x' into master 2022-05-28 22:28:33 +02:00
Tom M 7ede2382d3
More precise wording for new_fluid_audio_driver() 2022-05-26 12:56:56 +02:00
derselbst 0e0a287be4 Merge remote-tracking branch 'origin/2.2.x' into master 2022-05-23 00:40:27 +02:00
derselbst d554067fc5 Fix size_t to int truncation in fluid_wasapi_finddev_callback() 2022-05-21 21:35:16 +02:00
derselbst f013e82d58 Fix size_t to int truncation in new_fluid_midi_file() 2022-05-21 20:48:39 +02:00
derselbst 2779d5b2b8 Merge branch '2.2.x' into master 2022-04-25 20:25:47 +02:00
derselbst 4ee4b0403e Fix Fluidsynth not responding to either SIGTERM nor SIGINT
with recent SDL2
2022-04-22 23:38:33 +02:00
derselbst a0ca05e16d Merge branch '2.2.x' into master 2022-04-21 14:17:01 +02:00
Matt Taylor 552bfce3ed Initialize newly allocated channel map with a value of -1 (off) for all channels.
https://github.com/FluidSynth/fluidsynth/pull/1081#discussion_r853430986
2022-04-19 14:33:13 -06:00
Matt Taylor ab0b79c114 Print debug log message when channel map value is out of range.
https://github.com/FluidSynth/fluidsynth/pull/1081#discussion_r853437544
2022-04-19 14:31:52 -06:00
derselbst 15529d50a8 Make MIDI Event API const correct 2022-04-19 22:15:18 +02:00
derselbst 2acb068075 Fix C90 build 2022-04-19 22:15:03 +02:00
Matt Taylor 7e081d700b Add a safety check in case CoreAudio provides more buffers than were allocated. 2022-04-15 15:13:07 -06:00
Matt Taylor 326d90e952 Add an 'audio.coreaudio.channel-map' setting to enable multi-channel output routing for CoreAudio. 2022-04-15 14:08:21 -06:00
Matt Taylor 49a3b410f0 Enable the 'synth.audio-channels' setting for the CoreAudio driver. 2022-04-15 12:07:53 -06:00
derselbst 757b151601 Move fluid_event_from_midi_event() to fluid_event.c 2022-04-12 21:45:19 +02:00
JimHenry 719b525e2b Add @note and @code to fluid_event_from_midi_event() documentation block. 2022-04-12 10:40:23 +02:00
JimHenry b1a28624ba Add fluid_event_from_midi_event(fluid_event_t *evt, const fluid_midi_event_t *event) to create a sequencer event from a midi event. Issue #1078 2022-04-12 10:37:29 +02:00
Tom M 88e039efeb
Fix fluid_curtime() returning very incorrect timings (#1076) 2022-04-05 22:10:39 +02:00
derselbst 5dcae73657 Merge branch '2.2.x' into master 2022-03-15 21:37:23 +01:00
derselbst 8784dbbc74 Elaborate on MSB and LSB handling, #1052 2022-03-15 21:35:32 +01:00
derselbst 344796a6a8 Potential fix for #1059
Apply Christian's decay to sustain transition hack to modenv as well.
2022-03-06 12:21:38 +01:00
derselbst 122066ca6d Cosmetic changes 2022-03-06 12:19:27 +01:00
derselbst 80611111e9 Merge branch '2.2.x' into master 2022-03-05 17:16:05 +01:00
devingryu 22144a4fa3 Fix oboe driver build issue in latest glib 2022-03-05 17:14:00 +01:00
derselbst 764ceae1ef Fix Sustained voices being held after ALL_CTRL_OFF 2022-02-25 18:47:47 +01:00
derselbst 62ed1c813d Fix Portamento FromKey issue 2022-02-25 18:29:31 +01:00
Brad Howes 8d00f6cdac Proper version check. validated on macOS 11.6.1 and macOS 12.2.1 2022-02-25 17:18:13 +01:00
derselbst 3ac9b6fbf0 Merge branch '2.2.x' into master 2022-02-20 18:27:41 +01:00
Tom M adc2794ef6
Merge pull request #1038 from FluidSynth/oss-new
Revise OSS driver a bit
2022-02-20 18:26:41 +01:00
Brad Howes a5bdbd57e2 Improvements on patches from feedback. 2022-02-20 18:20:16 +01:00
Brad Howes d8113d497b Consider earlier releases 2022-02-20 18:20:07 +01:00
Brad Howes ac0aab2fa0 Silence compiler warnings on macOS 2022-02-20 18:19:54 +01:00
Tom M 0b4fa214b6
Initialize Pipewire with pw_init() (#1032)
Before you using any PipeWire functions, one must call pw_init() (e.g. https://docs.pipewire.org/page_tutorial1.html)
2022-01-29 13:13:25 +01:00
devingryu b89898ef7f
Use project-specific SOURCE_DIR and BINARY_DIR (#1040) 2022-01-29 13:11:29 +01:00
derselbst 4a36f0b085 Undeprecate OSS as it's needed on BSD 2022-01-28 16:35:35 +01:00
derselbst 3e0321f49c Remove FIXME in OSS driver
Why shouldn't we reuse the int16 buffer for dithering before streaming to OSS?
2022-01-28 16:35:07 +01:00