Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Releases: CharlexH/SideB

SideB 1.1.0 KNULLI/muOS Candidate 1

14 Jun 08:07
@CharlexH CharlexH

Choose a tag to compare

Pre-release

KNULLI/muOS Candidate test builds

These are experimental Candidate packages for people who have real KNULLI or muOS devices and want to try SideB.

They are not Stable support yet. I do not currently have real KNULLI/muOS hardware validation for launch, display, input, Spotify Connect, local playback, or clean exit.

Assets

  • SideB-1.1.0-knulli-candidate.zip - KNULLI / PortMaster-style Candidate package
  • SideB-1.1.0-muos-candidate.muxapp - muOS Archive Manager Candidate package
  • candidate-test-checklist.md - what to report if you test it

Please report

If you try one of these builds, please include:

  • Device model and OS version
  • Archive filename and SHA256
  • Install path
  • /tmp/sideb.log
  • /tmp/go-librespot.log
  • Whether launch, display, input, Spotify Connect, local playback, and exit worked

If there is no feedback, these platforms will remain Candidate-tier and non-blocking for future releases.

Loading

v1.1.0

13 Jun 17:54
@CharlexH CharlexH

Choose a tag to compare

What's New

  • SDL local playback: downloaded and imported MP3s now play through SideB's SDL audio callback with bundled ffmpeg-lite PCM decoding, replacing the old aplay output path.
  • More resilient downloads: pending downloads persist across restarts, startup restores incomplete work, yt-dlp progress is reflected in the UI, and short failure notices distinguish cookies, YouTube challenges, network, storage, missing tools, and no-match cases.
  • Better local MP3 imports: ignores macOS metadata files, supports album-folder cover.* and folder.* artwork, backfills missing covers for existing managed tracks, and keeps remove/re-add behavior safer around the currently playing file.
  • Release hardening: package builds now use the GNU/glibc target needed for SDL loading, verify ffmpeg-lite capabilities, validate release metadata, and check the three platform archive layouts.

Assets

  • SideB-1.1.0-nextui.zip for NextUI Pak Store / Tools installs
  • SideB-1.1.0-stock.zip for Stock OS Apps installs
  • SideB-1.1.0-crossmix.zip for CrossMix Apps installs

Validation

  • cargo test: 163 passed
  • release metadata check: passed
  • package build and zip layout checks: passed
  • device smoke test: v1.1 SDL backend loaded libSDL2 and played local MP3s via backend=sdl

Experimental Candidate packages

KNULLI and muOS packages are attached for testers with real devices. They are Candidate builds, not Stable support yet.

  • SideB-1.1.0-knulli-candidate.zip
  • SideB-1.1.0-muos-candidate.muxapp
  • candidate-test-checklist.md for feedback reports
Assets 8
Loading

v1.0.12

24 May 15:04
@CharlexH CharlexH

Choose a tag to compare

Local cover art can now be added to already-imported tracks by placing a same-name image next to the MP3 in data/music. New manual MP3 uploads should still go through data/imports so SideB can create the managed library entry.

Loading

v1.0.11

24 May 11:38
@CharlexH CharlexH

Choose a tag to compare

Hotfix release for local/offline playback on NextUI.

Changes:

  • Rebuilds the bundled ffmpeg-lite with the real pcm_s16le muxer component behind -f s16le.
  • Strengthens the FFmpeg packaging gate to require libmp3lame, pcm_s16le, and a runtime-openable s16le muxer.
  • Adds a regression script so invalid FFmpeg component names are rejected before packaging.

Validation:

  • cargo fmt --manifest-path spotify-ui-rs/Cargo.toml --check
  • cargo test --manifest-path spotify-ui-rs/Cargo.toml (138 passed)
  • ./scripts/check_ffmpeg_audio_transcoder.sh package/SideB.pak/ffmpeg-lite
  • ./scripts/test_check_ffmpeg_audio_transcoder.sh
  • ./scripts/package.sh
  • Verified the NextUI zip contains the same ffmpeg-lite checksum as staging and exposes Muxer s16le.
  • Verified on device that /tmp/ffmpeg-lite can decode a real MP3 to 1 second of s16le PCM.
Loading

v1.0.10

24 May 01:49
@CharlexH CharlexH

Choose a tag to compare

  • Fixed local MP3 playback on NextUI by using SideB's bundled ffmpeg-lite decoder path.\n- Rebuilt ffmpeg-lite with libmp3lame and s16le support for download transcoding and local PCM playback.\n- Added short on-device playback failure notices such as Missing ffmpeg and Missing aplay.\n- Updated the waiting screen copy to mention MP3 import.
Loading
gabrielpsp reacted with thumbs up emoji
1 person reacted

v1.0.9

12 May 08:56
@CharlexH CharlexH

Choose a tag to compare

Changes

  • Local MP3 import now scans nested folders under data/imports/.
  • Album subfolders are imported into FAV LIST automatically.
  • Updated pak.json to point Pak Store users at SideB-1.0.9-nextui.zip.

Assets

  • SideB-1.0.9-nextui.zip
  • SideB-1.0.9-stock.zip
  • SideB-1.0.9-crossmix.zip

Verification

  • git diff --check
  • cargo fmt --check
  • cargo test
  • ./scripts/package.sh
Loading

v1.0.8

11 May 08:19
@CharlexH CharlexH

Choose a tag to compare

What's Changed

  • Added a compact status-bar battery icon with five battery levels and a dedicated charging icon.
  • Reads battery percentage from NextUI /tmp/percBat first, then falls back to Linux power_supply capacity.
  • Fixed charger-unplug detection by trusting Battery status=Charging instead of sticky USB online state.
  • Added SideB Lock screen-off behavior and playback-aware sleep guards.
  • Avoids suspend while Spotify/local playback, pause state, or downloads are active.
  • Updated pak.json and release metadata to v1.0.8.

Verification

  • cargo fmt -- --check
  • bash -n scripts/package.sh scripts/check_ffmpeg_audio_transcoder.sh
  • sh -n package/SideB.pak/launch.sh packaging/nextui/launch.sh packaging/stock/launch.sh packaging/crossmix/launch.sh
  • cd spotify-ui-rs && cargo test battery && cargo test power && cargo test render && cargo test
  • cargo build --release --target aarch64-unknown-linux-musl
  • ./scripts/check_ffmpeg_audio_transcoder.sh package/SideB.pak/ffmpeg-lite
  • ./scripts/package.sh
  • Verified all three release zips contain the expected sideb binary, launcher, battery icons, ffmpeg-lite, go-librespot, yt-dlp, config, and license files.
Loading

v1.0.7

03 May 04:57
@CharlexH CharlexH

Choose a tag to compare

Pak Store install fix

This release fixes the NextUI Pak Store install layout for SideB.

Changes

  • Fixed the NextUI release archive so its entries are rooted at the pak contents, matching Pak Store requirements.
  • Kept Stock and CrossMix archive layouts rooted at Apps/SideB/.
  • Added release-package layout validation to scripts/package.sh to prevent nested-install regressions.
  • Updated release docs and third-party binary source/checksum metadata.

Assets

  • SideB-1.0.7-nextui.zip for NextUI Pak Store and manual NextUI installs
  • SideB-1.0.7-stock.zip for Stock OS
  • SideB-1.0.7-crossmix.zip for CrossMix OS

Checks

  • cargo test (105 passed)
  • ./scripts/package.sh with built-in zip layout validation
  • jq . pak.json
  • bash -n scripts/package.sh scripts/check_ffmpeg_audio_transcoder.sh
  • git diff --check
Loading

v1.0.6

03 Apr 15:18
@CharlexH CharlexH

Choose a tag to compare

Performance Optimization

Major rendering performance improvements for reduced device temperature and smoother animation.

Changes

  • 3x faster rendering: frame time reduced from 87ms to 25ms at 30 FPS
  • Eliminated CPU busy-waiting: replaced spin-lock with blocking lock in network thread
  • Fast alpha blending: bit-shift approximation (div255) replaces integer division on ARM
  • Optimized drawing primitives: transparent pixel run skipping, row-based slicing, eliminated per-pixel bounds checks in draw_image_alpha, draw_image_scaled, fill_rect
  • Smarter idle behavior: longer sleep when paused (300ms vs 100ms), skip dirty rect writes when nothing visually changed
  • Reduced polling overhead: playlist repeat poll interval 10ms → 30ms

Results (measured on TrimUI Brick)

Metric Before After
Frame time (avg) 87ms 25ms
Frame time (p95) 101ms 26ms
CPU temperature 64°C 35°C
sideb CPU usage 25% 10%
CPU idle 40% 84%
Loading

v1.0.5

03 Apr 07:40
@CharlexH CharlexH

Choose a tag to compare

What's New

Smart Offline Caching

  • Multi-candidate search: Searches 5 YouTube candidates instead of 1, scores each by duration match, title similarity, channel quality, and negative signals (cover/remix/live detection)
  • Duration-based scoring: Uses Spotify's precise track duration as a fingerprint to select the best match
  • Post-download validation: Verifies downloaded file duration against Spotify metadata (15s threshold), rejects mismatches and retries with next candidate

Download Progress Indicator

  • Real-time progress shown in FAV LIST as a pie/fan indicator next to each track:
    • White hollow circle — queued
    • Yellow hollow circle — searching
    • Yellow pie fill — downloading (progressive fill 25%–75%)
    • Yellow pie fill — transcoding (75%–100%)
    • Green filled circle — complete
  • File-size polling approach for reliable progress tracking on embedded Linux

Download Resume

  • Incomplete downloads (downloaded: false in favorites) are automatically re-queued on app startup
  • No need to unfavorite and refavorite to retry failed downloads

Other

  • Node.js runtime support in launch scripts (for future yt-dlp enhancements)
  • Spotify duration propagated through the entire download pipeline
  • Screenshot references updated from .webp to .png
Loading
Previous 1
Previous

AltStyle によって変換されたページ (->オリジナル) /