fluidsynth/doc/fluidsynth.1
derselbst aac2354f5c remove fop-level "fluidsynth" directory node
cd fluidsynth && git mv * ../
2017-09-03 13:30:26 +02:00

526 lines
16 KiB
Groff

.\" hey, Emacs: -*- nroff -*-
.\" FluidSynth is free software; you can redistribute it and/or modify
.\" it under the terms of the GNU Lesser General Public License as published by
.\" the Free Software Foundation; either version 2.1 of the License, or
.\" (at your option) any later version.
.\"
.\" This program is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU Lesser General Public License
.\" along with this program; see the file COPYING. If not, write to
.\" the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
.\"
.TH FluidSynth 1 "Aug 26, 2010"
.\" Please update the above date whenever this man page is modified.
.\"
.\" Some roff macros, for reference:
.\" .nh disable hyphenation
.\" .hy enable hyphenation
.\" .ad l left justify
.\" .ad b justify to both left and right margins (default)
.\" .nf disable filling
.\" .fi enable filling
.\" .br insert line break
.\" .sp <n> insert n+1 empty lines
.\" for manpage-specific macros, see man(7)
.SH NAME
FluidSynth \- a SoundFont synthesizer
.SH SYNOPSIS
.B fluidsynth
.RI [ options ]
[ SoundFonts ]
[ midifiles ]
.SH DESCRIPTION
\fBFluidSynth\fP is a real-time MIDI synthesizer based on the
SoundFont(R) 2 specifications. It can be used to render MIDI input or
MIDI files to audio. The MIDI events are read from a MIDI device. The
sound is rendered in real-time to the sound output device.
.PP
The easiest way to start the synthesizer is to give it a SoundFont on
the command line: 'fluidsynth soundfont.sf2'. fluidsynth will load the
SoundFont and read MIDI events from the default MIDI device using the
default MIDI driver. Once FluidSynth is running, it reads commands
from the stdin. There are commands to send MIDI events manually, to
load or unload SoundFonts, and so forth. All the available commands are
discussed below.
.PP
FluidSynth can also be used to play a list of MIDI files. Simply run
FluidSynth with the SoundFont and the list of MIDI files to play. In
this case you might not want to open the MIDI device to read external
events. Use the \-n option to deactivate MIDI input. If you also
want to deactivate the use of the shell, start FluidSynth with the \-i
option: 'fluidsynth \-ni soundfont.sf2 midifile1.mid midifile2.mid'.
.PP
Run fluidsynth with the \-\-help option to check for changes in the list of options.
.SH OPTIONS
\fBfluidsynth\fP accepts the following options:
.TP
.B \-a, \-\-audio\-driver=[label]
The audio driver to use. "\-a help" to list valid options
.TP
.B \-c, \-\-audio\-bufcount=[count]
Number of audio buffers
.TP
.B \-C, \-\-chorus
Turn the chorus on or off [0|1|yes|no, default = on]
.TP
.B \-d, \-\-dump
Dump incoming and outgoing MIDI events to stdout
.TP
.B \-E, \-\-audio\-file\-endian
Audio file endian for fast rendering or aufile driver ("\-E help" for list)
.TP
.B \-f, \-\-load\-config
Load command configuration file (shell commands)
.TP
.B \-F, \-\-fast\-render=[file]
Render MIDI file to raw audio data and store in [file]
.TP
.B \-g, \-\-gain
Set the master gain [0 < gain < 10, default = 0.2]
.TP
.B \-G, \-\-audio\-groups
Defines the number of LADSPA audio nodes
.TP
.B \-h, \-\-help
Print out this help summary
.TP
.B \-i, \-\-no\-shell
Don't read commands from the shell [default = yes]
.TP
.B \-j, \-\-connect\-jack\-outputs
Attempt to connect the jack outputs to the physical ports
.TP
.B \-K, \-\-midi\-channels=[num]
The number of midi channels [default = 16]
.TP
.B \-l, \-\-disable\-lash
Don't connect to LASH server
.TP
.B \-L, \-\-audio\-channels=[num]
The number of stereo audio channels [default = 1]
.TP
.B \-m, \-\-midi\-driver=[label]
The name of the midi driver to use. "\-m help" to list valid options.
.TP
.B \-n, \-\-no\-midi\-in
Don't create a midi driver to read MIDI input events [default = yes]
.TP
.B \-o
Define a setting, \-o name=value ("\-o help" to dump current values)
.TP
.B \-O, \-\-audio\-file\-format
Audio file format for fast rendering or aufile driver ("\-O help" for list)
.TP
.B \-p, \-\-portname=[label]
Set MIDI port name (alsa_seq, coremidi drivers)
.TP
.B \-r, \-\-sample\-rate
Set the sample rate
.TP
.B \-R, \-\-reverb
Turn the reverb on or off [0|1|yes|no, default = on]
.TP
.B \-s, \-\-server
Start FluidSynth as a server process
.TP
.B \-T, \-\-audio\-file\-type
Audio file type for fast rendering or aufile driver ("\T help" for list)
.TP
.B \-v, \-\-verbose
Print out verbose messages about midi events
.TP
.B \-V, \-\-version
Show version of program
.TP
.B \-z, \-\-audio\-bufsize=[size]
Size of each audio buffer
.SH SETTINGS
All settings are non-realtime (have no effect if set after startup), except for those
indicated as realtime.
.TP
.B SYNTHESIZER
.TP
.B synth.audio\-channels INT [min=1, max=128, def=1]
Number of audio channels (DOCME!).
.TP
.B synth.audio\-groups INT [min=1, max=128, def=1]
Number of audio groups (DOCME!).
.TP
.B synth.chorus.active BOOL [def=True]
Chorus effect enable toggle.
.TP
.B synth.cpu\-cores INT [min=1, max=256, def=1]
Number of CPU cores to use for multi-core support.
.TP
.B synth.device\-id INT [min=0, max=126, def=0] REALTIME
Device ID to use for accepting incoming SYSEX messages.
.TP
.B synth.dump BOOL [def=False]
No effect currently.
.TP
.B synth.effects\-channels INT [min=2, max=2, def=2]
No effect currently.
.TP
.B synth.gain FLOAT [min=0.000, max=10.000, def=0.200] REALTIME
Master synthesizer gain.
.TP
.B synth.ladspa.active BOOL [def=False]
LADSPA subsystem enable toggle.
.TP
.B synth.midi\-channels INT [min=16, max=256, def=16]
Total MIDI channel count (must be multiple of 16).
.TP
.B synth.midi\-bank\-select STR [def='gs' vals:'gm', 'gs', 'xg', 'mma']
MIDI Bank Select message style.
.TP
.B synth.min\-note\-length INT [min=0, max=65535, def=10]
Minimum duration for note events (work around for very short percussion notes).
.TP
.B synth.overflow.age FLOAT [min=\-10000, max=10000, def=1000]
Weigthing (on overflow) for a voice's duration.
.TP
.B synth.overflow.percussion FLOAT [min=\-10000, max=10000, def=4000]
Weighting (on overflow) for a voice being on the drum channel.
.TP
.B synth.overflow.released FLOAT [min=\-10000, max=10000, def=\-2000]
Weighting (on overflow) for a voice that has been released,
i e note off and no sustain pedal.
.TP
.B synth.overflow.sustained FLOAT [min=\-10000, max=10000, def=\-1000]
Weighting (on overflow) for a voice that has been sustained,
i e note off, but sustain pedal held down.
.TP
.B synth.overflow.volume FLOAT [min=\-10000, max=10000, def=500]
Weighting (on overflow) for a voice's volume.
.TP
.B synth.parallel-render BOOL [def=True]
Enables low-latency audio rendering response, even if synth is otherwise busy.
Should always to be true for usage by fluidsynth executable.
.TP
.B synth.polyphony INT [min=1, max=65535, def=256] REALTIME
Voice polyphony count (number of simultaneous voices allowed).
.TP
.B synth.reverb.active BOOL [def=True]
Reverb effect enable toggle.
.TP
.B synth.sample\-rate FLOAT [min=22050.000, max=96000.000, def=44100.000]
Synthesizer sample rate.
.TP
.B synth.threadsafe-api BOOL [def=True]
Serializes access to the synth API.
Must always to be true for usage by fluidsynth executable.
.TP
.B synth.verbose BOOL [def=False]
Print received MIDI events to stdout.
.TP
.B GENERAL AUDIO
.TP
.B audio.driver STR
Audio driver to use. Default and valid options depend on available drivers.
.TP
.B audio.input\-channels INT [min=0, max=2, def=0]
Not used currently? (DOCME).
.TP
.B audio.output\-channels INT [min=2, max=32, def=2]
DOCME
.TP
.B audio.period\-size INT [min=64, max=8192, def=64]
Period size for audio buffers. Used by many audio drivers.
.TP
.B audio.periods INT [min=2, max=64, def=16]
Count of audio buffers. Used by many audio drivers.
.TP
.B audio.realtime\-prio INT [min=0, max=99, def=60]
Realtime priority to assign to audio thread or 0 to disable high priority scheduling.
Only used by some audio drivers (currently 'alsa' and 'oss').
.TP
.B audio.sample\-format STR [def='16bits' vals:'16bits','float']
Audio output format, to select format for those drivers which support 16 bit or floating point.
.TP
.B AUDIO DRIVER SPECIFIC
.TP
.B audio.alsa.device STR [def='default']
ALSA audio driver output device.
.TP
.B audio.coreaudio.device STR [def='default']
CoreAudio driver output device. Valid options depend on system.
.TP
.B audio.dart.device STR [def='default']
OS/2 Dart audio driver device.
.TP
.B audio.dsound.device STR [def='default']
Device to use for DirectSound driver. Valid options depend on system.
.TP
.B audio.file.endian STR [def='auto' vals:'auto','big','cpu','little']
File renderer or file driver byte order selection. 'auto' selects the default for the selected
file type. 'cpu' uses the CPU byte order. Limited to 'cpu' if no libsndfile support.
.TP
.B audio.file.format STR [def='s16' vals:'double','float','s16','s24','s32','s8','u8']
File renderer or file driver audio format. Limited to 's16' if no libsndfile support.
.TP
.B audio.file.name STR [def='fluidsynth.wav']
Output file name for file renderer or file driver.
.TP
.B audio.file.type STR [def='auto' vals:'aiff','au','auto','flac','oga','raw','wav']
Output file type for file renderer or file driver. 'auto' attempts to determine type from file
extension in audio.file.name. Limited to 'raw' if no libsndfile support. Actual options will vary
depending on libsndfile library.
.TP
.B audio.jack.autoconnect BOOL [def=False]
If enabled, then FluidSynth is automatically connected to Jack system audio output ports.
.TP
.B audio.jack.id STR [def='fluidsynth']
Client ID to use when connecting to Jack.
.TP
.B audio.jack.multi BOOL [def=False]
TRUE to enable multi-channel output.
.TP
.B audio.jack.server STR [def='']
Jack server name. Blank for default.
.TP
.B audio.oss.device STR [def='/dev/dsp']
OSS driver output device.
.TP
.B audio.portaudio.device STR [def='PortAudio Default']
PortAudio driver output device. Available options depends on system.
.TP
.B audio.pulseaudio.adjust-latency BOOL [def=True]
Increases the latency dynamically if PulseAudio suggests so.
.TP
.B audio.pulseaudio.device STR [def='default']
PulseAudio driver output device.
.TP
.B audio.pulseaudio.media-role STR [def='music']
PulseAudio media role information.
.TP
.B audio.pulseaudio.server STR [def='default']
PulseAudio driver server.
.TP
.B GENERAL MIDI
.TP
.B midi.driver STR
MIDI driver to use. Default and valid options depend on available drivers.
.TP
.B midi.realtime\-prio INT [min=0, max=99, def=50]
Realtime priority to assign to MIDI thread or 0 to disable high priority scheduling.
Only used by some MIDI drivers (currently 'alsa_seq', 'alsa_raw' and 'oss').
.TP
.B MIDI DRIVER SPECIFIC
.TP
.B midi.alsa.device STR [def='default']
ALSA raw MIDI driver device.
.TP
.B midi.alsa_seq.device STR [def='default']
ALSA sequencer MIDI driver device.
.TP
.B midi.alsa_seq.id STR [def='pid']
ALSA sequencer client ID. 'pid' will use process ID as part of the client name.
.TP
.B midi.coremidi.id STR [def='pid']
Client ID to use for CoreMIDI driver. 'pid' will use process ID as port of the client name.
.TP
.B midi.jack.id STR [def='fluidsynth-midi']
Jack MIDI driver client ID.
.TP
.B midi.jack.server STR [def='']
Jack MIDI driver server. Blank to use default.
.TP
.B midi.oss.device STR [def='/dev/midi']
OSS MIDI driver device.
.TP
.B midi.portname STR [def='']
Port name used for CoreAudio and ALSA sequencer drivers.
.TP
.B midi.winmidi.device STR [def='default']
Device for Windows MIDI driver.
.TP
.B MISCELLANEOUS
.TP
.B player.reset\-synth BOOL [def=True]
TRUE to reset synthesizer MIDI state between MIDI songs.
.TP
.B player.timing\-source STR [def='sample' vals:'sample','system']
Selects timing source for MIDI sequencer. 'system' uses the system timer. 'sample'
uses the sample clock (amount of audio output, events synchronized with audio).
.TP
.B shell.port INT [min=1, max=65535, def=9800]
Shell command server TCP/IP port number to use.
.TP
.B shell.prompt STR [def='']
Shell prompt string.
.SH SHELL COMMANDS
.TP
.B GENERAL
.TP
.B help
Prints out list of help topics (type "help <topic>")
.TP
.B quit
Quit the synthesizer
.TP
.B SOUNDFONTS
.TP
.B load filename
Load a SoundFont
.TP
.B unload number
Unload a SoundFont. The number is the index of the SoundFont on the stack.
.TP
.B fonts
Lists the current SoundFonts on the stack
.TP
.B inst number
Print out the available instruments for the SoundFont.
.TP
.B MIDI MESSAGES
.TP
.B noteon channel key velocity
Send a note-on event
.TP
.B noteoff channel key
Send a note-off event
.TP
.B cc channel ctrl value
Send a control change event
.TP
.B prog chan num
Send program-change message
.TP
.B select chan sfont bank prog
Combination of bank-select and program-change
.TP
.B channels
Print out the presets of all channels.
.TP
.B AUDIO SYNTHESIS
.TP
.B gain value
Set the master gain (0 < gain < 5)
.TP
.B interp num
Choose interpolation method for all channels
.TP
.B interpc chan num
Choose interpolation method for one channel
.TP
.B REVERB
.TP
.B reverb [0|1|on|off]
Turn the reverb on or off
.TP
.B rev_preset num
Load preset num into the reverb unit
.TP
.B rev_setroomsize num
Change reverb room size
.TP
.B rev_setdamp num
Change reverb damping
.TP
.B rev_setwidth num
Change reverb width
.TP
.B rev_setlevel num
Change reverb level
.TP
.B CHORUS
.TP
.B chorus [0|1|on|off]
Turn the chorus on or off
.TP
.B cho_set_nr n
Use n delay lines (default 3)
.TP
.B cho_set_level num
Set output level of each chorus line to num
.TP
.B cho_set_speed num
Set mod speed of chorus to num (Hz)
.TP
.B cho_set_depth num
Set chorus modulation depth to num (ms)
.TP
.B MIDI ROUTER
.TP
.B router_default
Reloads the default MIDI routing rules (input channels are mapped 1:1
to the synth)
.TP
.B router_clear
Deletes all MIDI routing rules.
.TP
.B router_begin [note|cc|prog|pbend|cpress|kpress]
Starts a new routing rule for events of the given type
.TP
.B router_chan min max mul add
Limits the rule for events on min <= chan <= max.
If the channel falls into the window, it is multiplied by 'mul', then 'add' is added.
.TP
.B router_par1 min max mul add
Limits parameter 1 (for example note number in a note events). Similar
to router_chan.
.TP
.B router_par2 min max mul add
Limits parameter 2 (for example velocity in a note event). Similar to router_chan
.TP
.B router_end
Finishes the current rule and adds it to the router.
.TP
.B Router examples
.TP
router_clear
.TP
router_begin note
.TP
router_chan 0 7 0 15
.TP
router_end
.TP
Will accept only note events from the lower 8 MIDI
channels. Regardless of the channel, the synthesizer plays the note on
ch 15 (synthchannel=midichannel*0+15)
.TP
router_begin cc
.TP
router_chan 0 7 0 15
.TP
router_par1 1 1 0 64
.TP
router_add
Configures the modulation wheel to act as sustain pedal (transforms CC
1 to CC 64 on the lower 8 MIDI channels, routes to ch 15)
.SH AUTHORS
Peter Hanappe <hanappe@fluid-synth.org>
.br
Markus Nentwig <nentwig@users.sourceforge.net>
.br
Antoine Schmitt <as@gratin.org>
.br
Josh Green <jgreen@users.sourceforge.net>
.br
Stephane Letz <letz@grame.fr>
Please check the AUTHORS and THANKS files for all credits
.SH DISCLAIMER
SoundFont(R) is a registered trademark of E-mu Systems, Inc.