v4.1 Modify log parsing and DAC sample rate switching process @horikei525 - #216
horikei525 wants to merge 31 commits into
Conversation
|
Sorry to keep you waiting. |
…layback position of a song requiring a sample rate change.
…layback position of a song requiring a sample rate change.
|
Thanks for your work on this! I will try this out someday! |
…ication upon connected device changes, and prevention of playback rewinding.
…ication upon connected device changes, and prevention of playback rewinding.
|
We resolved the issue of the process launching twice and implemented fixes to ensure immediate format application and prevent rewinding when changing connected devices. |
Smart Mid-Song Format Handling & New Upgrade Preference Toggle
|
🐛 Fix: Reliable Native Track Format Switching Regardless of Mid-Song SettingsProblemPreviously, the app relied on a 5-second timer heuristic to determine whether a decoder log was a "mid-song update." However, Apple Music often takes 6 to 10 seconds to output the initial decoder log after a track change. Solution
|
…tting Integration
v4.1 Release Notes
In the previous v2 version, the application monitored Apple Music logs via "MediaRemote" to synchronize the sample rate. However, this approach forced an inherently contradictory behavior: as an app designed to synchronize sample rates for the highest quality audio experience, the noise generated by the DAC switching sample rates mid-playback would constantly interrupt the music, making it feel almost as if the noise was being introduced intentionally.
With this new v4.1 release, we have fundamentally resolved these core issues.
Our analysis of the Apple Music logs revealed that the system outputs the sample rate to the "log stream" first, and then to "MediaRemote" approximately 100ms later. Consequently, we have switched our monitoring target to the "log stream." The application now operates based on the following two scenarios:
1. Automatic Track Transitions within a Playlist (No User Interactivity)
00:00.2. Manual Track Changes by the User
When a user manually skips or selects a track, the behavior adjusts slightly to prevent errors:
00:00while the DAC is still mid-switch, Apple Music incorrectly assumes that the user's selected track failed to play. This triggers a bizarre bug that defaults back to playing the very first track in the playlist.00:00. This provides Apple Music with a buffer of over 100ms until the DAC is fully ready, successfully avoiding the error.By implementing these behaviors, the sample rate can be changed rapidly without the user even noticing.
Test Environment & Stability
During my internal testing with a MacBook Air M2 (macOS 26.5.2) paired with the Moondrop Dawn PRO, ECHO-A, and ECHO-B, the behavior appeared highly stable.
Future Roadmap
However, similar to v2, bit-depth switching remains unstable at this time. We will continue to target improvements for this behavior in future updates.