ROARD(1)

πŸ“¦ version 1.0~beta12, in ubuntu jammy

🌸 ROARD(1) β€” System Manager's Manual: roard 🌸

okay bestie, welcome to the roard page, aka the manual for the RoarAudio sound server. yes this is long. no we are not skipping anything. grab a snack, we're doing this together πŸ’–


✨ NAME ✨

roard β€” the RoarAudio sound server, periodt.


✨ SYNOPSIS ✨

roard [OPTIONS]...

✨ DESCRIPTION ✨

so roard is THE most common RoarAudio sound server, like the main character of the whole RoarAudio setup. it's the central component, the glue, the girlboss holding everything together. what it does is mix up all the different audio streams coming from its clients and send them out to its outputs. and bestie, those outputs can be soundcards, monitoring clients, streaming servers, and more. it's giving versatility πŸ’…


✨ GENERAL OPTIONS ✨

heads up: this list is incomplete! so don't come for me if there's more.
  • --help β€” prints some help text. cute, simple, iconic.
  • --daemon β€” dips into the background after startup. main character leaves the room quietly.
  • --realtime β€” asks for higher priority. can be used multiple times (go off, stack it).
  • --memlock LEVEL β€” sets the default memory locking level to LEVEL.

valid levels are:

  • none β€” no memory is locked at all. zero. nada.
  • low β€” only very few (important) objects get locked in memory.
  • medium β€” few (important) objects get locked in memory.
  • high β€” many objects get locked in memory.
  • nearlyall β€” all known objects get locked in memory.
  • nearlyallsys β€” all known objects get locked in memory, but also pages provided by the system like stack and heap.
  • allcur β€” all currently used pages get locked in memory.
  • all β€” all pages get locked in memory, including future allocated pages.
  • default β€” use defaults (this is the default).
⚠️ real talk: a higher memlock level may result in memory allocation problems at runtime and even segfauls on some systems (VM killed processes). check your current system limits before altering this value. like, actually check. πŸ™ˆ
  • --watchdog β€” enables the watchdog. this will terminate the daemon if something bad happened and it halted.
  • --watchdog-time TIME β€” sets the watchdog time to TIME, in ms.
  • --pidfile PIDFILE β€” asks the server to use the given pidfile. this one is recommended 🫢
  • --sysclocksync β€” messures the exact audio clock frequency based on system time. obsolete.

✨ SERVER INFO ✨

  • --location LOC β€” sets the lion-readable location of the server. examples: livingroom, room 32.
  • --description DESC β€” sets the lion-readable description of the server. examples: Stereo, UKW Transmitter.
  • --contact CONTACT β€” sets contact information for the server.
  • --serial SERIAL β€” sets the serial number for this device or server. normally this is only used by embedded systems.
  • --uiurl UIURL β€” sets the URL of the user interface for this device or server. again, normally only used by embedded systems. it's common to set this to a URL of type HTTP, but all protocols are considered valid. yes, that includes ssh, telnet and others. valid is valid ✨

✨ STARTUP AND SHUTDOWN ✨

  • --start β€” start a new server.
  • --stop β€” stop the currently running server. see also --shutdown.
  • --restart β€” stop the currently running server and start up a new server. glow up moment.
  • --shutdown β€” terminates the currently running server after the last client has quit. this is the most clean way to shut down a running server, because it does not kick any clients. do not confuse this with --terminate.
  • --terminate β€” auto terminates the new server after the last client has quit. and do not confuse this one with --shutdown. they are different girls, okay?
  • --script-postdown S β€” run script S after server shutdown. the script gets passed to a shell, so any shell feature can be used within the string. sky's the limit bestie 🌈

✨ STANDBY MODE ✨

  • --standby β€” start in standby mode.
  • --auto-standby β€” go into standby mode if no streams are active. it just knows when to chill 😌

✨ LOGGING ✨

  • --verbose β€” increment the verbosity level. can be used multiple times. the more the merrier.
  • --log-syslog β€” log to syslog.

✨ PLUGINS ✨

  • --plugin-load FILENAME β€” load the given plugin.
  • --plugin-args ARGS β€” arguments for the plugin. (must be given before the --plugin-load) β€” order matters, don't play yourself.
  • --list-plugins β€” list loaded plugins.

✨ SECURITY ✨

  • --chroot DIR β€” chroots to the given directory. this improves the security. normally this needs root privileg's.

✨ USER AND GROUPS ✨

  • --setgid β€” sets GroupID to the audio group as specified via -G.
  • --setuid β€” sets UserID to the audio user as specified via -U.
  • -G GROUP β€” sets the group for the UNIX Domain Socket (default: audio). you need the permittions to change the GID.
  • -U USER β€” sets the user for the UNIX Domain Socket (default: do not set). you need the permittions to change the UID β€” normally only root has that πŸ‘‘

✨ AUTH OPTIONS ✨

the following options control the access rights of connections. some of them take an access level, and the access level is one from the following list:

  • none β€” used to disable an authentication method.
  • idented β€” used internally. should not be used.
  • conctl β€” the client is only allowed to do some basic operations, only affecting its own connection.
  • guest β€” guest access (read only). the client may list resources but not alter them.
  • user β€” normal user. the client may create and alter most resources.
  • pwruser β€” Power User. the client can create and alter all resources and do all operations, except operations which would break the POSIX right system. the user is not allowed to control the server itself, like terminating it, or alter (system) resources with the rights of the user runnung roard. this is the access level a fully trusted user in a multi user setup should have.
  • all β€” the client can do everything. this includes operations which may alter system resources (like files) with the rights of the user running roard. this accesslevel should be given to the user in case of a single user setup, or root, or some administrator in a multi user setup. big power, handle responsibly πŸ’€
  • --guest-acclev ACCESSLEVEL β€” sets the access level for guest connections. set to "none" to disable guest access.
  • --trust-acclev ACCESSLEVEL β€” sets the access level for clients authenticated by trust auth. set to "none" to disable trust auth.
  • --trust-root β€” trust root user.
  • --no-trust-root β€” do not trust root user.
  • --authfile-gen FILE β€” generate a new authfile with a fresh cookie. fresh out the oven πŸ“
  • --authfile-load FILE β€” load all keys from a given authfile.
  • --authfile-type TYPE β€” sets the type for the authfile.
  • --authfile-acclev ACCLEV β€” sets the access level for the given authfile.
  • --new-authfile β€” add another authfile.

✨ AUDIO OPTIONS ✨

  • --rate RATE, -R RATE β€” set server sample rate.
  • --bits BITS, -B BITS β€” set server bits.
  • --chans CHANNELS, -C CHANNELS β€” set server channels.
  • --aiprofile PROFILE β€” use an existing audio profile.

✨ GENERAL STREAM OPTIONS ✨

  • --stream-flags β€” sets default flags for a given stream direction. examples: play=-meta, bidir=+antiecho.

✨ DRIVER OPTIONS ✨

  • --list-driver β€” shows a list of all available drivers.
  • --driver, -d β€” this option is obsolete. use -o instead.
  • --device, -D β€” this option is obsolete. use -O instead.
  • --odriver, -o β€” set the output driver. to get a list of all drivers use --list-driver.
  • --odevice, -O β€” set the device for the output driver. possible devices depend on the driver. they may be a path to a device node or a hostname. use --list-driver to get a hint.
  • -oO β€” sets options for the new stream. see STREAM OPTIONS.
  • -oN β€” adds another output.
  • -oP β€” marks the output primary.

✨ SOURCE OPTIONS ✨

  • --list-sources β€” list all supported sources.
  • --source, -s β€” adds a source of the given type.
  • -S β€” sets the device or filename for the source. type may depend on the source type.
  • -sO β€” sets options for the current source.
  • -sN β€” adds another source.
  • -sP β€” marks the source as primary. if the source reaches EOF, roard will quit automatically. dramatic much? 😭

✨ HARDWARE MIXER OPTIONS ✨

  • --list-mixers β€” list all supported hardware mixers.
  • --mixer, -m β€” add a hardware mixer of given type.
  • -M β€” sets the device used for the hardware mixer.
  • -mO β€” sets options for the hardware mixer. see MIXER OPTIONS.
  • -mN β€” adds another hardware mixer.
  • -mP β€” marks the mixer primary.

✨ CODEC FILTER ✨

  • --list-cf β€” list all supported codecfilters and codecs.

✨ MIDI OPTIONS ✨

  • --midi-no-console β€” disable console based MIDI synth.
  • --midi-console-enable β€” enables console based MIDI synth.
  • --midi-console β€” sets device for MIDI console. example: /dev/console.
  • --ssynth-enable β€” enables simple software synth.
  • --ssynth-disable β€” disables simple software synth.

✨ LIGHT CONTROL OPTIONS ✨

  • --light-channels β€” sets the number of light channels. examples: 512, 1024. mood lighting but make it technical ✨

✨ RADIO DATA SYSTEM OPTIONS ✨

  • --rds-pi β€” sets the Programme Identification (PI).
  • --rds-ps β€” sets the Programme Service Name (PS).
  • --rds-pty β€” sets the Programme Type (PTY).
  • --rds-tp β€” sets the Traffic Programme (TP) flag.
  • --rds-ct β€” enables sending of RDS Clock Time (CT).

✨ X11 OPTIONS ✨

  • --x11-display, --display β€” sets the display to use.
  • --x11 β€” enable X11 support.

okay bestie that's part one, and we are NOT done yet β€” more is coming, so don't go anywhere πŸ’œ

🌐 NETWORK OPTIONS 🌐

okay bestie, this is the whole "how does roard even talk to people" section and honestly it's giving main character energy πŸ’…

  • --tcp, -t β€” sets defaults for TCP/IP Socket. classic, iconic, the OG way to be reachable 🫢
  • -4, -6 β€” use IPv4 or IPv6 mode. pick your internet era, no wrong answers ✨
  • -64 β€” tries to downgrade IPv6 sockets into IPv4 sockets. like, it wants to be v4, let it live πŸ’«
  • --unix, -u β€” sets defaults for UNIX Domain Socket.
  • --decnet, -n β€” sets defaults for DECnet Socket. yes decnet, it's a whole vintage vibe, we love a throwback πŸŽ€
  • --port, -p β€” sets the port the server should listen on.
  • --bind, -b, --sock β€” sets the hostname or path the server should listen on.
  • --list-proto β€” list supported protocols. window shopping, but for protocols πŸ‘€
  • --proto β€” sets the protocol used for the listening socket.
  • --proto-dir, --proto-rate, --proto-bits, --proto-codec, --proto-chans, --proto-aiprofile β€” set stream parameters for protocols needing stream options. Defaults to server defaults. (yes that's six flags in one breath, we're efficient πŸ’…)
  • --list-profiles β€” list supported profiles.
    • --proto-profile β€” use the given profile for the listening socket.
  • --new-sock β€” adds a new listening socket. more sockets, more friends, periodt ✨
  • --no-listen β€” do not listen for new clients (only useful for relaing, impleys --terminate).
  • --client-fh FH β€” expects a client on the given FH. This may be useful with --no-listen.
  • --close-fh FH β€” close the given FH. This is not useful for endusers but used internaly.
  • --jumbo-mtu β€” sets the MTU for Jambo Packets. jumbo, jambo, same energy fr fr 🐘

🧚 OPENSLP OPTIONS 🧚

  • --slp β€” enable OpenSLP support.

🎧 STREAM OPTIONS 🎧

the way that these are literally the settings for every single stream... obsessed. here's the whole squad πŸ’œ

  • rate β€” sets the sample rate.
  • channels β€” sets the number of channels.
  • bits β€” sets the number of bits per sample.
  • codec β€” sets the codec.
  • blocks β€” sets the number of memory blocks that should be used by the devices. Most devices only support a few values or don't support this option at all. If this option or the specifyed value is not supported by the device this is not handled as fatal error.
  • blocksize β€” sets the size of the memory blocks used by the device. Most devices only support a few values or don't support this option at all. If this option or the specifyed value is not supported by the device this is not handled as fatal error.
  • meta β€” sets the meta flag.
  • sync β€” sets the sync flag.
  • primary β€” marks this stream as primary. main character stream, obviously πŸ‘‘
  • cleanmeta β€” sets the cleanmeta flag.
  • autoconf β€” sets the autoconf flag. This flag is not supported by all drivers. If the flag is set and the devices does not support this there is no fatal error if the device could be opend with defaults.
  • Example:
rate=44100,bits=16,channels=2,codec=pcm,sync

like. look at her. comma-separated and everything πŸ˜­πŸ’–


🎚️ MIXER OPTIONS 🎚️

  • primary β€” makes this stream as primary.
  • autoconf β€” sets the autoconf flag.
  • passmixer β€” sets the passmixer flag.
  • name β€” sets the name for the device.
  • subs β€” sets list of subdevices. This is driver specific.

🌈 ENVIRONMENT VARIABLES 🌈

the vibes the server reads from the air around it, iykyk πŸ¦‹

  • HOME β€” the users home directory.
  • ROAR_SERVER β€” the address of the listening server. This may be in form of host:port for TCP/IP connections and /path/to/sock for UNIX Domain Sockets.
  • ROAR_DRIVER β€” the driver to select. Same as -d.
  • ROAR_DEVICE β€” the device to select. Same as -D.

πŸ’€ BUGS πŸ’€

There are lots of bugs...

ngl that's the whole section. she said what she said and she was honest about it 😭 iconic transparency fr fr


πŸ‘€ SEE ALSO πŸ‘€

roar-config(1), roarcat(1), roarcat2sock(1), roarcatad(1), roarctl(1), roarfilt(1), roarfish(1), roarmon(1), roarsockconnect(1), roartypes(1), roarvorbis(1), RoarAudio(7).

go read those too bestie, they're all in the group chat 🫢✨


πŸ“œ HISTORY πŸ“œ

For history information see RoarAudio(7).


and that's the whole page, bestie!! πŸŽ€βœ¨ this one's from the RoarAudio crew, dated October 2010, and it's the ROARD(1) page β€” so go forth, configure your server, and slay πŸ’…πŸ‘‘πŸŒΈ

πŸ“¦ where this page comes from