Open-source Linux audio player

PCM Transport

A lightweight Linux desktop audio player focused on transparent PCM transport, native FLAC playback, direct ALSA output, predictable DSP and honest signal-path diagnostics.

Screenshots

PCM Transport keeps the interface compact while exposing the active playback path, DSP state, level/clip diagnostics and processing controls.

PCM Transport main window showing playback controls and diagnostics
Main playback window
PCM Transport DSP Studio window with tone controls and diagnostics
DSP Studio

What it is

PCM Transport is a compact Linux desktop audio player focused on direct PCM playback, transparent signal-path reporting, native FLAC decoding and optional DSP processing.

Native FLAC playback

Native FLAC decoding via libFLAC

Additional formats via FFmpeg API

MP3, OGG, WAV, AIFF, APE, WV, DSF/DFF and more via the FFmpeg API

Direct ALSA output

Direct ALSA playback — no PulseAudio or PipeWire required.

MPRIS desktop integration

Desktop media controls, multimedia keys and cover art metadata.

Gapless-oriented playback

Continuous CUE image playback, local M3U/M3U8 import and same-format file chaining where possible.

DSP Studio

Bass/Treble controls and optional processing rules.

Why another Linux audio player?

PCM Transport is a focused, lightweight FLAC player for Linux — direct ALSA output, native libFLAC decoding, CUE/gapless support, and optional DSP that can be fully bypassed.

Not a music library manager, just honest playback with a visible signal path.

Supported formats

Native FLAC playback is handled through libFLAC. Additional formats use the FFmpeg API directly. The ffmpeg and ffprobe command-line tools are not required. DSF and DFF sources, including DST-compressed DFF, are converted to PCM; native DSD and DoP output are not used. Rare-format support depends on the local FFmpeg build.

Native / primary

*.flac, *.wav, *.wave, *.cue, *.m3u, *.m3u8

FFmpeg-backed lossless / PCM / containers

*.aif, *.aiff, *.ape, *.wv, *.w64, *.bwf, *.au, *.snd, *.caf, *.voc, *.tak, *.tta, *.dsf, *.dff

FFmpeg-backed lossy

*.mp3, *.mp2, *.m4a, *.m4r, *.aac, *.ac3, *.dts, *.ogg, *.oga, *.opus, *.spx, *.ra, *.wma, *.asf, *.xwma, *.wmv, *.oma, *.aa3, *.at3, *.mpc, *.mp+, *.mpp

Download and run

The easiest way to try PCM Transport is the ready-to-run Linux x86_64 AppImage from GitHub Releases. Source build instructions are provided below for development and packaging.

AppImage Quick start
chmod +x PCM-Transport-latest-x86_64.AppImage
./PCM-Transport-latest-x86_64.AppImage
Arch Linux Build dependencies
sudo pacman -S --needed base-devel cmake pkgconf alsa-lib flac gtk3 ffmpeg
Debian / Ubuntu Build dependencies
sudo apt install build-essential cmake pkg-config \
libasound2-dev libflac-dev libgtk-3-dev \
libavformat-dev libavcodec-dev libavutil-dev libswresample-dev
ALT Linux Build dependencies
su -
apt-get install build-essential cmake pkg-config \
libalsa-devel libflac-devel libgtk+3-devel \
libavformat-devel libavcodec-devel libavutil-devel libswresample-devel
exit
Build Configure and compile
cmake -S . -B build
cmake --build build -j
Run Start the player
./build/pcm_transport
Install Optional desktop integration
cmake --install build --prefix <prefix>

Installs the binary, desktop entry and hicolor icons. Running directly from build does not require installation.

Dependencies: ALSA, GTK 3.16 or newer, GLib/GIO 2.52 or newer, libFLAC 1.3.3 or newer, and FFmpeg 4.4 or newer libraries: libavformat, libavcodec, libavutil and libswresample. PCM Transport uses public library APIs and may conservatively disable optional capabilities unavailable on the supported baseline. FLAC decoding remains native through libFLAC. Other formats, metadata fallback and conversion paths use the FFmpeg API directly. The ffmpeg and ffprobe command-line tools are not used. Realtime audio priority is optional and can use RTKit or direct CAP_SYS_NICE scheduling.

Project goals

A small, understandable Linux player focused on stability, transparent signal path and predictable DSP.

Source code

Source code, changelog and releases are available on GitHub: github.com/andreyberestov/pcm-transport.

Development note

PCM Transport is an independently maintained project developed with the assistance of AI coding tools. The project maintainer defines the requirements and product direction, reviews and integrates changes, and tests each release before publication.

Author and Maintainer

Andrey Berestov (@andreyberestov)

Contributors

Aleksandr Vysotskiy (@loki1368)

License

PCM Transport is released under the GNU General Public License v3.0 only. See the LICENSE file in the repository for details. Third-party component notices are listed in THIRD_PARTY_NOTICES.md.

Support

If you enjoy PCM Transport, you can buy the author a cup of coffee.

ETH (ERC-20): 0x985f490A569B1Cc08c5b157eA044387801BeD939