github zmd22/diskos-disco v2.5.9
diskOS Disco! 2.5.9

7 hours ago

diskOS Disco! 2.5.9

Faster and lighter: fixes from a memory and CPU audit, and a Windows app that keeps itself up to date.

Testing: checked with automatic tests and on a computer, not yet on a Disc.

Faster

  • Skipping songs is quicker when nothing is queued. The queue no longer reads and maps the player's whole list on
    every skip. When it does need the list, it reads it in one go instead of song by song.
  • Large libraries look songs up much faster. Disco makes sure the library has its path index (before, only a
    rescan created it). It's built once, in the background, about 45 seconds after start-up.
  • Queuing many songs never freezes the screen for long. If the library is busy, Disco gives up after one short
    wait, says "Library busy - try again", adds nothing and keeps your selection. Before, it could wait 1.5 seconds per
    song.
  • Lists you've left no longer keep scrolling their highlighted row in the background.

Lighter on memory

  • Playlists load only the rows they can show (up to 8,192) and release them once you've left.
  • Most Played / Recently Played reserve room for your history, not your whole library (that was 24 MB for 30,000
    songs), and release it when you switch views.
  • Immersive also releases its CD-sheen buffers (0.74 MB) when it closes.

Windows

  • The app updates itself: on every start it checks for a newer release and, if there is one, updates its
    installer files before you install (checked against the release's checksums; nothing changes on a mismatch or
    offline). Used the Windows app before? Download this version and click Set up again once.

Installing and updating

  • Already on diskOS Disco! 1.4.1 or newer? Update from the SD card: download mq_ui, sign it with your own
    keys and copy the diskos-update folder to the card (how). Your settings, music and stats stay.
  • New install? Start from FiiO's stock V2.57 firmware (recommended). Installing over upstream diskOS or
    another diskOS build is not supported and can be buggy; restore stock first. See Install.
  • Windows: Unsupported, but working as intended: confirmed several times by users, installs and SD updates included.

After updating

  • Settings > System > About shows 2.5.9.
  • The new version starts as a trial: play some music or tap Keep to keep it. If it doesn't start properly,
    the Disc goes back to the previous version by itself, or choose Go back.
Technical notes

From the 2.5.8 audit and change specification (R01, and the immediate parts of R02, R03, R04, R06 and R12):
queue_tick returns before direction analysis when neither a queue session nor queued songs exist (baseline fields
are updated first); mdb_queue_live_ids is one ordered LEFT JOIN with a per-row cardinality check (0 or >1 matches
and capacity overflow are errors, as before); diskos_song_path ON SONG(PATH) is ensured by a detached worker on its
own connection 45 s after launch, retried on BUSY, never on the UI thread; bulk queue adds have one 2.5 s budget
(-2 = busy, nothing added); playlist rows are capped before allocation and released when the screen is hidden;
history buffers are sized by mdb_history_count(); hidden library lists drop to DOT mode; imm_cold_release frees
the CD sheen. Windows: Latest.SyncEnvironment refreshes /opt/diskos from the release source archive (mq_ui
checksum-verified, staged swap with rollback). Still open: fully asynchronous queue operations, paged playlist and
history rows, group buffers sized by group count, and the artwork decoder rework (worker process, one-decode bundles,
background cache writes). Tests: queue_test.py (locked bulk add, one-query list mapping, ambiguous/missing rows).

Don't miss a new diskos-disco release

NewReleases is sending notifications on new releases.