Posts: 11
Threads: 3
Joined: Jul 2023

Reputation:

0

08-04-2025, 07:07 PM

(07-19-2025, 09:21 PM)roderickvd Wrote:
(07-18-2025, 07:39 PM)voorstad Wrote: @roderickvd , is donating via Github the only way? If there is a more privacy friendly way, that would be welcome.

It's the only one I've got set up right now. Which one or two would you propose?

Liberapay? Tikkie :-) ?

Posts: 187
Threads: 3
Joined: Oct 2021

Reputation:

34

08-05-2025, 04:20 PM

Never heard of Liberapay but I can look into that. Patreon seems pretty popular too. Tikkie though, from I guess a fellow Dutchman, seems hardly privacy-aware :-)

To judge other donation platforms, what are your privacy issues with GitHub?

Posts: 187
Threads: 3
Joined: Oct 2021

Reputation:

34

09-23-2025, 07:44 PM

Hi everyone,

It's been some time since I updated you on the progress towards my Qobuz Connect player, so I thought I'd share parts of the newsletter that I just sent out to my sponsors. For those finding value in my work, I'd be grateful if you'd also consider sponsoring me.

The Bigger Picture: Preparing for Qobuz Connect

While I'm working on the future Qobuz Connect player, I'm using this opportunity to modernize and future-proof the audio pipeline. The new player shares a common base with pleezer, my Deezer Connect player, and I want significant parts to evolve to remain maintainable. The result is better performance and audio quality.

CPAL: The Foundation of Audio Playback

CPAL is the low-level library that handles getting audio from applications to your speakers or headphones. Many Rust audio programs depend on it, so improvements here benefit everything built on top.

The summer's main focus was overhauling CPAL's Linux audio support. We've introduced device-aware buffering strategies that adapt to your hardware. This means lower latency and more consistent playback, especially on low-power hardware like Raspberry Pi systems.

We've eliminated memory allocations during playback. This means your music plays more smoothly without tiny interruptions that can occur when the system is busy managing memory. Additionally, the new 24-bit sample format support will be particularly valuable for audiophile setups with I2S DACs that can take advantage of the higher resolution.

New work also includes a unified proposal for configuring audio streams across Windows, macOS, and Linux, making applications more reliable across different platforms.

Rodio: The Audio Playback Engine

Rodio handles actually playing audio files; it's what turns MP3s, FLACs, and other sources into sound. It sits on top of CPAL and provides the features most applications need.

Rodio saw significant improvements this summer, including a proposal for comprehensive audio dithering support. Dithering improves perceived audio quality when converting from digital to analog. I also added support for 24-bit integer output, preserving high-resolution audio quality throughout the playback chain.

The switch to Symphonia as the default decoder provides better format support and more consistent behavior across platforms. I've also improved seeking behavior, meaning you can jump around in tracks more reliably without glitches.

A major decoder overhaul was proposed with over 2,400 lines implementing universal seeking support, bit depth detection, and performance improvements. While the proposal so far was rejected due to its size, with recommendations to split into smaller changes, the work demonstrates the improvements being considered.

Foundation Work: The Supporting Cast

Supporting these improvements required work on foundational libraries like alsa-rs, where I added comprehensive buffer and period parameter methods that enable CPAL's new buffering strategies. The dasp library received square root implementation optimizations for better performance in signal processing tasks.

What's Next: Qobuz Connect Development

The Qobuz Connect player I'm developing has made significant progress on protocol implementation. I've successfully deciphered the incoming message format, implemented device registration and authentication, and I'm currently working on becoming the "active renderer" that can actually play music. The goal is to get to an alpha version that demonstrates basic playback functionality, turning any compatible device into a Qobuz Connect endpoint that you can control from the official Qobuz apps.

Your sponsorship makes this comprehensive approach possible, doing things properly rather than quickly. The foundation I'm building will benefit not just the Qobuz Connect player, but every audio application built with these libraries.

Thank You

These improvements represent months of development, testing, and refinement that's encouraged because of your generous backing. If you're interested in seeing this work continue toward the Qobuz Connect player, please consider sponsoring me.

Thank you for supporting my open-source audio development.

Best regards,
Roderick

Posts: 16,101
Threads: 375
Joined: Mar 2018

Reputation:

689

09-24-2025, 12:42 AM

Wow, thats exciting news especially about all the work in the Rust ecosystem :-)

Posts: 174
Threads: 24
Joined: Apr 2018

Reputation:

5

09-24-2025, 01:46 AM

(09-24-2025, 12:42 AM)Tim Curtis Wrote: Wow, thats exciting news especially about all the work in the Rust ecosystem :-)

Naive questions pop into my head immediately. Mostly about how these new devel0pments/systematic components  relate to the MoOde-mpd-alsa arrangement we have used for 10 or so years now. Sounds like a extended integration/replacement job with immense potential.

Skip

Posts: 16,101
Threads: 375
Joined: Mar 2018

Reputation:

689

09-24-2025, 03:02 PM

Moode / MPD use of ALSA will stay the same. 

Applications built using Rust, for example librespot, pleezer, CamillaDSP, etc can make use of the Rust audio libs.

Posts: 7,012
Threads: 208
Joined: Apr 2018

Reputation:

288

09-24-2025, 03:23 PM

Getting a quick peek at all the moving parts involved in this project was great but for me the best bit was "I've successfully deciphered the incoming message format." Back in the day, I did my share of protocol sniffing and can appreciate how tedious that process can be. Great work, Roderick!

I'm too old to get overly excited about yet another language. I still miss programming my minicomputers in binary machine code entered through their switch registers (or earlier, an IBM 1620---a variable-word-length decimal machine---from its interactive typewriter).

For the rest of you, remember, rust never sleeps.

Regards,
Kent

Posts: 57
Threads: 16
Joined: Apr 2021

Reputation:

0

09-25-2025, 06:43 PM

(09-23-2025, 07:44 PM)roderickvd Wrote: Hi everyone,

It's been some time since I updated you on the progress towards my Qobuz Connect player, so I thought I'd share parts of the newsletter that I just sent out to my sponsors. For those finding value in my work, I'd be grateful if you'd also consider sponsoring me.

The Bigger Picture: Preparing for Qobuz Connect

While I'm working on the future Qobuz Connect player, I'm using this opportunity to modernize and future-proof the audio pipeline. The new player shares a common base with pleezer, my Deezer Connect player, and I want significant parts to evolve to remain maintainable. The result is better performance and audio quality.

CPAL: The Foundation of Audio Playback

CPAL is the low-level library that handles getting audio from applications to your speakers or headphones. Many Rust audio programs depend on it, so improvements here benefit everything built on top.

The summer's main focus was overhauling CPAL's Linux audio support. We've introduced device-aware buffering strategies that adapt to your hardware. This means lower latency and more consistent playback, especially on low-power hardware like Raspberry Pi systems.

We've eliminated memory allocations during playback. This means your music plays more smoothly without tiny interruptions that can occur when the system is busy managing memory. Additionally, the new 24-bit sample format support will be particularly valuable for audiophile setups with I2S DACs that can take advantage of the higher resolution.

New work also includes a unified proposal for configuring audio streams across Windows, macOS, and Linux, making applications more reliable across different platforms.

Rodio: The Audio Playback Engine

Rodio handles actually playing audio files; it's what turns MP3s, FLACs, and other sources into sound. It sits on top of CPAL and provides the features most applications need.

Rodio saw significant improvements this summer, including a proposal for comprehensive audio dithering support. Dithering improves perceived audio quality when converting from digital to analog. I also added support for 24-bit integer output, preserving high-resolution audio quality throughout the playback chain.

The switch to Symphonia as the default decoder provides better format support and more consistent behavior across platforms. I've also improved seeking behavior, meaning you can jump around in tracks more reliably without glitches.

A major decoder overhaul was proposed with over 2,400 lines implementing universal seeking support, bit depth detection, and performance improvements. While the proposal so far was rejected due to its size, with recommendations to split into smaller changes, the work demonstrates the improvements being considered.

Foundation Work: The Supporting Cast

Supporting these improvements required work on foundational libraries like alsa-rs, where I added comprehensive buffer and period parameter methods that enable CPAL's new buffering strategies. The dasp library received square root implementation optimizations for better performance in signal processing tasks.

What's Next: Qobuz Connect Development

The Qobuz Connect player I'm developing has made significant progress on protocol implementation. I've successfully deciphered the incoming message format, implemented device registration and authentication, and I'm currently working on becoming the "active renderer" that can actually play music. The goal is to get to an alpha version that demonstrates basic playback functionality, turning any compatible device into a Qobuz Connect endpoint that you can control from the official Qobuz apps.

Your sponsorship makes this comprehensive approach possible, doing things properly rather than quickly. The foundation I'm building will benefit not just the Qobuz Connect player, but every audio application built with these libraries.

Thank You

These improvements represent months of development, testing, and refinement that's encouraged because of your generous backing. If you're interested in seeing this work continue toward the Qobuz Connect player, please consider sponsoring me.

Thank you for supporting my open-source audio development.

Best regards,
Roderick

Hi Roderick, thanks for the work on this. I sponsor the project on GitHub, how do I access you newsletter? Kristian

Posts: 187
Threads: 3
Joined: Oct 2021

Reputation:

34

09-25-2025, 06:55 PM

Hi Kristian,

Thank you for your sponsorship! I send out newsletters roughly every three months. When I do, you’ll get it delivered to the email address registered with your the GitHub account you sponsored me with.

Kind regards,

Roderick

Posts: 9
Threads: 2
Joined: Aug 2025

Reputation:

0

01-07-2026, 08:39 PM (This post was last modified: 01-07-2026, 08:40 PM by boorq.)

(09-23-2025, 07:44 PM)roderickvd Wrote: Hi everyone,

It's been some time since I updated you on the progress towards my Qobuz Connect player, so I thought I'd share parts of the newsletter that I just sent out to my sponsors. For those finding value in my work, I'd be grateful if you'd also consider sponsoring me.

The Bigger Picture: Preparing for Qobuz Connect

While I'm working on the future Qobuz Connect player, I'm using this opportunity to modernize and future-proof the audio pipeline. The new player shares a common base with pleezer, my Deezer Connect player, and I want significant parts to evolve to remain maintainable. The result is better performance and audio quality.

CPAL: The Foundation of Audio Playback

CPAL is the low-level library that handles getting audio from applications to your speakers or headphones. Many Rust audio programs depend on it, so improvements here benefit everything built on top.

The summer's main focus was overhauling CPAL's Linux audio support. We've introduced device-aware buffering strategies that adapt to your hardware. This means lower latency and more consistent playback, especially on low-power hardware like Raspberry Pi systems.

We've eliminated memory allocations during playback. This means your music plays more smoothly without tiny interruptions that can occur when the system is busy managing memory. Additionally, the new 24-bit sample format support will be particularly valuable for audiophile setups with I2S DACs that can take advantage of the higher resolution.

New work also includes a unified proposal for configuring audio streams across Windows, macOS, and Linux, making applications more reliable across different platforms.

Rodio: The Audio Playback Engine

Rodio handles actually playing audio files; it's what turns MP3s, FLACs, and other sources into sound. It sits on top of CPAL and provides the features most applications need.

Rodio saw significant improvements this summer, including a proposal for comprehensive audio dithering support. Dithering improves perceived audio quality when converting from digital to analog. I also added support for 24-bit integer output, preserving high-resolution audio quality throughout the playback chain.

The switch to Symphonia as the default decoder provides better format support and more consistent behavior across platforms. I've also improved seeking behavior, meaning you can jump around in tracks more reliably without glitches.

A major decoder overhaul was proposed with over 2,400 lines implementing universal seeking support, bit depth detection, and performance improvements. While the proposal so far was rejected due to its size, with recommendations to split into smaller changes, the work demonstrates the improvements being considered.

Foundation Work: The Supporting Cast

Supporting these improvements required work on foundational libraries like alsa-rs, where I added comprehensive buffer and period parameter methods that enable CPAL's new buffering strategies. The dasp library received square root implementation optimizations for better performance in signal processing tasks.

What's Next: Qobuz Connect Development

The Qobuz Connect player I'm developing has made significant progress on protocol implementation. I've successfully deciphered the incoming message format, implemented device registration and authentication, and I'm currently working on becoming the "active renderer" that can actually play music. The goal is to get to an alpha version that demonstrates basic playback functionality, turning any compatible device into a Qobuz Connect endpoint that you can control from the official Qobuz apps.

Your sponsorship makes this comprehensive approach possible, doing things properly rather than quickly. The foundation I'm building will benefit not just the Qobuz Connect player, but every audio application built with these libraries.

Thank You

These improvements represent months of development, testing, and refinement that's encouraged because of your generous backing. If you're interested in seeing this work continue toward the Qobuz Connect player, please consider sponsoring me.

Thank you for supporting my open-source audio development.

Best regards,
Roderick

Refreshing this page almost on a daily base Wink so lets be cheeky; any news Roderick?
Can I help, besides my donation? (testen, dingen uit zetten in Q's community?)

Grt
Roel