Commit graph

62 commits

Author SHA1 Message Date
Atsushi Eno
4240d31e51
Implement Android Oboe audio error recovery mode. (#940)
Context: https://github.com/FluidSynth/fluidsynth/discussions/931

There is a new settings "audio.oboe.error-recovery-mode" which has
string value of "Reconnect" (default) or "Stop".

Under `Reconnect` mode, it automatically recreate AudioStream for the
same audio device ID (which is the default = valid device, unless a
specific ID is specified). The behavior is the same as OpenSLES.

In the future Fluidsynth might want to provide consistent error handling
mode for audio device unplugged state, but so far this change makes apps
behave not too weird.
2021-07-15 21:40:07 +02:00
Tom M
e3957306e8
Update default value of audio.driver 2021-05-08 11:27:54 +02:00
Marcus Weseloh
7dd870f498 Update player.reset-synth doc with new behaviour 2021-03-24 20:41:48 +01:00
Tom M
8745f542c2
Merge pull request #747 from FluidSynth/oboe-phil
Update Oboe driver
2021-02-06 10:43:07 +01:00
derselbst
641605294c Introduce audio.oboe.sample-rate-conversion-quality setting 2021-01-30 19:31:51 +01:00
derselbst
977fe31ef4 Document the impact of synth.sample-rate on audio drivers 2021-01-30 18:45:21 +01:00
derselbst
9e0c401aeb Document new WASAPI settings and other missing ones 2021-01-29 14:57:25 +01:00
derselbst
b14265cf99 Elaborate on synth.device-id 2020-12-18 11:57:11 +01:00
Marcus Weseloh
3c1c796396 Add generated fluidsettings.txt for fluidsynth.org API doc build
Probably not the final solution, but works for now.
2020-11-14 15:10:57 +01:00
Marcus Weseloh
ee2ac9e1d9 Mark settings with callbacks as realtime and output this in the generated docs 2020-11-13 20:46:02 +01:00
Marcus Weseloh
54e164426f As gs is default for midi-bank-select, list it as first option for clarity 2020-11-02 19:33:08 +01:00
Marcus Weseloh
f1d760f02c Update ladspa.active description
Use 1 (TRUE) for consistency and mention LADSPA documentation
2020-11-02 19:32:37 +01:00
Marcus Weseloh
f3390e8049 Update effects-groups description to avoid the word "unit" 2020-11-02 19:31:54 +01:00
Marcus Weseloh
4fef48e740 Better explain currently unused effects-channels 2020-11-02 19:31:31 +01:00
Marcus Weseloh
f2d0789b26 Consistently format all floats 2020-11-02 19:30:24 +01:00
Marcus Weseloh
d14c9edc4f Update periods and period-size with current values from source 2020-11-02 19:05:36 +01:00
Marcus Weseloh
cd4376dfea shell.port is an int setting, not num 2020-11-02 19:00:35 +01:00
Marcus Weseloh
8d5377e391 Use (empty string) for empty default values of str settings 2020-11-02 18:55:36 +01:00
Marcus Weseloh
4f50c7278c Cleanup section label markup and rendering 2020-11-02 18:49:13 +01:00
derselbst
15d4794013 Elaborate on synth.cpu-cores 2020-10-11 18:48:53 +02:00
jjceresa
b55884b273
Make winmidi driver multi devices capable. (#677) 2020-09-27 14:22:56 +02:00
derselbst
f14c33a4e6 Elaborate docs of audio.realtime-prio 2020-04-22 17:28:38 +02:00
derselbst
eff728753b Update API docs 2020-03-08 09:55:09 +01:00
jjceresa
0288466f40 Chorus enhancement. (#548)
This adds new LFO modulators:
 - these modulators are computed on the fly, instead of using lfo lookup table. Advantages:
      - Avoiding a lost of 608272 memory bytes when lfo speed is low (0.3Hz).
      - Allows to diminish the lfo speed lower limit to 0.1Hz instead of 0.3Hz.
        A speed of 0.1 is interesting for chorus. Using a lookup table for 0.1Hz
        would require too much memory (1824816 bytes).
      - Make use of first-order all-pass interpolator instead of bandlimited interpolation.
      - Although lfo modulator is computed on the fly, cpu load is lower than using
        lfo lookup table with bandlimited interpolator.

Also adds a stereo unit controlled by WIDTH macro. WIDTH [0..10] value define a stereo separation between left and right.
 - When 0, the output is monophonic.
 - When > 0 , the output is stereophonic.

 WIDTH is currently fixed to maximum value to provide maximum stereo effect.
2019-10-23 16:41:13 +02:00
Atsushi Eno
daa037b0d3 Add Android audio drivers based on OpenSLES and Oboe (#464)
This set of changes implements audio drivers for Android, OpenSLES and Oboe. The changes in the original sources are kept minimal so that it should be easily maintained.
2019-03-27 18:02:23 +01:00
derselbst
5fe56b32b2 clarify availability sdl2 and waveout audio driver options 2018-12-21 20:11:01 +01:00
carlo-bramini
978283bbf0 Add Sdl2 driver (#478) 2018-12-14 16:43:35 +01:00
derselbst
d5ba910f3c document waveout option for audio.driver 2018-12-04 19:36:10 +01:00
derselbst
ac356a408b update fluidsettings.xml on jack midi autoconnect 2018-10-31 13:14:59 +01:00
derselbst
fd7db023dd set upper chorus depth to 256 ms
upper depth limit (ms) = (MAX_SAMPLES * 1000) / lower sample rate limit

with MAX_SAMPLES==2048 && lowersrate==8000
2018-10-05 18:39:54 +02:00
derselbst
0fb62e4184 fix lower limit of synth.sample-rate in docs 2018-10-05 18:12:27 +02:00
derselbst
e2e34ba9eb update fluidsettings regarding coremidi autoconnect 2018-09-15 14:13:35 +02:00
derselbst
253a381898 update the documentation of synth.effects-groups
and some related settings
2018-07-11 13:16:50 +02:00
derselbst
0188cd9d93 rename reverb roomsize setting to match naming conventions 2018-05-17 21:44:03 +02:00
derselbst
57abab0a31 document reverb and chorus settings 2018-05-17 19:59:34 +02:00
derselbst
36546a9efb remove synth.parallel-render setting 2018-05-09 20:54:51 +02:00
Marcus Weseloh
4cfdacd905 Fix typo in dynamic-sample-loading settings documentation 2018-04-21 23:38:12 +02:00
Marcus Weseloh
073da2141c Implement dynamic sample loading
This change adds a new feature that enables loading and unloading of
sample data on demand. As soon as a preset is selected for a channel, all
of it's samples are loaded into memory. When a preset is unselected, all
of it's samples are unloaded from memory (unless they are being used by
another selected preset).

This feature is disabled by default and can be switched on with the
"synth.dynamic-sample-loading" setting.
2018-04-18 09:14:55 +02:00
derselbst
5829fdc27c remove obsolete synth.parallel-render setting 2018-04-08 12:10:33 +02:00
Tom M
a807ea22b3
Update fluidsettings.xml
document synth.default-soundfont and synth.lock-memory
2018-02-08 12:58:25 +01:00
Marcus Weseloh
aff8f0d458 Cleanup initial attenuation generator value handling (#324)
The EMU8k/10k hardware applies a 0.4 factor to all initially set attenuation generator values. Do this once on soundfont load.

Remove the invalid -531.509 power factor that was computed from Timidiy's non-standard conversion table. And remove the synth.volenv switch again, as the "compliant" setting wasn't compliant at all.

This allows us to get rid of the atten2amp function and use cb2amp everywhere, with a range of 0 1440 centibels.

Fixes #70 
Supersedes #71 
Supersedes #318
2018-01-09 16:30:43 +01:00
derselbst
07a167c737 update doc about "audio.pulseaudio.adjust-latency"
addresses #303
2017-12-16 10:16:04 +01:00
Marcus Weseloh
d77974c135 Add note about channel numbers being 1-based. 2017-12-04 18:50:43 +01:00
Marcus Weseloh
a3aef4b2ee Add ability to mark channels as important in overflow priority calculation
FluidSynths overflow priority calculation, that determines which voice to
kill if the current polyphony limit has been reached, treats all channels
as equal. Only percussion channels can get a user defined score added to
their priority.

In certain use-cases there can be a number of MIDI channels that are much
more important than other ones, and not just percussion channels. For
example, a channel playing a constant pad sound which would be very
noticeable if killed.

This change adds two new synth.overflow settings:
- synth.overflow.important
- synth.overflow.important-channels

They add the ability to mark MIDI channels as "important" and have
the overflow calculation add a user defined score to voices on those
channels.
2017-12-02 15:57:21 +01:00
Marcus Weseloh
0a57c4cf0a Document synth.overflow.* settings 2017-12-02 15:54:45 +01:00
derselbst
58a5f43d6a update fluidsettings about unique portaudio device names 2017-11-26 13:49:55 +01:00
derselbst
56969332b2 promote audio.alsa.autoconnect to a more general setting
that could be used across different midi drivers
2017-10-26 15:56:27 +02:00
derselbst
7c523979be document audio.alsa.autoconnect 2017-10-25 17:10:56 +02:00
Tom M
09f237fd0c clarify xg bank select documentation
addressing #228
2017-10-19 23:08:15 +02:00
Tom M
9ba8136ce0 Update fluidsettings.xml
line wrap
2017-10-19 13:12:40 +02:00