|SNDIO(7)||Miscellaneous Information Manual||SNDIO(7)|
sndiolibrary. It allows both access through the sndiod(8) server and raw access to the hardware. The audio device or MIDI port, as well as the access method, are designated by the sndio descriptor. It is provided by the user with the program device selection method, or with the
MIDIDEVICEenvironment variables if there's no device selection method.
Usually, programs access the hardware via the sndiod(8) server, because raw access to the hardware is exclusive and requires additional privileges. The sndiod(8) server supports multiple connections at a time, allowing multiple programs to use the hardware concurrently. It performs the necessary audio processing on the fly to overcome any incompatibility between software and hardware. Connections to sndiod(8) may also be established through the network, including from virtual machines.
The sndiod(8) server exposes MIDI thru ports, allowing one program to send MIDI data to other programs, for instance to allow a sequencer to send events to a synthesizer.
Additionally, sndiod(8) exposes a MIDI port used to control audio programs using standard MIDI Machine Control (MMC), MIDI Time Code (MTC), and master volume messages.
This information is used by programs to determine how to access the audio device or MIDI port.
-Uoption of sndiod(8). Useful only if multiple sndiod(8) servers are running on the same system.
-fqoption on the command line.
-soption of sndiod(8).
defaultis used as the audio device, the program will use the one specified in the
AUDIODEVICEenvironment variable. If it is not set, the program first tries to connect to
snd/0. If that fails, it then tries to use
rsnd/0. This allows the sndiod(8) audio server to be used by default and the raw hardware as fallback; programs don't have to be reconfigured when sndiod(8) is started or stopped.
Similarly, if no MIDI descriptor is provided to a program or when
the reserved word
default is passed as the device
descriptor, the program uses the one specified in the
MIDIDEVICE environment variable. If it is not set,
the program first tries to connect to
that fails, it then tries to use
rmidi/0. As long as
sndiod(8) is running, this allows
programs to exchange MIDI data on machines with no MIDI hardware by default,
e.g. a MIDI player could use a software synthesizer with no manual
If a session needs to be shared between multiple users, they can connect to the server using the same cookie.
These environment variables are ignored by
sndio if the program has the set-user-ID or
set-group-ID bits set.
|September 27, 2020||x86_64|