mirror of
https://github.com/ZDoom/fluidsynth.git
synced 2024-11-10 15:01:40 +00:00
Made some improvements
This commit is contained in:
parent
8ec42b17b7
commit
e7484820a0
1 changed files with 456 additions and 159 deletions
|
@ -2,8 +2,7 @@
|
||||||
<article>
|
<article>
|
||||||
<articleinfo>
|
<articleinfo>
|
||||||
<title>
|
<title>
|
||||||
FluidSynth
|
FluidSynth 1.0 - Developer Documentation
|
||||||
Developer Documentation
|
|
||||||
</title>
|
</title>
|
||||||
|
|
||||||
<author>
|
<author>
|
||||||
|
@ -25,15 +24,42 @@
|
||||||
SoundFont 2 specifications. The synthesizer is available as a
|
SoundFont 2 specifications. The synthesizer is available as a
|
||||||
shared object that can easily be reused in any application that
|
shared object that can easily be reused in any application that
|
||||||
wants to use wavetable synthesis. This documents explains the
|
wants to use wavetable synthesis. This documents explains the
|
||||||
nitty-gritty.</para>
|
basic usage of FluidSynth. Some of the more advanced features
|
||||||
|
are not yet discussed but will be added in future
|
||||||
|
versions.</para>
|
||||||
|
|
||||||
</abstract>
|
</abstract>
|
||||||
</articleinfo>
|
</articleinfo>
|
||||||
|
|
||||||
<sect1>
|
<sect1>
|
||||||
<title>Using the synthesizer as a plugin</title>
|
<title>Using the synthesizer as a plugin</title>
|
||||||
|
|
||||||
<para>FluidSynth can easily be embedded in an application.</para>
|
<para>FluidSynth can easily be embedded in an application. It has
|
||||||
|
a main header file, fluidsynth.h, and one dynamically linkable
|
||||||
|
library. FluidSynth runs on Linux, MacOS 9, MacOS X, and the Win32
|
||||||
|
platforms. It has audio and midi drivers for all mentioned
|
||||||
|
platforms but you can use it with your own drivers if your
|
||||||
|
application already handles audio and MIDI IO. This document
|
||||||
|
explains the basic usage of FluidSynth and provides and example
|
||||||
|
that you can reuse. </para>
|
||||||
|
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
|
||||||
|
<sect1>
|
||||||
|
<title>License</title>
|
||||||
|
|
||||||
|
<para>All the source code examples in this document are in the
|
||||||
|
public domain; you can use it as you please. This document is
|
||||||
|
licensed under the Creative Commons Attribution License. To view a
|
||||||
|
copy of this license, visit
|
||||||
|
http://creativecommons.org/licenses/by/1.0/ or send a letter to
|
||||||
|
Creative Commons, 559 Nathan Abbott Way, Stanford, California
|
||||||
|
94305, USA. FluidSynth is distributed under the GNU Library
|
||||||
|
General Public License. A copy of the GNU Library General Public
|
||||||
|
License is contained in the FluidSynth package; if not, write to
|
||||||
|
the Free Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||||
|
02111-1307 USA. </para>
|
||||||
|
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
|
@ -46,9 +72,8 @@
|
||||||
FluidSynth library. It gives a unified API to set the parameters
|
FluidSynth library. It gives a unified API to set the parameters
|
||||||
of the audio drivers, the midi drivers, the synthesizer,
|
of the audio drivers, the midi drivers, the synthesizer,
|
||||||
andsoforth. A number of default settings are defined by the
|
andsoforth. A number of default settings are defined by the
|
||||||
current implementation. In future versions the use of the settings
|
current implementation. In future versions, the use of the
|
||||||
will probably be generalized and used also for LADSPA plugins.
|
settings will probably be generalized.</para>
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
All settings have a name that follows the "dotted-name"
|
All settings have a name that follows the "dotted-name"
|
||||||
|
@ -61,12 +86,16 @@
|
||||||
<function>fluid_synth_setint</function> functions. For example:
|
<function>fluid_synth_setint</function> functions. For example:
|
||||||
|
|
||||||
<programlisting>
|
<programlisting>
|
||||||
void init()
|
#include <fluidsynth.h>
|
||||||
|
|
||||||
|
int main(int argc, char** argv)
|
||||||
{
|
{
|
||||||
fluid_settings_t* settings;
|
fluid_settings_t* settings = new_fluid_settings();
|
||||||
|
|
||||||
settings = new_fluid_settings();
|
|
||||||
fluid_synth_setint(settings, "synth.polyphony", 128);
|
fluid_synth_setint(settings, "synth.polyphony", 128);
|
||||||
|
|
||||||
|
delete_fluid_settings(settings);
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
</programlisting>
|
</programlisting>
|
||||||
|
|
||||||
|
@ -74,7 +103,7 @@ void init()
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
The API contains the functions to query the type, the current
|
The API contains the functions to query the type, the current
|
||||||
value, the default value, the range and and the "hints" of a
|
value, the default value, the range and the "hints" of a
|
||||||
setting. The range is the minumum and maximum value of the
|
setting. The range is the minumum and maximum value of the
|
||||||
setting. The hints gives additional information about a
|
setting. The hints gives additional information about a
|
||||||
setting. For example, whether a string represents a filename. Or
|
setting. For example, whether a string represents a filename. Or
|
||||||
|
@ -89,20 +118,26 @@ void init()
|
||||||
<title>Creating the synthesizer</title>
|
<title>Creating the synthesizer</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
To create the synthesizer, you pass it the settings object, like
|
To create the synthesizer, you pass it the settings object, as
|
||||||
in the following example:
|
in the following example:
|
||||||
|
|
||||||
<programlisting>
|
<programlisting>
|
||||||
void init()
|
#include <fluidsynth.h>
|
||||||
|
|
||||||
|
int main(int argc, char** argv)
|
||||||
{
|
{
|
||||||
fluid_settings_t* settings;
|
fluid_settings_t* settings;
|
||||||
fluid_synth_t* synth;
|
fluid_synth_t* synth;
|
||||||
|
|
||||||
settings = new_fluid_settings();
|
fluid_settings_t* settings = new_fluid_settings();
|
||||||
|
|
||||||
/* Set the settings, if necessary */
|
|
||||||
|
|
||||||
synth = new_fluid_synth(settings);
|
synth = new_fluid_synth(settings);
|
||||||
|
|
||||||
|
/* Do useful things here */
|
||||||
|
|
||||||
|
delete_fluid_synth(synth);
|
||||||
|
delete_fluid_settings(settings);
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
</programlisting>
|
</programlisting>
|
||||||
</para>
|
</para>
|
||||||
|
@ -111,34 +146,294 @@ void init()
|
||||||
The default settings should be fine for most uses. A detailed
|
The default settings should be fine for most uses. A detailed
|
||||||
description of all the settings used by the synthesizer described
|
description of all the settings used by the synthesizer described
|
||||||
below.
|
below.
|
||||||
</para>
|
|
||||||
|
|
||||||
|
<table frame=all><title>Synthesizer settings</title>
|
||||||
|
<tgroup cols=3 align=left colsep=0 rowsep=0>
|
||||||
|
<tbody>
|
||||||
|
|
||||||
|
<!-- ---------------------------- -->
|
||||||
|
<row>
|
||||||
|
<entry>synth.gain</entry>
|
||||||
|
<entry>Type</entry>
|
||||||
|
<entry>number</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>Default</entry>
|
||||||
|
<entry>0.2</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>Min-Max</entry>
|
||||||
|
<entry>0.0-10.0</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>Description</entry>
|
||||||
|
<entry>The gain is applied to the final or master output of the
|
||||||
|
synthesizer. It is set to a low value by default to avoid the
|
||||||
|
saturation of the output when random MIDI files are played.</entry>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<!-- ---------------------------- -->
|
||||||
|
<row>
|
||||||
|
<entry>synth.sample-rate</entry>
|
||||||
|
<entry>Type</entry>
|
||||||
|
<entry>number</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>Default</entry>
|
||||||
|
<entry>44100</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>Min-Max</entry>
|
||||||
|
<entry>22050-96000</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>Description</entry>
|
||||||
|
<entry>The sample rate of the audio generated by the synthesizer.</entry>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<!-- ---------------------------- -->
|
||||||
|
<row>
|
||||||
|
<entry>synth.polyphony</entry>
|
||||||
|
<entry>Type</entry>
|
||||||
|
<entry>integer</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>Default</entry>
|
||||||
|
<entry>256</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>Min-Max</entry>
|
||||||
|
<entry>16-4096</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>Description</entry>
|
||||||
|
<entry>The polyphony defines how many voices can be played in parallel. The
|
||||||
|
number of voices is not necessarily equivalent to the number of notes
|
||||||
|
played simultaniously. Indeed, when a note is struck on a specific
|
||||||
|
MIDI channel, the preset on that channel may created several voices,
|
||||||
|
for example, one for the left audio channel and one for the right
|
||||||
|
audio channels. The number of voices activated depends on the number
|
||||||
|
of instrument zones that fall in the correspond to the velocity and
|
||||||
|
key of the played note.</entry>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<!-- ---------------------------- -->
|
||||||
|
<row>
|
||||||
|
<entry>synth.midi-channels</entry>
|
||||||
|
<entry>Type</entry>
|
||||||
|
<entry>integer</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>Default</entry>
|
||||||
|
<entry>16</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>Min-Max</entry>
|
||||||
|
<entry>16-256</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>Description</entry>
|
||||||
|
<entry>This setting defines the number of MIDI channels of the
|
||||||
|
synthesizer. The MIDI standard defines 16 channels, so most hardware
|
||||||
|
keyboards are limited to 16. If you plan to use the synthesizer as a
|
||||||
|
plugin in an application, it might be interesting to set the number of
|
||||||
|
channels to a larger value. In this case you can program a greater
|
||||||
|
number of presets.</entry>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<!-- ---------------------------- -->
|
||||||
|
<row>
|
||||||
|
<entry>synth.reverb.active</entry>
|
||||||
|
<entry>Type</entry>
|
||||||
|
<entry>string</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>Default</entry>
|
||||||
|
<entry>"yes"</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>Description</entry>
|
||||||
|
<entry>When set to "yes" the reverb effects module is activated. Otherwise,
|
||||||
|
no reverb will be added to the output signal. Note that when the
|
||||||
|
reverb module is active, the amount of signal send to the reverb
|
||||||
|
module depends on the "reverb send" generator defined in the
|
||||||
|
SoundFont.</entry>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<!-- ---------------------------- -->
|
||||||
|
<row>
|
||||||
|
<entry>synth.chorus.active</entry>
|
||||||
|
<entry>Type</entry>
|
||||||
|
<entry>string</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>Default</entry>
|
||||||
|
<entry>"yes"</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>Description</entry>
|
||||||
|
<entry>When set to "yes" the chorus effects module is activated. Otherwise,
|
||||||
|
no chorus will be added to the output signal. Note that when the
|
||||||
|
reverb module is active, the amount of signal send to the chorus
|
||||||
|
module depends on the "chorus send" generator defined in the
|
||||||
|
SoundFont.</entry>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<!-- ---------------------------- -->
|
||||||
|
<row>
|
||||||
|
<entry>synth.ladspa.active</entry>
|
||||||
|
<entry>Type</entry>
|
||||||
|
<entry>string</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>Default</entry>
|
||||||
|
<entry>"no"</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>Description</entry>
|
||||||
|
<entry>When set to "yes" the LADSPA subsystem will be called. This subsystem
|
||||||
|
allows to load and interconnect LADSPA plugins. The output of the
|
||||||
|
synthesizer is processed by the LADSPA subsystem. Note that the
|
||||||
|
synthesizer has to be compiled with LADSPA support. More information
|
||||||
|
about the LADSPA subsystem later.</entry>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<!-- ---------------------------- -->
|
||||||
|
<row>
|
||||||
|
<entry>synth.audio-groups</entry>
|
||||||
|
<entry>Type</entry>
|
||||||
|
<entry>integer</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>Default</entry>
|
||||||
|
<entry>1</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>Min-Max</entry>
|
||||||
|
<entry>1-128</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>Description</entry>
|
||||||
|
<entry>By default, the synthesizer outputs a single stereo signal. Using this
|
||||||
|
option, the synthesizer can output multichannel audio.</entry>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<!-- ---------------------------- -->
|
||||||
|
<row>
|
||||||
|
<entry>synth.effects-channels</entry>
|
||||||
|
<entry>Type</entry>
|
||||||
|
<entry>integer</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>Default</entry>
|
||||||
|
<entry>2</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>Min-Max</entry>
|
||||||
|
<entry>2-2</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>Description</entry>
|
||||||
|
<entry></entry>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<!-- ---------------------------- -->
|
||||||
|
<row>
|
||||||
|
<entry>synth.verbose</entry>
|
||||||
|
<entry>Type</entry>
|
||||||
|
<entry>string</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>Default</entry>
|
||||||
|
<entry>"no"</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>Description</entry>
|
||||||
|
|
||||||
|
<entry>When set to "yes" the synthesizer will print out information
|
||||||
|
about the received MIDI events to the stdout. This can be helpful
|
||||||
|
for debugging. This setting can not be changed after the synthesizer
|
||||||
|
has started.</entry>
|
||||||
|
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<!-- ---------------------------- -->
|
||||||
|
<row>
|
||||||
|
<entry>synth.dump</entry>
|
||||||
|
<entry>Type</entry>
|
||||||
|
<entry>string</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>Default</entry>
|
||||||
|
<entry>"no"</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>Description</entry>
|
||||||
|
<entry></entry>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
</tbody>
|
||||||
|
</tgroup>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
|
||||||
|
</para>
|
||||||
|
|
||||||
<sect1>
|
<sect1>
|
||||||
<title>Creating the audio driver</title>
|
<title>Creating the audio driver</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
The synthesizer itself does not send any audio to the audio
|
The synthesizer itself does not write any audio to the audio
|
||||||
output. This allows application developers who want to integrate
|
output. This allows application developers to manage the audio
|
||||||
the synthesizer in their application to manage the audio output
|
output themselves if they wish. The next section describes the use
|
||||||
themselves. The following sections describes the use of the
|
of the synthesizer without an audio driver in more detail.
|
||||||
synthesizer without an audio driver in more detail.
|
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Creating the audio driver is straightforward: set the appropriate
|
Creating the audio driver is straightforward: set the appropriate
|
||||||
settings and create the driver object. Because the FluidSynth has
|
settings and create the driver object. Because the FluidSynth has
|
||||||
support for several audio libraries, you may want to change what
|
support for several audio systems, you may want to change which
|
||||||
audio subsystem you want to use. Currently the following audio
|
one you want to use. The list below shows theaudio systems that
|
||||||
systems are supported:
|
are currently supported. It displays the name, as used by the
|
||||||
</para>
|
fluidsynth library, and a description. </para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem><para>Linux: OSS, ALSA, Jack, PortAudio (not tested)</para></listitem>
|
<listitem><para>alsa: Advanced Linux Sound Architecture</para></listitem>
|
||||||
<listitem><para>MacOS Classic: SoundManager, PortAudio</para></listitem>
|
<listitem><para>oss: Open Sound System (Linux)</para></listitem>
|
||||||
<listitem><para>MacOS X: PortAudio, CoreAudio (experimental)</para></listitem>
|
<listitem><para>jack: JACK Audio Connection Kit (Linux, Mac OS X)</para></listitem>
|
||||||
<listitem><para>Windows: DirectSound, PortAudio (not tested)</para></listitem>
|
<listitem><para>portaudio: Portaudio Library (MacOS 9 & X, Windows, Linux)</para></listitem>
|
||||||
|
<listitem><para>sndmgr: Apple SoundManager (Mac OS Classic)</para></listitem>
|
||||||
|
<listitem><para>coreaudio: Apple CoreAudio (MacOS X, experimental)</para></listitem>
|
||||||
|
<listitem><para>dsound: Microsoft DirectSound (Windows)</para></listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
@ -190,6 +485,120 @@ void init()
|
||||||
synthesizer object to generate the audio.
|
synthesizer object to generate the audio.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
|
||||||
|
<para>
|
||||||
|
There are a number of general audio driver settings. The
|
||||||
|
audio.driver settings defines the audio subsystem that will be
|
||||||
|
used. The audio.periods and audio.period-size settings define the
|
||||||
|
latency and robustness against scheduling delays. There are
|
||||||
|
additional settings for the audio subsystems used. They will be
|
||||||
|
documented later.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<table frame=all><title>General audio driver settings</title>
|
||||||
|
<tgroup cols=3 align=left colsep=0 rowsep=0>
|
||||||
|
<tbody>
|
||||||
|
|
||||||
|
<!-- ---------------------------- -->
|
||||||
|
<row>
|
||||||
|
<entry>audio.driver</entry>
|
||||||
|
<entry>Type</entry>
|
||||||
|
<entry>string</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>Default</entry>
|
||||||
|
<entry>alsa (Linux), dsound (Windows), sndman (MacOS9), coreaudio (MacOS X)</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>Options</entry>
|
||||||
|
<entry>alsa, oss, jack, dsound, sndman, coreaudio, portaudio</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>Description</entry>
|
||||||
|
<entry>The audio system to be used.</entry>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<!-- ---------------------------- -->
|
||||||
|
<row>
|
||||||
|
<entry>audio.periods</entry>
|
||||||
|
<entry>Type</entry>
|
||||||
|
<entry>int</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>Default</entry>
|
||||||
|
<entry>16 (Linux, MacOS X), 8 (Windows)</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>Min-Max</entry>
|
||||||
|
<entry>2-64</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>Description</entry>
|
||||||
|
<entry>The number of the audio buffers used by the driver. This
|
||||||
|
number of buffers, multiplied by the buffer size (see setting
|
||||||
|
audio.period-size), determines the maximum latency of the audio
|
||||||
|
driver.</entry>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<!-- ---------------------------- -->
|
||||||
|
<row>
|
||||||
|
<entry>audio.period-size</entry>
|
||||||
|
<entry>Type</entry>
|
||||||
|
<entry>int</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>Default</entry>
|
||||||
|
<entry>64 (Linux, MacOS X), 512 (Windows)</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>Min-Max</entry>
|
||||||
|
<entry>64-8192</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>Description</entry>
|
||||||
|
<entry>The size of the audio buffers (in frames).</entry>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<!-- ---------------------------- -->
|
||||||
|
<row>
|
||||||
|
<entry>audio.sample-format</entry>
|
||||||
|
<entry>Type</entry>
|
||||||
|
<entry>string</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>Default</entry>
|
||||||
|
<entry>"16bits"</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>Options</entry>
|
||||||
|
<entry>"16bits", "float"</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>Description</entry>
|
||||||
|
|
||||||
|
<entry>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.</entry>
|
||||||
|
|
||||||
|
</row>
|
||||||
|
|
||||||
|
</tbody>
|
||||||
|
</tgroup>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
<sect1>
|
<sect1>
|
||||||
|
@ -370,133 +779,21 @@ protected:
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
<sect1>
|
<sect1>
|
||||||
<title>Advanced control features</title>
|
<title>Advanced features, not yet documented</title>
|
||||||
<para></para>
|
|
||||||
</sect1>
|
|
||||||
|
|
||||||
<sect1>
|
<itemizedlist mark=opencircle>
|
||||||
<title>MIDI tunings</title>
|
<listitem><para>Accessing low-level voice parameters</para></listitem>
|
||||||
<para></para>
|
<listitem><para>Reverb settings</para></listitem>
|
||||||
</sect1>
|
<listitem><para>Chorus settings</para></listitem>
|
||||||
|
<listitem><para>Interpolation settings (set_gen, get_gen, NRPN)</para></listitem>
|
||||||
<sect1>
|
<listitem><para>Sequencer</para></listitem>
|
||||||
<title>Multi channel audio output</title>
|
<listitem><para>LADSPA effects unit</para></listitem>
|
||||||
<para></para>
|
<listitem><para>MIDI router</para></listitem>
|
||||||
</sect1>
|
<listitem><para>Multi-channel audio</para></listitem>
|
||||||
|
<listitem><para>MIDI tunings</para></listitem>
|
||||||
<sect1>
|
<listitem><para>MIDI file player</para></listitem>
|
||||||
<title>Overview of all settings</title>
|
<listitem><para>SoundFont loader</para></listitem>
|
||||||
|
</itemizedlist>
|
||||||
<para>
|
|
||||||
The settings for the synthesizer
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
synth.verbose: type string, default "no"
|
|
||||||
|
|
||||||
When set to "yes" the synthesizer will print out information about the
|
|
||||||
received MIDI events to the stdout. This can be helpful for
|
|
||||||
debugging. This setting can not be changed after the synthesizer has
|
|
||||||
started.
|
|
||||||
|
|
||||||
synth.dump: type string, default "no"
|
|
||||||
|
|
||||||
???
|
|
||||||
|
|
||||||
|
|
||||||
synth.reverb.active: type string, default "yes"
|
|
||||||
|
|
||||||
When set to "yes" the reverb effects module is activated. Otherwise,
|
|
||||||
no reverb will be added to the output signal. Note that when the
|
|
||||||
reverb module is active, the amount of signal send to the reverb
|
|
||||||
module depends on the "reverb send" generator defined in the
|
|
||||||
SoundFont.
|
|
||||||
|
|
||||||
synth.chorus.active: type string, default "yes"
|
|
||||||
|
|
||||||
When set to "yes" the chorus effects module is activated. Otherwise,
|
|
||||||
no chorus will be added to the output signal. Note that when the
|
|
||||||
reverb module is active, the amount of signal send to the chorus
|
|
||||||
module depends on the "chorus send" generator defined in the
|
|
||||||
SoundFont.
|
|
||||||
|
|
||||||
|
|
||||||
synth.ladspa.active: type string, default no
|
|
||||||
|
|
||||||
When set to "yes" the LADSPA subsystem will be called. This subsystem
|
|
||||||
allows to load and interconnect LADSPA plugins. The output of the
|
|
||||||
synthesizer is processed by the LADSPA subsystem. Note that the
|
|
||||||
synthesizer has to be compiled with LADSPA support. More information
|
|
||||||
about the LADSPA subsystem later.
|
|
||||||
|
|
||||||
|
|
||||||
synth.polyphony: type integer, default 256, min. 16, max. 4096
|
|
||||||
|
|
||||||
The polyphony defines how many voices can be played in parallel. The
|
|
||||||
number of voices is not necessarily equivalent to the number of notes
|
|
||||||
played simultaniously. Indeed, when a note is struck on a specific
|
|
||||||
MIDI channel, the preset on that channel may created several voices,
|
|
||||||
for example, one for the left audio channel and one for the right
|
|
||||||
audio channels. The number of voices activated depends on the number
|
|
||||||
of instrument zones that fall in the correspond to the velocity and
|
|
||||||
key of the played note.
|
|
||||||
|
|
||||||
synth.midi-channels: type integer, default 16, min. 16, max. 256
|
|
||||||
|
|
||||||
This setting defines the number of MIDI channels of the
|
|
||||||
synthesizer. The MIDI standard defines 16 channels, so most hardware
|
|
||||||
keyboards are limited to 16. If you plan to use the synthesizer as a
|
|
||||||
plugin in an application, it might be interesting to set the number of
|
|
||||||
channels to a larger value. In this case you can program a greater
|
|
||||||
number of presets.
|
|
||||||
|
|
||||||
synth.gain: type number, default 0.2, min. 0.0, max. 10.0
|
|
||||||
|
|
||||||
The gain is applied to the final or master output of the
|
|
||||||
synthesizer. It is set to a low value by default to avoid the
|
|
||||||
saturation of the output when random MIDI files are played.
|
|
||||||
|
|
||||||
synth.audio-channels: type integer, default 1, min. 1, max. 128
|
|
||||||
|
|
||||||
By default, the synthesizer outputs a single stereo signal. Using this
|
|
||||||
option, the synthesizer can output multichannel audio.
|
|
||||||
|
|
||||||
synth.audio-groups", 1, 1, 128, 0, NULL, NULL);
|
|
||||||
synth.effects-channels", 2, 2, 2, 0, NULL, NULL);
|
|
||||||
synth.sample-rate", 44100.0f, 22050.0f, 96000.0f,
|
|
||||||
|
|
||||||
|
|
||||||
The settings for the audio driver
|
|
||||||
|
|
||||||
audio.sample-format: type string, default "16bits", options ("16bits", "float")
|
|
||||||
|
|
||||||
audio.period-size: type integer, default 512, min. 64, max. 8192
|
|
||||||
|
|
||||||
audio.periods: type integer, default 8, min. 2, max. 64
|
|
||||||
|
|
||||||
audio.output-channels: type integer, default 2, min. 2, max. 32
|
|
||||||
|
|
||||||
audio.input-channels: type integer, default 0, min. 0, max. 2
|
|
||||||
|
|
||||||
audio.driver: type string, default platform and compilation dependent
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
SoundFont:
|
|
||||||
|
|
||||||
Preset:
|
|
||||||
|
|
||||||
Preset Zone:
|
|
||||||
|
|
||||||
Instrument:
|
|
||||||
|
|
||||||
Instrument Zone:
|
|
||||||
|
|
||||||
Program:
|
|
||||||
|
|
||||||
MIDI Channel:
|
|
||||||
|
|
||||||
</para>
|
|
||||||
|
|
||||||
</sect1>
|
</sect1>
|
||||||
</article>
|
</article>
|
||||||
|
|
Loading…
Reference in a new issue