Skip to content

BitChord v1.1

Choose a tag to compare

@kushagrasinghx kushagrasinghx released this 12 Aug 15:55

Second release of BitChord. This one is mostly about playing the right thing, and playing it faster — plus shuffle that actually matches the queue you're looking at.

Highlights

🎵 Songs, not music videos
Home and the charts used to mix catalogue tracks with music-video uploads, so tapping one played the video's audio — wrong title, wrong artwork, and a video entry in your YouTube watch history. BitChord now finds the proper audio release of a track before it ever reaches the queue, and hides video-only shelves and dead-end "N videos" cards entirely.

🔀 Shuffle that matches the queue
Shuffle now rearranges the queue itself instead of playing it in a hidden random order behind your back. What the queue shows is what plays, in that order — and turning shuffle off puts it back exactly as it was.

⏭️ AutoPlay has its own section
Tracks AutoPlay lines up sit under their own heading at the bottom of the queue. Add to queue now drops a song at the end of what you asked for, above the mix, rather than behind it. Turning AutoPlay off takes its tracks back out; turning it on picks up from whatever's playing now.

⚡ Much faster seeking
Scrubbing backwards used to stall for a second or more while the track reloaded and re-decoded from an earlier point. The whole track is now kept buffered behind the playhead, so seeking back is as instant as seeking forward. Playback also starts on far less buffered audio (500ms instead of 2.5s), since the bytes are usually already cached on disk.

♾️ Home keeps loading
The Home feed now pages as you scroll, following YouTube Music's own continuations into mood mixes and more personalised shelves, instead of stopping after one fixed page. Daily/Weekly and Trending charts moved to Explore, where they live in the real app.

💾 Cache limit you control
Settings → Storage gains a Song cache limit slider — 512 MB up to 10 GB — plus a Clear song cache action. More cache means more tracks that replay and seek instantly with no network.

🔔 Update notifications
BitChord now checks GitHub for a newer release on launch and shows an update icon in the top bar when one is out. No more finding out by accident.

Also in this release

  • Artist pages now show the artist's own picture and name, instead of inheriting the cover art and the full "A, B & C" credit from whatever track you opened them from
  • New frosted bottom fade — content now dissolves under the tab bar instead of sliding under a hard-edged panel
  • The Home tab is now Play, with a play icon
  • Swiping the album art in the player shows a fast-forward/rewind hint for which way you're about to skip
  • The lyrics strip tells you it's looking, instead of sitting blank
  • Softer, unclipped blur on out-of-focus lyric lines, and a chevron hinting the strip opens full lyrics
  • Settings no longer hides an album or artist page opened from the player
  • Expanded README disclaimer

Install

Download BitChord-v1.1.apk below and sideload it (enable "Install unknown apps" for your browser or file manager). Requires Android 8.0 (API 26) or newer.

Installs straight over v1.0 — same signing key, so your session and settings are kept.


Full changelog (technical)

Added

  • YtMusicRepository.resolveAudio — swaps video-tagged songs for their catalogue audio release before queueing; wired into play, radio, add-to-queue, play-next and AutoPlay extension
  • QueueShuffle — shuffle as a queue edit, applied with moveMediaItem so the playing track's stream isn't re-resolved
  • Song.fromAutoplay + autoplaySectionStart() / dropAutoplayTracks() — AutoPlay as a real queue section, carried on MediaItem extras and persisted in LastPlayed
  • HomeFeed + moreHome() / parseHomeContinuation — Home pagination via FEmusic_home's own continuation token
  • DynamicLruCacheEvictor — Media3 LRU evictor with a mutable ceiling, so the cache limit can move without reopening SimpleCache
  • AppUpdateChecker — polls releases/latest, compares numerically against BuildConfig.VERSION_NAME
  • BottomFadeBlur — progressive-blur floor under the floating bars
  • dev/prod product flavors — dev ships as com.dev.bitchord with its own label and in-app badge, so both can be installed side by side
  • Settings: song cache limit slider (512 MB – 10 GB) and clear song cache
  • ArtistPage.thumbnailUrl / .name, parsed off the page header
  • QueueShuffleTest and QueueSectionsTest (13 new tests)

Changed

  • FEmusic_charts moved from Home to Explore
  • Back buffer set to 15 min with keyframe retention; bufferForPlaybackMs 2500 → 500, after-rebuffer 5000 → 1000
  • Home tab renamed Play; house icon replaced with a play triangle
  • FloatingBottomBar no longer applies its own blur — it tints over the bottom fade instead
  • Lyric-line blur uses BlurredEdgeTreatment.Unbounded
  • Artist navigation stops passing the source track's artwork through as a placeholder
  • Release builds are now assembleProdRelease
  • versionCode 1 → 2, versionName 1.0 → 1.1; buildConfig enabled

Fixed

  • Music-video uploads reaching the queue, the notification and YouTube watch history in place of the catalogue track
  • Shuffle showing one running order while playing another
  • Add-to-queue appending behind AutoPlay's mix instead of after the user's own tracks
  • Toggling AutoPlay off leaving its tracks in the queue; toggling it on skipping the current track as already-seeded
  • Backward seeks stalling on a full buffer reload and re-decode
  • Video-compilation shelves and cards linking to pages that parse to nothing
  • Settings covering an album/artist page pushed from the player, and surviving a tab switch
  • The three-dot menu missing album/artist rows when opened before those ids resolved