[PR #86] [MERGED] PulseAudio support #199

Closed
opened 2026-02-28 14:26:13 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/devgianlu/go-librespot/pull/86
Author: @aykevl
Created: 9/9/2024
Status: Merged
Merged: 11/7/2024
Merged by: @devgianlu

Base: masterHead: pulseaudio


📝 Commits (3)

  • 14aa439 refactor: support multiple kinds of outputs through an interface
  • 4ad9ae1 feat: refactor volume change events
  • 4e3abfc feat: add PulseAudio backend

📊 Changes

12 files changed (+353 additions, -249 deletions)

View changed files

📝 cmd/daemon/controls.go (+9 -2)
📝 cmd/daemon/main.go (+9 -27)
📝 cmd/daemon/player.go (+19 -4)
📝 config_schema.json (+9 -0)
📝 go.mod (+2 -1)
📝 go.sum (+2 -0)
📝 output/driver-alsa.go (+27 -26)
output/driver-pulseaudio.go (+186 -0)
📝 output/mixer-alsa.go (+4 -4)
📝 output/output.go (+72 -42)
output/ring_buffer.go (+0 -129)
📝 player/player.go (+14 -14)

📄 Description

This PR adds PulseAudio protocol support. PulseAudio and PipeWire are both commonly used on desktop Linux systems, and because PipeWire is also typically used with the PulseAudio protocol this addition supports both.

(It's true that both also support the ALSA protocol, but the PulseAudio protocol integrates a little bit better).

The direct reason why I wrote this was because the ALSA backend wasn't working well for me with my built-in speakers (it was stuttering, no idea why) and wanted to see whether using PulseAudio would avoid that. And indeed it does. But I figured this might be useful for more people.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/devgianlu/go-librespot/pull/86 **Author:** [@aykevl](https://github.com/aykevl) **Created:** 9/9/2024 **Status:** ✅ Merged **Merged:** 11/7/2024 **Merged by:** [@devgianlu](https://github.com/devgianlu) **Base:** `master` ← **Head:** `pulseaudio` --- ### 📝 Commits (3) - [`14aa439`](https://github.com/devgianlu/go-librespot/commit/14aa4398558e8b62c8591f5b4c57f0cb5897acf0) refactor: support multiple kinds of outputs through an interface - [`4ad9ae1`](https://github.com/devgianlu/go-librespot/commit/4ad9ae18b9b228a56e0e69ab640100e530dcf4ac) feat: refactor volume change events - [`4e3abfc`](https://github.com/devgianlu/go-librespot/commit/4e3abfc9daa53319412a512fd7509979828d8c5f) feat: add PulseAudio backend ### 📊 Changes **12 files changed** (+353 additions, -249 deletions) <details> <summary>View changed files</summary> 📝 `cmd/daemon/controls.go` (+9 -2) 📝 `cmd/daemon/main.go` (+9 -27) 📝 `cmd/daemon/player.go` (+19 -4) 📝 `config_schema.json` (+9 -0) 📝 `go.mod` (+2 -1) 📝 `go.sum` (+2 -0) 📝 `output/driver-alsa.go` (+27 -26) ➕ `output/driver-pulseaudio.go` (+186 -0) 📝 `output/mixer-alsa.go` (+4 -4) 📝 `output/output.go` (+72 -42) ➖ `output/ring_buffer.go` (+0 -129) 📝 `player/player.go` (+14 -14) </details> ### 📄 Description This PR adds PulseAudio protocol support. PulseAudio and PipeWire are both commonly used on desktop Linux systems, and because PipeWire is also typically used with the PulseAudio protocol this addition supports both. (It's true that both also support the ALSA protocol, but the PulseAudio protocol integrates a little bit better). The direct reason why I wrote this was because the ALSA backend wasn't working well for me with my built-in speakers (it was stuttering, no idea why) and wanted to see whether using PulseAudio would avoid that. And indeed it does. But I figured this might be useful for more people. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-02-28 14:26:13 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/go-librespot#199
No description provided.