Skip to content

Commit 831cba1

Browse files
jimhenryderselbst
authored andcommitted
docs: update audio.sample-format and WASAPI notes
1 parent c06c240 commit 831cba1

1 file changed

Lines changed: 43 additions & 8 deletions

File tree

doc/fluidsettings.xml

Lines changed: 43 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,12 @@ NOTE: You're not expected to look at this raw XML file. Please open it in a webb
1111
https://stackoverflow.com/a/3839054
1212
https://stackoverflow.com/a/6251757
1313
14+
You can start a simple webserver in this directory using python3 like this:
15+
python3 -m http.server 8000
16+
Then open your browser and navigate to:
17+
http://localhost:8000/fluidsettings.xml
18+
This should work in all browsers.
19+
1420
Developers:
1521
- Settings can be deprecated by adding: <deprecated>SOME TEXT</deprecated>
1622
- Real-time settings can be marked with <realtime>SOME OPTIONAL TEXT</realtime>.
@@ -493,8 +499,16 @@ Developers:
493499
</def>
494500
<vals>alsa, coreaudio, dart, dsound, file, jack, oboe, opensles, oss, portaudio, pulseaudio, sdl3, sndman, wasapi, waveout</vals>
495501
<desc>
496-
The audio system to be used. In order to use sdl3 as audio driver, the application is responsible for initializing SDL's audio subsystem.<br /><br /><strong>Note:</strong> waveout is available since fluidsynth 2.1.0, sdl3 since fluidsynth 2.4.4.
497-
</desc>
502+
The audio system to be used.
503+
Some audio drivers support only a subset of audio sample formats.
504+
See <code>audio.sample-format</code> for details, and driver-specific notes
505+
(e.g. WASAPI exclusive mode) for format negotiation behavior.
506+
In order to use sdl3 as audio driver, the application is responsible for initializing
507+
SDL's audio subsystem.
508+
<br /><br />
509+
<strong>Note:</strong> waveout is available since fluidsynth 2.1.0, sdl3 since
510+
fluidsynth 2.4.4.
511+
</desc>
498512
</setting>
499513
<setting>
500514
<name>periods</name>
@@ -534,10 +548,20 @@ Developers:
534548
<name>sample-format</name>
535549
<type>str</type>
536550
<def>16bits</def>
537-
<vals>16bits, float</vals>
538-
<desc>
539-
The format of the audio samples. This is currently only an indication; the audio driver may ignore this setting if it can't handle the specified format.
540-
</desc>
551+
<vals>16bits, 24bits, 32bits, float</vals>
552+
<desc>
553+
Sample format requested for transferring floating point audio samples
554+
from the synthesizer to the audio hardware. The format actually used
555+
depends on the selected audio driver and output device. Some drivers
556+
may ignore this setting or fail to initialize when an unsupported
557+
format is requested.
558+
<br /><br />
559+
At present, only the Windows WASAPI audio driver supports the
560+
<code>24bits</code> and <code>32bits</code> values.
561+
<br /><br />
562+
This setting applies to live audio output only.
563+
For file rendering formats, see <code>audio.file.format</code>.
564+
</desc>
541565
</setting>
542566
<setting>
543567
<name>alsa.device</name>
@@ -624,6 +648,7 @@ Developers:
624648
<li>'s8' is 8 bit signed PCM and</li>
625649
<li>'u8' is 8 bit unsigned PCM.</li>
626650
</ul>
651+
This setting affects file rendering only and is independent of <code>audio.sample-format</code> used by live audio drivers.
627652
</desc>
628653
</setting>
629654
<setting>
@@ -827,8 +852,18 @@ Developers:
827852
<type>bool</type>
828853
<def>0 (FALSE)</def>
829854
<desc>
830-
By default, WASAPI will operate in shared mode. Set it to 1 (TRUE) to use WASAPI in exclusive mode. In this mode, you'll benefit from direct soundcard access via kernel streaming, which has an extremely low latency. However, you must pay close attention to other settings, such as synth.sample-rate and audio.sample-format as your soundcard may not accept any possible sample configuration.
831-
</desc>
855+
By default, WASAPI will operate in shared mode. Set it to 1 (TRUE) to use WASAPI in exclusive mode.
856+
In this mode, you'll benefit from direct soundcard access, which has extremely
857+
low latency. However, in exclusive mode the requested audio configuration must be supported exactly
858+
by the output device.
859+
<br /><br />
860+
Pay close attention to settings of <code>synth.sample-rate</code>, <code>audio.sample-format</code>,
861+
and <code>audio.period-size</code>, as unsupported combinations may cause the WASAPI driver to fail
862+
during initialization.
863+
<br /><br />
864+
The <code>fluidsynth -Q</code> command can be used to list the sample rate and format support status
865+
and recommended period sizes for available WASAPI devices.
866+
</desc>
832867
</setting>
833868
<setting>
834869
<name>waveout.device</name>

0 commit comments

Comments
 (0)