APULSE(1)
π APULSE π
okay bestie, sit down, we're talking about apulse β the PulseAudio emulator for ALSA, and honestly? she's iconic. β¨
πΈ SYNOPSIS πΈ
apulse <program-name> [program-parameters]...
like... that's it. that's the whole vibe. you hand her a program name, maybe some params, and she goes. π
π¦ DESCRIPTION π¦
so here's the tea, bestie. apulse is an alternative partial implementation of the PulseAudio API. that's the whole thing. it's a loader script plus a bunch of shared libraries that have the exact same names as the ones from original PulseAudio, so applications can dynamically load them and genuinely believe they're talking to PulseAudio. gaslight, gatekeep, girlboss. π
and the best part? internally, no separate sound mixing daemon is used. none. zero. instead, apulse relies on ALSA's dmix, dsnoop, and plug plugins to handle multiple sound sources and capture streams running at the same time. let me break that down for you:
dmixplugin muxes multiple playback streams π₯dsnoopplugin allows multiple applications to capture from a single microphone π€plugplugin transparently converts audio between various sample formats, sample rates and channel numbers π
and for more than a decade now, ALSA comes with these plugins enabled and configured by default. so like, no setup needed. she just works. π
now, important clarification: apulse wasn't designed to be a drop-in replacement of PulseAudio. and honestly? it's pointless to try, since that would just be a reimplementation of original PulseAudio, with the same client-daemon architecture, required by the complete feature set. boring. instead, only the parts of the API that are crucial to specific applications are implemented. that's the whole philosophy.
which is exactly why there's a loader script, named apulse. what does she do? she updates the value of the LD_LIBRARY_PATH environment variable to point also to the directory where apulse's libraries are installed, making them available to the application. sneaky? a little. effective? absolutely. π
and the name? it comes from names of both ALSA and PulseAudio. as aoss was a compatibility layer between OSS programs and ALSA, apulse was designed to be a compatibility layer between PulseAudio applications and ALSA. history. lore. iykyk. π§
β¨ ENVIRONMENT β¨
the following environment variables can be used to configure the devices used by apulse. try hw:0,0, plughw:0,0 and the like. refer to the ALSA user guide for a full list of device names, bestie, don't guess. π
APULSE_CAPTURE_DEVICEβ can be used to configure the capture device. ποΈAPULSE_PLAYBACK_DEVICEβ can be used to configure the playback device. π
π RETURN VALUE π
apulse is a simple shell wrapper script that calls exec on the program given in parameters. so except for cases when the wrapper itself fails to load, the return value is the return value of that program. periodt. π
π EXAMPLE π
run a newer Firefox browser with fake PulseAudio:
apulse firefox
go off. π
π AUTHORS π
apulse was written by Rinat Ibragimov in 2014-2017. thank you for your service, king. π«Ά
okay that's the whole page bestie!! this was apulse, from the apulse manual, dated 2017-10-23 β mwah, no notes, she ate. πβ¨ππ¦πΈ
π¦ where this page comes from
- nixos 26.05: apulse 0.1.14
- nixpkgs unstable: apulse 0.1.14
- ubuntu resolute: apulse 0.1.14-1 Β· MIT
- ubuntu stonking: apulse 0.1.14-1 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms