Ecasound on OpenBSD and FreeBSD Audio Interfaces
Ecasound offers mixed support for the native audio interfaces found on modern BSD distributions. While it natively and seamlessly supports FreeBSD through the kernel's built-in Open Sound System (OSS) API, it does not provide native upstream support for OpenBSD's modern audio framework, sndio. Consequently, while FreeBSD users can interface directly with hardware sound devices out of the box, OpenBSD users must rely on intermediate sound servers or streaming pipes.
FreeBSD Audio Interface Support
Ecasound fully supports FreeBSD's native audio hardware interface.
The FreeBSD kernel implements the Open Sound System (OSS) 4.x API
directly as its standard sound subsystem architecture, exposing audio
devices via /dev/dsp* nodes.
Because Ecasound includes an internal, native OSS input and output driver, it communicates directly with FreeBSD sound hardware without needing extra translation layers or emulation daemons.
To use Ecasound directly with FreeBSD's native audio interface:
- Specify OSS as the audio format driver:
-i:oss,/dev/dspfor recording. - Route playback directly to the hardware:
-o:oss,/dev/dspfor output.
Ecasound is available through the FreeBSD Ports collection and
pkg system with OSS support compiled in by default. Users
requiring lower latency or inter-application routing on FreeBSD can also
use the JACK Audio Connection Kit backend instead of direct OSS.
OpenBSD Audio Interface Support
OpenBSD does not have native hardware interface support in upstream
Ecasound. The native audio and MIDI framework on OpenBSD is
sndio, managed by the sndiod daemon and the
sioctl hardware control layer. Upstream Ecasound lacks a
dedicated sndio driver module.
Older versions of OpenBSD provided legacy Sun-style
/dev/audio devices and OSS emulation layers, both of which
match built-in Ecasound drivers. However, modern OpenBSD releases have
completely removed these legacy interfaces in favor of
sndio.
To run Ecasound on OpenBSD, users must employ workarounds:
- The JACK Audio Connection Kit: Run a JACK daemon
that has been compiled with
sndiosupport, and connect Ecasound to JACK using the-i:jackand-o:jackoptions. - Standard Audio Pipes: Pipe raw PCM audio streams
between Ecasound and OpenBSD's native
aucatutility using standard input and output descriptors (-i:stdinand-o:stdout).
Summary
- FreeBSD: Supported natively. FreeBSD uses the OSS API as its primary audio subsystem, which works out of the box with Ecasound's built-in OSS driver.
- OpenBSD: Not supported natively. Ecasound does not
include a
sndioengine, requiring the use of JACK or command-line audio pipes for signal routing.