[GH-ISSUE #14] Add a Custom Audio Engine (Improved Sound Processing and EQ) #11

Closed
opened 2026-03-03 00:07:03 +03:00 by kerem · 4 comments
Owner

Originally created by @ghostteammj on GitHub (Oct 11, 2025).
Original GitHub issue: https://github.com/binimum/tidal-ui/issues/14

Hi! First of all, I really appreciate your work on Binilossless. The app is evolving fast, and the new updates with faster playback and Hi-Res support are amazing.

However, I’ve noticed something compared to DAB — even though Binilossless delivers true FLAC/Hi-Res quality, the sound feels flatter or less dynamic than before. I think this happens because DAB used a custom sound engine on top of ExoPlayer that included:

Slight dynamic range enhancement,

Internal EQ/loudness normalization,

ReplayGain-like processing.

Those features gave DAB a warmer, fuller, and more powerful sound.Would it be possible to implement a custom audio engine (or enhance the current ExoPlayer backend) to achieve similar results?
It could include things like:

Adjustable EQ or tone shaping,

Optional loudness normalization,

Hi-Res mixing via libraries like Superpowered Audio SDK or SonicSync,

Optional dynamic range compressor for consistent volume across tracks.

This would make Binilossless not only technically lossless, but also more musically engaging — closer to how Apple Music or TIDAL render their Hi-Res audio.Thanks again for your hard work and for keeping this project alive. It’s already an amazing player, and a proper sound engine would make it perfect.

Originally created by @ghostteammj on GitHub (Oct 11, 2025). Original GitHub issue: https://github.com/binimum/tidal-ui/issues/14 Hi! First of all, I really appreciate your work on Binilossless. The app is evolving fast, and the new updates with faster playback and Hi-Res support are amazing. However, I’ve noticed something compared to DAB — even though Binilossless delivers true FLAC/Hi-Res quality, the sound feels flatter or less dynamic than before. I think this happens because DAB used a custom sound engine on top of ExoPlayer that included: Slight dynamic range enhancement, Internal EQ/loudness normalization, ReplayGain-like processing. Those features gave DAB a warmer, fuller, and more powerful sound.Would it be possible to implement a custom audio engine (or enhance the current ExoPlayer backend) to achieve similar results? It could include things like: Adjustable EQ or tone shaping, Optional loudness normalization, Hi-Res mixing via libraries like Superpowered Audio SDK or SonicSync, Optional dynamic range compressor for consistent volume across tracks. This would make Binilossless not only technically lossless, but also more musically engaging — closer to how Apple Music or TIDAL render their Hi-Res audio.Thanks again for your hard work and for keeping this project alive. It’s already an amazing player, and a proper sound engine would make it perfect.
kerem 2026-03-03 00:07:03 +03:00
  • closed this issue
  • added the
    wontfix
    label
Author
Owner

@binimum commented on GitHub (Oct 11, 2025):

Thanks for the feedback!

When streaming Hi-Res audio, it can't be fully lossless (not until I successfully decompile the iOS app). Hi-Res Lossless uses MPEG-DASH which is a variable bit rate protocol that yes, isn't truly lossless but will still sound very faithful to the original (much more than CD quality).

In terms of CD quality, the browser directly plays a FLAC and to my knowledge DAB does the exact same - I probably won't include an EQ into a web app because it simply overcomplicates things or an internal EQ as this would probably anger lots of people for not being faithful - sorry. Try downloading the songs and EQing them via your own software!

Loudness normalisation, on the other hand, would be an opportunity that I can explore - a toggleable thing in the settings. The compressor is basically the same but I probably won't use it as the effect it creates ruins some songs.

I don't know what "Hi-Res mixing" is - but it probably doesn't support the browser or MPEG-DASH. If it does please lead me in the right direction!

Have a good day.

<!-- gh-comment-id:3393515099 --> @binimum commented on GitHub (Oct 11, 2025): Thanks for the feedback! When streaming Hi-Res audio, it _can't_ be fully lossless (not until I successfully decompile the iOS app). Hi-Res Lossless uses MPEG-DASH which is a variable bit rate protocol that yes, isn't truly lossless but will still sound very faithful to the original (much more than CD quality). In terms of CD quality, the browser directly plays a FLAC and to my knowledge DAB does the exact same - I probably won't include an EQ into a web app because it simply overcomplicates things or an internal EQ as this would probably anger lots of people for not being faithful - sorry. Try downloading the songs and EQing them via your own software! Loudness normalisation, on the other hand, would be an opportunity that I can explore - a toggleable thing in the settings. The compressor is basically the same but I probably won't use it as the effect it creates ruins some songs. I don't know what "Hi-Res mixing" is - but it probably doesn't support the browser or MPEG-DASH. If it does please lead me in the right direction! Have a good day.
Author
Owner

@ghostteammj commented on GitHub (Oct 12, 2025):

Thanks for the feedback!

When streaming Hi-Res audio, it can't be fully lossless (not until I successfully decompile the iOS app). Hi-Res Lossless uses MPEG-DASH which is a variable bit rate protocol that yes, isn't truly lossless but will still sound very faithful to the original (much more than CD quality).

In terms of CD quality, the browser directly plays a FLAC and to my knowledge DAB does the exact same - I probably won't include an EQ into a web app because it simply overcomplicates things or an internal EQ as this would probably anger lots of people for not being faithful - sorry. Try downloading the songs and EQing them via your own software!

Loudness normalisation, on the other hand, would be an opportunity that I can explore - a toggleable thing in the settings. The compressor is basically the same but I probably won't use it as the effect it creates ruins some songs.

I don't know what "Hi-Res mixing" is - but it probably doesn't support the browser or MPEG-DASH. If it does please lead me in the right direction!

Have a good day.

Thanks a lot for the detailed explanation! That totally makes sense — I understand how implementing a built-in EQ or processing could affect the “bit-perfect” playback, especially for Hi-Res streams through MPEG-DASH.

My main thought was more about having an optional audio engine toggle or enhancement mode — not a forced EQ, but something similar to what some players do to give a little warmth or dynamic boost without altering the FLAC data itself (like post-processing through a WebAudio layer).

Loudness normalization as a toggle sounds great though — that would already make playback feel more balanced across tracks.

Also, about the “Hi-Res mixing” part — what I meant is when the player handles Hi-Res (24-bit/96-192kHz) audio in a way that preserves the full resolution through the entire processing chain, without downsampling or converting it to 44.1kHz internally. Some apps like Apple Music and Poweramp refer to this as “Hi-Res audio output” or “Hi-Res mixing,” meaning the DAC gets the full bit-depth and sample rate instead of a system-mixed signal.

I really appreciate your openness and how quickly you’re developing the project. It’s awesome to see Binilossless evolving so fast!

If you ever need testing feedback for new audio features, I’d be happy to help.

<!-- gh-comment-id:3394124911 --> @ghostteammj commented on GitHub (Oct 12, 2025): > Thanks for the feedback! > > When streaming Hi-Res audio, it _can't_ be fully lossless (not until I successfully decompile the iOS app). Hi-Res Lossless uses MPEG-DASH which is a variable bit rate protocol that yes, isn't truly lossless but will still sound very faithful to the original (much more than CD quality). > > In terms of CD quality, the browser directly plays a FLAC and to my knowledge DAB does the exact same - I probably won't include an EQ into a web app because it simply overcomplicates things or an internal EQ as this would probably anger lots of people for not being faithful - sorry. Try downloading the songs and EQing them via your own software! > > Loudness normalisation, on the other hand, would be an opportunity that I can explore - a toggleable thing in the settings. The compressor is basically the same but I probably won't use it as the effect it creates ruins some songs. > > I don't know what "Hi-Res mixing" is - but it probably doesn't support the browser or MPEG-DASH. If it does please lead me in the right direction! > > Have a good day. Thanks a lot for the detailed explanation! That totally makes sense — I understand how implementing a built-in EQ or processing could affect the “bit-perfect” playback, especially for Hi-Res streams through MPEG-DASH. My main thought was more about having an optional audio engine toggle or enhancement mode — not a forced EQ, but something similar to what some players do to give a little warmth or dynamic boost without altering the FLAC data itself (like post-processing through a WebAudio layer). Loudness normalization as a toggle sounds great though — that would already make playback feel more balanced across tracks. Also, about the “Hi-Res mixing” part — what I meant is when the player handles Hi-Res (24-bit/96-192kHz) audio in a way that preserves the full resolution through the entire processing chain, without downsampling or converting it to 44.1kHz internally. Some apps like Apple Music and Poweramp refer to this as “Hi-Res audio output” or “Hi-Res mixing,” meaning the DAC gets the full bit-depth and sample rate instead of a system-mixed signal. I really appreciate your openness and how quickly you’re developing the project. It’s awesome to see Binilossless evolving so fast! If you ever need testing feedback for new audio features, I’d be happy to help.
Author
Owner

@binimum commented on GitHub (Oct 12, 2025):

Thanks for claifying - I think you're going along the lines of direct output to DAC which isn't really supported on a browser, sorry. However, you could check your sound settings in Windows for example - sorry but I don't have too much experience with this. If you do know how to implement it please enlighten me - would be very helpful!

<!-- gh-comment-id:3394331869 --> @binimum commented on GitHub (Oct 12, 2025): Thanks for claifying - I think you're going along the lines of direct output to DAC which isn't really supported on a browser, sorry. However, you could check your sound settings in Windows for example - sorry but I don't have too much experience with this. If you do know how to implement it please enlighten me - would be very helpful!
Author
Owner

@ghostteammj commented on GitHub (Oct 12, 2025):

Thanks for claifying - I think you're going along the lines of direct output to DAC which isn't really supported on a browser, sorry. However, you could check your sound settings in Windows for example - sorry but I don't have too much experience with this. If you do know how to implement it please enlighten me - would be very helpful!

Yeah, that’s exactly what I meant — direct output to the DAC, bypassing the system mixer. Sadly I don’t have a PC at the moment, I mostly use Android for listening, so I was wondering if something like that could be supported through the WebAudio API or a mobile-optimized implementation in the future.

Either way, I totally understand the browser limitations. Thanks again for being so open and for taking the time to discuss these details — it really shows how passionate you are about keeping the sound quality faithful!

<!-- gh-comment-id:3394357943 --> @ghostteammj commented on GitHub (Oct 12, 2025): > Thanks for claifying - I think you're going along the lines of direct output to DAC which isn't really supported on a browser, sorry. However, you could check your sound settings in Windows for example - sorry but I don't have too much experience with this. If you do know how to implement it please enlighten me - would be very helpful! Yeah, that’s exactly what I meant — direct output to the DAC, bypassing the system mixer. Sadly I don’t have a PC at the moment, I mostly use Android for listening, so I was wondering if something like that could be supported through the WebAudio API or a mobile-optimized implementation in the future. Either way, I totally understand the browser limitations. Thanks again for being so open and for taking the time to discuss these details — it really shows how passionate you are about keeping the sound quality faithful!
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/tidal-ui#11
No description provided.