Releases: koiverse/ArchiveTune
13.0.0
Changelog
🚀 Highlights
This release focuses on major UI upgrades, playback improvements, lyrics enhancements, and the introduction of new core systems like Music Together and Music Recognition. Stability, performance, and internal architecture have also been significantly refined.
✨ Features
🎧 Player & Playback
-
Introduced V5 and V6 player styles, with improved layouts and interaction design
-
Added permanent shuffle mode and enhanced repeat/shuffle controls
-
New gesture controls:
- Double-tap to skip
- Vertical drag to seek
-
Added streams options and improved codec visibility
-
Enhanced seekbar behavior and playback interaction handling
-
Added keyboard controls and landscape lock support
-
Improved automix system with smarter filtering and recommendations
-
Added pause on device mute and Bluetooth auto-play
🎨 UI / UX
- Major redesign of Settings, Experimental Settings, and overall UI consistency
- Added Floating Navigation Toolbar with improved interaction and animations
- Improved menus with card-based and sectioned layouts
- Added search inside Settings
- Separated Mood & Genres into dedicated screens
- Improved carousel components and layout responsiveness
🎤 Lyrics System (Major Upgrade)
-
Completely enhanced TTML parsing and timing accuracy
-
Improved karaoke-style rendering and word sync
-
Filters out invalid/empty lyrics before UI rendering
-
Added:
- RTL support
- System/custom font options
- Lyrics preloading
- Better provider handling
-
Improved lyrics UI styling with unified glass design
📊 Year in Music
-
Fully redesigned Year in Music experience
-
Added:
- Story-style pager
- Top albums view
- Year selector
- Share-safe rendering system
🤝 Music Together (New)
- Real-time shared listening sessions
- Online session support with remote server
- Guest roles with permission control
- WebSocket-based synchronization
- Improved error handling and connection fallback logic
🎵 Music Recognition (New)
- Built-in music recognition feature
- Enhanced result display with metadata and responsive layout
🖼️ Canvas System
- Introduced ArchiveTune Canvas system
- Improved artwork handling, caching, and fallback logic
- Better thumbnail matching and reliability
💾 Backup & Data
- More reliable backup & restore system with detailed progress
- Expanded file type support for imports
- Improved database transaction safety
🌐 Localization
-
Added Italian and Turkish
-
Expanded support for:
- Japanese, Korean, Vietnamese, and more
-
General translation improvements across the app
🛠️ Fixes
- Fixed YouTube sync toggle reliability and state handling
- Resolved multiple playback edge cases (queue restore, crossfade timing, metadata updates)
- Fixed lyrics sync issues, including TTML timing inconsistencies
- Addressed UI bugs (layout overlap, padding, navigation alignment)
- Improved playlist handling, including concurrency and edge cases
- Fixed network, login, and token-related issues
- Improved Music Together stability and error reporting
- Numerous dependency updates and compatibility fixes
⚡ Performance
- Cached stream URLs to reduce load time
- Optimized DataStore operations and queue persistence
- Improved coroutine usage in playback and UI layers
- Reduced unnecessary recompositions and UI rebuilds
🔧 Refactors
- Large-scale cleanup of player, lyrics, and networking layers
- Simplified YouTube parsing and stream handling logic
- Modularized gesture handling and UI components
- Improved state management across services and ViewModels
- Reworked crossfade and audio pipeline internals
📚 Documentation
- Updated README with clearer feature descriptions
- Added CONTRIBUTING guide
- Improved project documentation and links
🏗️ Build & CI
- Improved GitHub Actions workflows for builds and testing
- Added universal APK reproducibility checks
- Migrated and cleaned up Gradle configuration
- Updated major dependencies and tooling versions
🧾 Notes
- Some experimental or redundant features were removed or reworked
- Internal systems (e.g., streaming clients, token handling) have been heavily upgraded for long-term stability
Other Changes II
- fix(deps): update dependency androidx.datastore:datastore-preferences to v1.2.0 by @renovate[bot] in #213
- fix(deps): update compose to v1.10.1 by @renovate[bot] in #212
- fix(deps): update lifecycle to v2.10.0 by @renovate[bot] in #214
- fix(deps): update room to v2.8.4 by @renovate[bot] in #215
- chore(deps): update dependency com.google.devtools.ksp to v2.3.4 by @renovate[bot] in #216
- chore(deps): update gradle to v9.3.0 by @renovate[bot] in #217
- fix(deps): update dependency androidx.activity:activity-compose to v1.12.2 by @renovate[bot] in #220
- chore(deps): update kotlin to v2.3.0 by @renovate[bot] in #219
- fix(deps): update dependency androidx.work:work-runtime-ktx to v2.11.0 by @renovate[bot] in #222
- fix(deps): update dependency androidx.navigation:navigation-compose to v2.9.6 by @renovate[bot] in #221
- fix(deps): update dependency org.jsoup:jsoup to v1.22.1 by @renovate[bot] in #224
- fix(deps): update dependency org.apache.commons:commons-lang3 to v3.20.0 by @renovate[bot] in #223
- chore(deps): update github artifact actions (major) by @renovate[bot] in #233
- chore(deps): update actions/checkout action to v6 by @renovate[bot] in #232
- fix(deps): update media3 to v1.9.0 by @renovate[bot] in #229
- chore(deps): update gradle/actions action to v5 by @renovate[bot] in #235
- fix(deps): update dependency org.mozilla:rhino to v1.9.0 by @renovate[bot] in #234
- chore(deps): update mikepenz/release-changelog-builder-action action to v6 by @renovate[bot] in #236
- fix(deps): update ktor monorepo to v3.4.0 by @renovate[bot] in #228
- fix(deps): update dependency org.jsoup:jsoup to v1.22.1 by @renovate[bot] in #226
- fix(deps): update media3 to v1.9.1 by @renovate[bot] in #247
- Language PR: Vietnamese + Update dynamic theme logic by @sang765 in #251
- chore(deps): update dependency com.google.devtools.ksp to v2.3.5 by @renovate[bot] in #252
- fix(deps): update dependency androidx.work:work-runtime-ktx to v2.11.1 by @renovate[bot] in #253
- fix(deps): update dependency androidx.navigation:navigation-compose to v2.9.7 by @renovate[bot] in #254
- fix(deps): update compose to v1.10.2 by @renovate[bot] in #255
- chore(deps): update gradle to v9.3.1 by @renovate[bot] in #259
- (feat): Add option to crop YouTube thumbnail to 1:1 by @sang765 in #262
- fix(deps): update dependency androidx.activity:activity-compose to v1.12.3 by @renovate[bot] in #261
- (feat): Support Github markdown and HTML tag in update description by @sang765 in #264
- fix(deps): update dependency com.mikepenz:multiplatform-markdown-renderer-m3 to v0.39.1 by @renovate[bot] in #265
- fix(Items.kt): Square thumbnail by @sang765 in #271
- fix(deps): update dependency com.mikepenz:multiplatform-markdown-renderer-m3 to v0.39.2 by @renovate[bot] in #277
- translate: Add missing strings for Japanese, Korean and Vietnamese by @sang765 in #278
- fix: square thumbnail not turn back after off by @sang765 in #279
- fix(deps): update media3 to v1.9.2 by @renovate[bot] in #287
- chore(deps): update dependency go to 1.25 by @renovate[bot] in #288
- chore(deps): update actions/checkout action to v6 by @renovate[bot] in #289
- chore(deps): update actions/setup-go action to v6 by @renovate[bot] in #290
- chore(deps): update stefanzweifel/git-auto-commit-action action to v7 by @renovate[bot] in #291
- fix(deps): update hilt to v2.59.1 by @renovate[bot] in #285
- Fix: square thumbnail in arist by @sang765 in #294
- chore(deps): update dependency go to 1.26 by @renovate[bot] in https://github.com/...
12.4.7
Changelog v12.4.7
✨ New Features
Player & Audio Engine
- High Fidelity Audio: Added "Very High" and "Highest" audio quality options to settings.
- Audio Normalization: Implemented
perceptualLoudnessDbschema to support more accurate audio normalization. - Audio Offload: Introduced a new preference key and ExoPlayer configuration to support audio offloading for better battery efficiency during playback.
- Player V4 Design: Added a new "V4" player design style, alongside a new "Glow" background animation style.
- Playback Control:
- Added custom shuffle and repeat mode commands to the Media Session callback.
- Added specific "Start Mix" buttons for both Local and Online playlists.
- Added a loading progress bar state when the player is buffering.
Lyrics Experience
-
Visual Overhaul: Completely overhauled lyrics animations, specifically implementing a "BetterLyrics-style" karaoke animation that features improved gradients, glow effects, and smoother transitions.
-
TTML Support: Added full parsing support for TTML lyrics, including handling for background vocals and precise end-times.
-
Styling Options:
-
Added a distinct style for Romanized lyrics to differentiate them visually.
-
Added a "Karaoke" animation style for standard lyrics display.
-
Added settings to adjust preview time constants.
-
Synchronization: Implemented auto-sync logic for lyrics and a fallback animation if karaoke data is missing.
User Interface & Theming
-
Navigation Rail: Implemented a Navigation Rail for wide-screen devices (replacing the bottom bar) to improve tablet/landscape usability.
-
Material 3 Adoption: Full migration to Material 3 UI components, including Switches, Sliders, Edit Texts, and Palette Pickers.
-
Theme Creator:
-
Added a comprehensive Palette Picker Screen with carousel indicators.
-
Added support for Custom Theme Seeds, "Exact Palettes," and a "Pure Black" mode.
-
Vibrant mesh backgrounds now feature increased blob opacity and falloff stops.
-
Blur Effects:
-
Added toggle options to disable blur effects specifically in Album and Library screens.
-
Refined the TopAppBar blur with dynamic height adjustments based on scroll position.
-
Year in Music: Added a summary feature (
YearInMusicScreen) that generates shareable images with theme-based colors and user statistics.
Library & Content Management
-
Global Video Filtering: Added a comprehensive "Hide Video" preference that filters video content across all application areas:
-
Home, Search (and Suggestions), Explore, New Releases, Artist Pages, and Playlists.
-
Playlist Management:
-
Auto-Sync: Implemented automatic synchronization for playlists with immediate triggers upon enabling.
-
Duplicate Handling: Added robust duplicate detection and state management when importing playlists.
-
Reordering & Pinning: Added support for dragging to reorder playlists and pinning favorite playlists.
-
Tagging: Added support for tagging multiple playlists and filtering by tags in the library.
-
Artist Separators: Added a dialog and options for managing custom artist separators.
Integrations
-
Last.fm:
-
Implemented full OAuth Login and mobile session authentication.
-
Enhanced robustness for "Now Playing" updates and session key handling.
-
Discord RPC:
-
Added a Discord Image Resolver to handle rich presence assets.
-
Implemented connection status checks, wait logic, and automatic image type detection.
-
GitHub: Added a cached "Contributors" section to the About screen (filtering out bots).
🐛 Bug Fixes
Playback & Audio
- Looping Issues: Fixed a bug where Album Looping was not working as expected.
- Radio Mode: Resolved an issue where Radio mode would restart the current song from the beginning upon start.
- Normalization: Fixed bugs preventing audio normalization from functioning correctly.
- Metadata: Corrected track duration calculations for Last.fm updates and handled null song cases to prevent crashes.
User Interface
-
Blur & Visibility:
-
Fixed issues where the TopAppBar shadow/background was missing.
-
Adjusted alpha values for blur overlays to fix visibility issues ("Blur like before").
-
Fixed the "Downloaded" filter pill not showing downloaded albums correctly.
-
Lyrics: Fixed scrolling motion reduction and improved gradient transitions for karaoke fills.
-
Bottom Sheet: Fixed background opacity issues in
BottomSheetPlayer.
Sync & Database
-
Startup Crashes: Fixed an ANR (App Not Responding) issue caused by SQLite deadlocks during startup after YouTube login.
-
Playlists:
-
Fixed inconsistencies when adding songs to playlists.
-
Fixed auto-sync database queries.
-
Improved error handling for Backup/Restore operations.
-
Login Persistence: Fixed Last.fm login dialog behavior and credential storage (reading from
local.properties).
System & Services
- Foreground Service: Ensured compliance with Android O+ foreground service requirements to prevent crashes.
- Discord Presence: Fixed connection stability, restart lockout logic, and shutdown resilience.
- Crash Reporting: Enhanced the Debug Activity to include stack traces and action buttons.
⚡ Performance Improvements
-
Image Caching: Optimized
Coilimage requests by dynamically sizing requests and implementing automated cache pruning for old entries. -
Lyrics Engine:
-
Implemented binary search for lyric line index lookup (significantly faster than linear search).
-
Optimized update delays for smoother synchronization.
-
Concurrency:
-
Offloaded blocking operations in
MainActivityandMusicServiceto background dispatchers. -
Implemented concurrent data loading in
HomeViewModel. -
Database: Optimized
PRAGMAsettings and query performance for migrations.
🛠 Technical Refactors
- Music Service: Massive refactor of
MusicService.ktto delegate media notification handling, command processing, and coroutine scope management. - Database Migration: Consolidated migrations and added a "Schema Repair" mechanism to handle updates to version 25 (including
isLocaldefault value handling). - Navigation: Simplified navigation logic and removed redundant "Permission Onboarding" screens.
- Code Structure:
- Moved
DiscordRPCimage logic to a centralized resolver. - Refactored
DownloadUtilto use shared cache definitions. - Cleaned up
ArtistScreenandAlbumScreenlayouts to remove unused imports and improve rendering efficiency.
🌐 Localization
- New Languages: Added support for Estonian, Vietnamese.
- Updated Translations: French, German, Indonesian, Japanese, Korean, Portuguese (Brazil), Russian.
Other Changes II
- Rename section from 'phoneScreenshots' to 'ArchiveTune Screenshots' by @Windowstechtips in #92
- fix TopAppBar background by @GoldenWarriorM in #100
- French language added by @MicheDePainn in #103
- Redesign artist by @koiverse in #105
- fix(deps): update compose to v1.10.0-rc01 by @renovate[bot] in #110
- fix(deps): update dependency androidx.activity:activity-compose to v1.12.0 by @renovate[bot] in #111
- fix(deps): update dependency androidx.compose.material3:material3 to v1.5.0-alpha09 by @renovate[bot] in #112
- fix(deps): update dependency androidx.lifecycle:lifecycle-process to v2.10.0 by @renovate[bot] in #113
- fix(deps): update dependency androidx.navigation:navigation-compose to v2.9.6 by @renovate[bot] in #114
- merge Dev to main by @koiverse in #135
- Fix typo in README description by @Windowstechtips in #108
- add autoscroll button animation and .clickable scroll to current lyric by @GoldenWarriorM in #153
- fix (Queue): prevent dragged queue item from being hidden behind others and fix current track highlighting during reordering by @GoldenWarriorM in #158
- fix (ui/Menu): improve bottom sheet menu scrolling and gesture handling by @GoldenWarriorM in #166
- Update German translations in archivetune_strings.xml by @siggi1984 in #168
- Update German translations in strings.xml by @siggi1984 in #169
- Update French translation in strings.xml by @Mickael81 in #173
- Update French translation in archivetune_strings.xml by @Mickael81 in #174
- Fix French translation issues & Proper Apple Music style lyric implementation for karaoke style. by @Windowstechtips in #175
- Fix web remix client not working and premium audio quality not being available. by @Mizuuta in #183
- Update lyrics API URL in BetterLyrics.kt by @Windowstechtips in #184
- Update API base URL for BetterLyrics by @Windowstechtips in #185
- TTML Overhaul, Lyrics Overhaul, Stats Page Overhaul, Homepage Optimizations by @Windowstechtips in https://...
12.4.6
✨ New Features & Enhancements
- Added Last.fm and ListenBrainz scrobbling support and new preference keys for enabling/disabling scrobbling and storing user session data.
- Refactored
DebugActivityto use Jetpack Compose for a more modern, maintainable, and visually appealing crash log screen. - Improved animation specs for navigation bar and bottom sheets to use non-bouncy springs, providing a smoother user experience.
- Enhanced service start logic in
MainActivityto usestartForegroundServiceon Android O+ for better compatibility and added exception handling for robustness. - Ensured
onNewIntentupdates the activity intent before handling deep links, addressing potential navigation issues. - Improved search and top app bar behavior to better handle navigation between top-level screens and provide a more consistent UI.
- Improved Lyrics and UI by @Windowstechtips in #62
- New changes by @Windowstechtips in #65
New Contributors
- @Windowstechtips made their first contribution in #62
Full Changelog: v12.4.5...v12.4.6
12.4.5
Highlights
App Icon Update!
Fresh and modern – designed to better correlate with ArchiveTune’s identity on Android version 15-16.
Performance Boost (Up to 30% less lag!)
Elimination of the delay created by MIN_PRESENCE_UPDATE_INTERVAL, which helped ensure smooth overall system performance.
Discord Rich Presence - Finally Fixed & More Accurate!
After a rigorous debugging process of 4 days, Discord presence updates accurately and shows up perfectly on all tracks, including audio as well as video.
UI & Design
- Remade "About" page layout
- App Icon Fixes
Icons are now displayed properly in both the About UI and the launcher on Android versions 15-16. - New Player Background Styles
Introduced 3 additional background effects: Coloring, Blur Gradient, Glow, as well as Custom Backgrounds. (Refer Issue #47.) Perfect background extras for customization
Features & Enhancements
Albums in App Bar
- Now you can see and browse Released Albums from the App Bar.
- Metered Network Toggle Introduced an option to switch in Player Settings, which enables you to decide how you want the player to act on metered networks.
- Improved Artwork Storage Improved the optimization of artworks’ storage and management in order to quickly access them by reducing redundancy.
- Improvements in Database Player Handling
Enhanced synchronization of player data into the database preventing crashes.
Bug Fixes
- Corrected issues related to unsynchronized player states impacting Discord updates.
- Fixed Discord Rich Presence not showing for tracks without album metadata.
- Fixed About UI and launcher icon issues on Android 15-16.
12.4.4
✨ New Features & Enhancements
- remake AppBar UI in homepage to more simple
- remake UI of bottomsheet new version available!
- remake customizable thumbnail/cover corner radius UI in appearance settings
- remove notes card from settings page
- now control small image resolution by preferences
- cache and reuse resolved external image urls
- honor large image preference for thumbnail in rpc
- rename artwork storage method call
- add missing strings into all language
- and many enhancements!
🛠 Bug Fixes & Stability
- fix discord presence show invalid image for both large and small
- remove 'custom' from allowed small image types
- remove redundant image resolution and rpc updates in MusicService
- improve image url parsing and configurable activity fields
- hoist discord presence image preferences in DiscordSettings
- and fixes more known issue!
12.4.3
✨ New Features & Enhancements
- add artwork storage utility
- include artwork storage when cache was cleared
- persist and use saved artwork for rpc images
- adjust lazycolumn padding on experimental settings page
- optimize rpc image resolution with in-memory cache
- clear stale artwork cache on rpc image failure
- resolve and persist song images for rpc and ui updates on music services
- delegate image resolution and persistence
🛠 Bug Fixes & Stability
- ensure consistent bottom sheet and menu state
- update silence skipping audio processor constructor
- handle network exceptions (issue when out of app and back again, app crashed)
- pass resolved image urls to discord rpc
- remove deep link intent listener (issue some crash and freezed sometimes on android 15)
- wait for bottom sheet to close before showing dialog (issue app very laggy)
- use synchronized method for image cache removal and reorder small image rpc conditions
- fix artist cover not displaying anymore on discord rich presence
12.4.2
✨ New Features & Enhancements
- Added bottom sheet when version release out!
- remake release notes card
- redesign album screen header with chips
- remove vertical spacing from artist page
- add debug activity for crash display
- add destructive migration fallback
- bump db version and add auto-migration
- and many more enhancements!
🛠 Bug Fixes & Stability
12.4.1
✨ New Features & Enhancements
-
Highly Customizable Discord Rich Presence
Tailor exactly how your presence appears in Discord, with more detail and flexible options. -
Smart RPC Translation
Automatically translate your Rich Presence text before it’s sent to Discord — making your activity accessible across languages. -
Lyrics Translation Support
Yes, you read that right — now you can translate lyrics directly inside ArchiveTune! -
Custom Player Thumbnail Radius
Personalize the look of your player with adjustable thumbnail corner radii. -
Redesigned Playlist Library UI
Enjoy a cleaner, more modern design for browsing your playlists. -
Performance & UI Enhancements
Faster responses, smoother transitions, and many small refinements throughout the app.
🛠 Bug Fixes & Stability
- Fixed cases where Discord RPC image would not show or disappear
- Improved retry logic for fetch player; handles transient network failures
- Corrected parameter bug that removed all artist songs
- Prevented race conditions in library sync / queue modifications
- Fixed data corruption / partial updates during interrupted writes
- Reduced memory leaks and optimized resource usage
- Backward migration support for older library schemas
- Better error reporting & logging for diagnosing uncommon cases