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