title: Liquidsoap language settings
h3.  Liquidsoap configuration
h3.  ALSA configuration
h4.  Buffer size, in frames.
Default: @1@
%%
set("alsa.buffer_length",1)
%%
This is only used for buffered ALSA I/O, and affects the latency.
h4.  Number of periods
Default: @5@
%%
set("alsa.periods",5)
%%
h3.  Audio settings
h3.  Conversion settings
h3.  Samplerate conversion settings
h3.  Libsamplerate conversion settings
h4.  Resampling quality
Default: @"zero_order"@
%%
set("audio.converter.samplerate.libsamplerate.quality","zero_order")
%%
Resampling quality, one of: "best", "medium", "fast", "zero_order", "linear". Refer to ocaml-samplerate for details.
h4.  Preferred samplerate converter
Default: @"libsamplerate"@
%%
set("audio.converter.samplerate.preferred","libsamplerate")
%%
Preferred samplerate converter.
h3.  Audioscrobbler configuration.
h4.  Default timeout for HTTP requests.
Default: @5.@
%%
set("audioscrobbler.timeout",5.)
%%
h3.  Decoder settings
h4.  Set debugging mode.
Default: @false@
%%
set("decoder.debug",false)
%%
h3.  File extensions used for guessing audio formats
h4.  File extensions used for guessing AAC format
Default: @["aac"]@
%%
set("decoder.file_extensions.aac",["aac"])
%%
h4.  File extensions used for guessing MP3 format
Default: @["mp3"]@
%%
set("decoder.file_extensions.mp3",["mp3"])
%%
h4.  File extensions used for guessing MP4 format
Default: @["m4a","m4b","m4p","m4v","m4r","3gp","mp4"]@
%%
set("decoder.file_extensions.mp4",["m4a","m4b","m4p","m4v","m4r","3gp","mp4"])
%%
h3.  Mime-types used for guessing audio formats
h4.  Mime-types used for guessing AAC format
Default: @["audio/aac","audio/aacp","audio/x-hx-aac-adts"]@
%%
set("decoder.mime_types.aac",["audio/aac","audio/aacp","audio/x-hx-aac-adts"])
%%
h4.  Mime-types used for guessing MP3 format
Default: @["audio/mpeg","application/octet-stream","video/x-unknown"]@
%%
set("decoder.mime_types.mp3",["audio/mpeg","application/octet-stream","video/x-unknown"])
%%
h4.  Mime-types used for guessing MP4 format
Default: @["audio/mp4","application/mp4"]@
%%
set("decoder.mime_types.mp4",["audio/mp4","application/mp4"])
%%
h4.  Mime types associated to Ogg container
Default: @["application/ogg","application/x-ogg","audio/x-ogg","audio/ogg","video/ogg"]@
%%
set("decoder.mime_types.ogg",["application/ogg","application/x-ogg","audio/x-ogg","audio/ogg","video/ogg"])
%%
h4.  Mime-types used for guessing WAV format
Default: @["audio/vnd.wave","audio/wav","audio/wave","audio/x-wav"]@
%%
set("decoder.mime_types.wav",["audio/vnd.wave","audio/wav","audio/wave","audio/x-wav"])
%%
h3.  Frame format
h3.  Audio (PCM) format
h4.  Default number of channels
Default: @2@
%%
set("frame.audio.channels",2)
%%
h4.  Samplerate
Default: @44100@
%%
set("frame.audio.samplerate",44100)
%%
h4.  Tentative frame duration in seconds
Default: @0.04@
%%
set("frame.duration",0.04)
%%
Audio and video samplerates constrain the possible frame durations.
This setting is used as a hint for the duration, when 'frame.audio.size'
is not provided.
Tweaking frame duration is tricky but needed when dealing with latency
or getting soundcard I/O correctly synchronized with liquidsoap.
h3.  MIDI parameters
h4.  Default number of channels
Default: @0@
%%
set("frame.midi.channels",0)
%%
h3.  Video format
h4.  Default number of channels
Default: @0@
%%
set("frame.video.channels",0)
%%
h4.  Image height
Default: @240@
%%
set("frame.video.height",240)
%%
h4.  Samplerate
Default: @25@
%%
set("frame.video.samplerate",25)
%%
h4.  Image width
Default: @320@
%%
set("frame.video.width",320)
%%
h3.  HTTP stream receiver (minimal icecast/shoutcast clone).
h4.  IP address on which the HTTP stream receiver should listen.
Default: @"0.0.0.0"@
%%
set("harbor.bind_addr","0.0.0.0")
%%
h4.  Enable the ICY (shout) protocol.
Default: @false@
%%
set("harbor.icy",false)
%%
h4.  Content-type (mime) of formats which allow shout metadata update.
Default: @["audio/mpeg","audio/aacp","audio/aac","audio/x-aac","audio/wav","audio/wave"]@
%%
set("harbor.icy.metadata_formats",["audio/mpeg","audio/aacp","audio/aac","audio/x-aac","audio/wav","audio/wave"])
%%
h4.  Default password for source connection.
Default: @"hackme"@
%%
set("harbor.password","hackme")
%%
h4.  Display passwords, for debugging.
Default: @false@
%%
set("harbor.password.verbose",false)
%%
h4.  Port on which the HTTP stream receiver should listen.
Default: @8005@
%%
set("harbor.port",8005)
%%
h4.  Perform reverse DNS lookup to get the client's hostname from its IP.
Default: @true@
%%
set("harbor.reverse_dns",true)
%%
h4.  Timeout for source connections.
Default: @30.@
%%
set("harbor.timeout",30.)
%%
h4.  Default username for source connection.
Default: @"source"@
%%
set("harbor.username","source")
%%
h3.  initialization configuration
h4.  catch exceptions, use false to backtrace exceptions
Default: @true@
%%
set("init.catch_exn",true)
%%
h4.  run initialization using concurrent threads
Default: @false@
%%
set("init.concurrent",false)
%%
h4.  run in daemon mode
Default: @false@
%%
set("init.daemon",false)
%%
h4.  support for pidfile generation
Default: @true@
%%
set("init.daemon.pidfile",true)
%%
h4.  path to pidfile
Default: @"<sysrundir>/<script>.pid"@
%%
set("init.daemon.pidfile.path","<sysrundir>/<script>.pid")
%%
h4.  dump an initialization trace
Default: @false@
%%
set("init.trace",false)
%%
h3.  JACK settings
h4.  Client name
Default: @"liquidsoap-<pid>"@
%%
set("jack.client_name","liquidsoap-<pid>")
%%
Name of the JACK client, where <pid> is replaced by liquidsoap's PID,
and <script> by the base name of the .liq script if one is used.
h4.  Ringbuffer coefficient
Default: @8@
%%
set("jack.ringbuffer_coeff",8)
%%
The ringbuffer between us and the Jack engine, interleaved. The
multiplication by 8 is an heuristic which seems to avoid underruns.
Should be supperior or equal to 4.
h3.  log configuration
h4.  log to file
Default: @true@
%%
set("log.file",true)
%%
h4.  append log to the file
Default: @true@
%%
set("log.file.append",true)
%%
h4.  path to log file
Default: @"<syslogdir>/<script>.log"@
%%
set("log.file.path","<syslogdir>/<script>.log")
%%
h4.  log file permissions
Default: @384@
%%
set("log.file.perms",384)
%%
h4.  general log level
Default: @3@
%%
set("log.level",3)
%%
h4.  log to stdout
Default: @false@
%%
set("log.stdout",false)
%%
h4.  display unix timestamps (subsecond accuracy, timezone independant)
Default: @false@
%%
set("log.unix_timestamps",false)
%%
h3.  Parameters for the mpd protocol.
h4.  MPD host.
Default: @"127.0.0.1"@
%%
set("mpd.host","127.0.0.1")
%%
h4.  Directory where MPD's music is located.
Default: @"/var/lib/mpd/music"@
%%
set("mpd.path","/var/lib/mpd/music")
%%
h4.  MPD port.
Default: @6600@
%%
set("mpd.port",6600)
%%
h4.  Randomize order of MPD's results.
Default: @true@
%%
set("mpd.randomize",true)
%%
h3.  Playlist formats
h3.  Mime-types used for guessing formats
h4.  Mime types associated to XML-based playlist formats
Default: @["video/x-ms-asf","audio/x-ms-asx","text/xml","application/xml","application/smil","application/xspf+xml","application/rss+xml"]@
%%
set("playlists.mime_types.xml",["video/x-ms-asf","audio/x-ms-asx","text/xml","application/xml","application/smil","application/xspf+xml","application/rss+xml"])
%%
h3.  requests configuration
h4.  Time after which a destroyed request cannot be accessed anymore.
Default: @600.@
%%
set("request.grace_time",600.)
%%
h3.  Streaming clock settings
h4.  Maximum latency in seconds
Default: @60.@
%%
set("root.max_latency",60.)
%%
If the latency gets higher than this value, the outputs will be reset,
instead of trying to catch it up second by second.
The reset is typically only useful to reconnect icecast mounts.
h3.  Internal scheduler
h4.  Fast queues
Default: @0@
%%
set("scheduler.fast_queues",0)
%%
Number of queues that are dedicated to fast tasks.
It might be useful to create some if your request resolutions,
or some user defined tasks (cf. <code>add_timeout()</code>), are
delayed too much because of slow tasks blocking the generic queues,
such as last.fm submissions or slow <code>add_timeout</code> handlers.
h4.  Generic queues
Default: @1@
%%
set("scheduler.generic_queues",1)
%%
Number of event queues accepting any kind of task.
There should at least be one. Having more can be useful to avoid that
trivial request resolutions (local files) are not delayed because of
a stalled download. But N stalled download can block N queues anyway.
h4.  Log scheduler messages
Default: @false@
%%
set("scheduler.log",false)
%%
h4.  Non-blocking queues
Default: @1@
%%
set("scheduler.non_blocking_queues",1)
%%
Number of queues dedicated to internal non-blocking tasks.
These are only started if such tasks are needed.
There should be at least one. Having more is probably useless.
h3.  Server configuration
h4.  Support for communication via a UNIX domain socket interface
Default: @false@
%%
set("server.socket",false)
%%
The main advantage of this method is that you can set very precisely
the access permissions for the socket, just like for any other file.
A useful command to use this interface is: "socat stdin unix:<path>".
h4.  Path of the UNIX domain socket
Default: @"<sysrundir>/<script>.sock"@
%%
set("server.socket.path","<sysrundir>/<script>.sock")
%%
In this filename, <pid>, <script> and <sysrundir> are replaced by 
their respective values: PID of the instance of liquidsoap,
base name of the .liq script (if any), default runtime data directory.
h4.  Socket permissions, up to umask
Default: @384@
%%
set("server.socket.permissions",384)
%%
This parameter is better written in octal notation. Although you can 
write octal numbers like 0o660, they are not displayed back in octal. 
For example, the default value 384 is the decimal for 0o600.
h4.  Support for communication via a telnet interface
Default: @false@
%%
set("server.telnet",false)
%%
This allows you to communicate with the server via a telnet interface,
i.e., a simple text-based communication over TCP.
The standard "telnet" command will allow you to communicate through
that interface, as well as the telnet libraries available in most
script languages.
Since there is currently no authentication, you should be careful
about who can access this interface: either restrict it to connections
from localhost (using the bind_addr param) or set up a firewall.
h4.  Network mask from which the telnet server should accept connections
Default: @"127.0.0.1"@
%%
set("server.telnet.bind_addr","127.0.0.1")
%%
h4.  Port on which the telnet server should listen
Default: @1234@
%%
set("server.telnet.port",1234)
%%
h4.  Perform reverse DNS lookup to get the client's hostname from its IP.
Default: @true@
%%
set("server.telnet.reverse_dns",true)
%%
h3.  Settings related to metadata tags
h4.  List of encodings to try for automatic encoding detection
Default: @["UTF-8","ISO-8859-1"]@
%%
set("tag.encodings",["UTF-8","ISO-8859-1"])
%%
h3.  Video settings
h3.  Video conversion
h3.  Gavl converter
h4.  Conversion quality
Default: @2@
%%
set("video.converter.gavl.quality",2)
%%
Quality setting for gavl video conversion. Range from 1 to 5
h4.  Scale mode
Default: @"auto"@
%%
set("video.converter.gavl.scale_mode","auto")
%%
Scale mode. Values must be one of: 
"auto"
"nearest"
"bilinear"
"quadratic"
"cubic_bspline"
"cubic_mitchell"
"cubic_catmull"
"scale_sinc_lanczos"
h4.  Preferred video converter
Default: @"gavl"@
%%
set("video.converter.preferred","gavl")
%%
h4.  Preferred proportional scale.
Default: @true@
%%
set("video.converter.proportional_scale",true)
%%
