Spotify Connect / Soloist Direct — alternative audio paths through PipeWire [PoC]

Soloist Direct — a proof of concept, not another community plugin

Following the discussions I had with foonerd around Soloist, Volumio and the audio path, I ended up pushing the experiment a little further than originally planned.

I now have a working Alpha 17 of Soloist Direct, using a private PipeWire stack inside Volumio.

What I find interesting is that we now effectively have three different ways of getting Soloist audio to the DAC:

foonerd’s approach: Soloist → Pulse compatibility shim → plug:volumio → Volumio ALSA graph → hardware
Soloist Direct / Direct mode: Soloist → private PipeWire → hardware ALSA device
Soloist Direct / Volumio mode: Soloist → private PipeWire → plug:volumio → Volumio ALSA graph → hardware

None of this is meant to suggest that one path is automatically “better” than the others.

But in an audiophile context, where the exact software path, buffering, resampling, mixer stages and intermediate layers can potentially influence the final result, I think having these three architectures available is quite interesting.

It gives us a way to compare different sound paths around the same Soloist / Spotify source, rather than comparing completely different playback stacks.

Both Soloist Direct paths are now working on real hardware, including:

*clean reboot
*Spotify Connect discovery
*metadata / source handover
*lifecycle handling

I also did some A/B measurements against foonerd’s implementation, mainly to understand the differences in buffering, latency, resource usage and overall architecture — not to prove that one implementation sounds better than another.

So I’m sharing Alpha 17 mostly as a technical proof of concept / reference implementation — for science, and maybe a little audiophile curiosity :slightly_smiling_face:

I don’t currently intend to turn this into another official/community Spotify plugin. Foonerd already has a working community-oriented implementation; this is more about exploring alternative sound paths and seeing what can be learned from them.

Alpha 17 release:
VolumioSoloistDirect v0.4.0-alpha.17

Tested environment: Raspberry Pi 3 running Volumio 4 only.

At this stage I have not tested Soloist Direct on other Raspberry Pi models, other architectures or other Volumio versions, so please consider this when trying the Alpha 17 build.

Three paths, one source — now we can actually compare the plumbing instead of arguing about it.

1 Like

Does this support:

  • FusionDSP
  • Peppymeter Basic
  • Peppy-Spectrum
  • Multiroom

Good question — and this is actually one of the reasons I kept both audio paths.

In Direct mode: Soloist → private PipeWire → hardware ALSA

the normal Volumio ALSA graph is deliberately bypassed. So I would NOT expect FusionDSP, PeppyMeter or Peppy-Spectrum to be in the audio path there.

In Volumio mode: Soloist → private PipeWire → plug:volumio → Volumio ALSA graph → hardware

the stream re-enters Volumio through the same ALSA entry point used by foonerd’s implementation.
So FusionDSP / PeppyMeter Basic / Peppy-Spectrum should in principle have a chance to work there, provided they hook downstream of plug:volumio.

But I haven’t tested any of them yet, so I don’t want to claim support before actually verifying it.
Multiroom is different: I have neither implemented nor tested any specific Multiroom integration, so for now I would simply say “not supported / unknown”.
Actually, testing FusionDSP and the Peppy plugins on the Volumio path would be a useful next experiment, please help for that I can’t do it myself🙂