What's new

Release notes

Every version of Miauw, newest first. Updates arrive through Google Play.

Version 1.0.0 Latest

  • Miauw is now a native Android app, rebuilt in Kotlin and Jetpack Compose with the same screens and features
  • Update: your library, playlists, favourites, settings and Google Drive cache from the previous version are imported on first start, and the old data is kept for 30 days
  • Audio: new MiME audio engine with System, Standard and Hi-Res output; Hi-Res plays at the file sample rate on an exclusive stream when the device allows it
  • Equalizer: parametric or graphic equalizer with preamp, up to 64 parametric bands, AutoEQ and Equalizer APO import, and profiles for each output device
  • Android Auto: play by voice, for example "play Taman on Miauw"
  • Backup: library backup and restore in the same file format as the previous version

Version 0.11.0

  • Android TV: added a D-pad-first JetStream-inspired interface with Home, Library, Search, collections, Player, Settings, Equalizer, and About screens
  • TV setup: sign in on the TV with Google device flow, then choose multiple songs on a phone in the native Android Google Picker; folders can be opened but not selected
  • TV sharing: selected songs are stored in the owner's Drive and synchronized to each TV through local-network hints, the Drive changes feed, and periodic checks
  • TV Local files: find and play audio already on the TV or attached USB storage; removing a song from Miauw leaves its media file intact
  • TV setup: added bulk select, deselect, and confirmed delete for shared songs, plus progress for TV checks and sharing songs
  • TV About: added remote-readable Privacy Policy, licenses, developer, release history, and update pages with QR codes for phone links
  • Google Drive: added Shared with me, so files other people share with your account can be added to the library
  • Google Drive: fixed the Added list header overflowing while the Delete button is showing
  • Android: exports now stream from a temporary file to the chosen location instead of passing the whole file over the platform channel
  • Library: fixed a crash when opening an artist or genre whose name contains "%"
  • Android Auto: browse icons now appear in release builds
  • Import: adding songs from local files or Google Drive no longer stalls on a slow or unreachable network; lyrics are looked up afterwards
  • Android: enabled optimized resource shrinking for a smaller release build

Version 0.10.0

  • Themes: added high-contrast E-Ink Light and E-Ink Dark themes with monospaced optical font scaling and custom UI borders
  • Themes: dynamic themed splash screen during launch matching user-selected active theme
  • Player: fixed playlist shuffle queue progression to preserve upcoming track order without prematurely clearing the queue
  • Waveform: refactored audio decoder to single-pass PCM stream processing for fast and reliable extraction
  • Google Drive: added automatic drive source database backfill and migration safeguards
  • Android: resolved edge-to-edge system window inset handling for Android 15 (SDK 35)
  • Performance: implemented bitmap downsampling for home widgets and notification artwork to optimize memory usage

Version 0.9.0

  • Google Play compliance: target Android 16 / API 36 for production updates
  • Drive import: fixed folders with more than 50 files by paging through Drive results, and improved support for shared folders added as My Drive shortcuts
  • Offline and Drive playback: recovered playback after stream failures, refreshed Drive access when needed, and kept cached playlist transitions working more reliably
  • Debugging: added app error/crash log capture with device and app version details, plus an in-app debug log viewer, clear action, and submit/export flow
  • Playlists: add the current track from Now Playing, add selected tracks from Library tabs, and add selected tracks from Albums, Artists, Genres, Folders, Local, Drive, Favourites, and Recently played
  • Playlists: prevent duplicate tracks in the same playlist and show feedback when selected tracks are added or already exist
  • Maintenance: refreshed compatible dependency versions for Firebase, Drift, secure storage, SVG rendering, image picking, metadata reading, update checks, and volume control

Version 0.8.0

  • Core player: editable queue, full playback session restore, disabled Next at the end of finite queues, and safer queue edits without playback hiccups
  • Library: sorting and filtering, Artists and Genres browsing, batch actions, smart playlists, duplicate detection, ratings, play stats, and track metadata editing
  • Lyrics: synced/unsynced lyrics storage, Now Playing lyrics overlay, LRCLIB fetch with duration-aware matching, and manual fetch from Track Info
  • Playback tools: sleep timer, playback speed, volume leveling, bookmarks, A-B repeat, gapless playback, trim silence, and quick Equalizer preset selection from Now Playing
  • Backup and restore: library export/import, old-backup restore compatibility, Google account restore warnings, album-art recovery, playlist import/export, and source repair workflow
  • Local library: Android folder import via system folder picker, Library Folders browsing, grouped Local Storage view, and cleanup of empty auto-created albums
  • Android: redesigned home screen playback widget, lock screen/notification artwork fix, and media notification color fix
  • Reliability: startup guards, Drive/offline playback error handling, stale cache cleanup, waveform and metadata extraction fixes, and safer reset/delete data flows

Version 0.7.0

  • Google Play in-app updates: silent check on launch, sticky restart prompt when an update finishes downloading, manual check in Settings → About
  • Android Auto: Play all and Shuffle play actions for albums and playlists
  • Playlists: search and sort in the add-tracks picker; bulk track removal from playlist detail
  • Networking: Google sign-in and audio source failures degrade gracefully when offline instead of crashing
  • Crash hardening: just_audio playback aborts and equalizer plugin exceptions are now recorded as non-fatals
  • Dev: debug builds (.debug applicationId) coexist with the Play Store install on the same device

Version 0.6.0

  • Cache playback: encrypted files now decrypted on-the-fly via localhost HTTP proxy — no plaintext ever written to disk
  • Security & performance hardening pass (F-01..F-15): auth handling, streaming decryption, memory bounds, IO safety
  • Resumable downloads: Drive cache resumes from interrupted partial files via HTTP Range requests
  • Paused downloads: red pause indicator with last progress %, tap to resume
  • Corrupt cache recovery: stale .enc files auto-evicted after key rotation or app reinstall
  • Track Info: new options bottom sheet with re-extract waveform, remove from cache, delete track
  • Track Info: waveform now appears automatically when background caching completes

Version 0.5.0

  • Android Auto: restructured browse menu (Library hub with All Songs/Albums/Artists/Playlists)
  • Android Auto: album artwork shown in browse tree via FileProvider content URIs
  • Android Auto: custom vector icons for Library, Playlists, Albums, Favourites
  • Android Auto: artists browsing via unique track subtitle list
  • Android Auto: fresh DB queries so browse tree updates live after imports
  • Drive import: concurrent imports now queued instead of silently dropped
  • Drive import: queue count shown in progress banner
  • Local Storage: multi-select with Select all, Deselect all, and batch delete
  • Settings: Delete My Data action (clears cache, resets library, revokes OAuth, wipes preferences)
  • Settings: Profile card opens Drive when signed in, chevron always visible
  • Settings: Google Drive row shows chevron alongside Connected status
  • Fix: Mini player Add Source button hides reactively after first import

Version 0.4.1

  • Security: encryption key migrated to Android Keystore
  • Performance: batch delete for tracks, database indexes added
  • Fix: waveform extraction for cached Drive tracks
  • Fix: waveform preview in Track Info screen with Re-extract button
  • Fix: EqualizerManager released on app destroy
  • Fix: temp files cleaned up after use
  • Fix: waveform polling capped at 10 attempts
  • Google Play compliance: privacy policy links to website

Version 0.4.0

  • Dark mode overhaul: #0B1014 bg, #1E1F21 cards, nav bar blends seamlessly
  • Drive browser: full row tap for folder navigation with ripple
  • Drive browser: search in current folder
  • Drive browser: imported files/folders shown with green checkmark
  • Drive browser: skip already-imported files on re-import
  • Drive Added section: multi-select with bulk delete
  • Drive Added section: Select all / Deselect all toggle
  • Playlist rename from detail screen
  • Album options as bottom sheet (consistent with playlist)
  • Form input guards: 50-char limit on names, 4-char on year

Version 0.3.0

  • Sliding waveform seek bar with reflection effect
  • Waveform extraction during local & Drive import
  • Local import with notification bar progress
  • Audio info tags on Now Playing (sample rate, bitrate, format)
  • Redesigned Now Playing screen with album art frame
  • Sparse waveform decoding (~1-2s per track)
  • Release history screen in Settings
  • Not signed in profile card opens Google sign-in
  • Remove Oboe/C++ native engine (reduces APK size)

Version 0.2.4

  • Drive import background service with notifications
  • Cancel import with confirmation
  • Albums created per-folder during import
  • Google Sign-In fix (full revoke on sign out)
  • Bug audit: 41 fixes (SQL injection, race conditions, leaks)

Version 0.2.3

  • Cascade delete for tracks, albums, playlists
  • Confirmation bottom sheets for deletions
  • Player resets if current track deleted

Version 0.2.2

  • Encrypted offline caching for Google Drive tracks
  • Auto-cache on play with configurable max size
  • Cache management in settings

Version 0.2.1

  • Google Drive integration
  • Browse and import folders/files
  • Streaming playback from Drive