Firmware features
More music. More your way.
Find the songs you want, keep the order you chose, and make the player comfortable to use. Here’s what Gnarlyr adds and the foundations it builds on.
Make the player your own.
Gnarlyr changes how you find, arrange and enjoy music. It replaces the software on your ECHO and builds on the playback foundation from Podium and EchoPod.
- Themes and readable layouts. Choose from five coordinated themes, three text sizes, landscape and two portrait orientations. Browse a theme with a live preview; Play keeps it and Back restores your saved look. Palette files can customize the built-in themes.
- Controls that fit your hands. Assign eight independent tap and hold actions across Volume ±, Play and Menu. Choose playback, volume, seeking, Home or Up Next actions. List navigation keeps its familiar controls, and audio shortcuts work with the screen off.
- A cassette-inspired interface. Shared deck icons, album artwork, cassette fallback art, flat headers, focus rails and clear transport feedback tie Home, Music and Now Playing together. Audio & connections keeps sound and connection controls in one place.
- Language packs. English is built in. The language system supports matching translation packs loaded from storage and remembers the selected language.
Find it, then play it your way.
Search narrows the music you see. Sorting changes its order. Filters and personal labels help you pick a set of songs without changing the music files.
- Search the whole collection. Match title, artist, album, album artist, genre or path. Case and accent folding help match names while results keep their original spelling.
- Sorting and combined filters. Sort across a library of up to 65,535 songs. Keep original order or sort by title, artist, album, year or duration in either direction. Combine artist, album, genre, year, length and personal-tag filters.
- Personal tags. Create, rename and delete up to 32 mood or activity labels. Assign several to a song and filter by them. Labels are stored separately from audio-file metadata and use the song’s path and, for CUE albums, its start and end positions within a shared audio file. Those details keep labels attached through a rescan.
- Track information. See title, artist, album artist, album, genre, year, disc and track number, duration and file path from a song’s action menu.
- Play a group or your results. Start a whole artist, genre, album, folder or opened playlist. Playing a search result keeps the visible result order, selected song and duplicates in the queue.
- Remembered views. Search text, sorting and filters are saved. Returning to a list keeps useful context; a changed library clears selections that depended on its old internal song IDs.
Build a mix, keep the order.
Up Next is the list playing now. A mixtape is a named copy you can return to later. Editing the current queue and changing a saved mixtape are separate actions.
- Edit the full queue. Move songs earlier or later, move a song to play next, remove entries, clear added songs or keep only the current track. Album and shuffled queues can become editable stored orders.
- 32 named mixtapes. Create an empty mix, save the current queue, play a saved mix, load it into Up Next to change it, then save the queue back over it. Rename or delete saved mixes. Each can hold up to 65,535 entries, including repeated songs.
- Stable song identity. Saved mixes identify a song by its file path and, for CUE albums, its start and end positions within a shared audio file. A library rescan can reorder internal IDs without changing which song the mix means.
- Queue and resume saved together. The saved song order and playback position stay together, so resume returns to the matching queue. Cancelling an edit keeps the previous session.
Keep the moments you come back to.
Your listening history and lyrics stay with the player. Sound previews let you hear a choice before deciding to keep it.
- Listening totals and exports. See listening time, play and skip totals, plus top artists, albums and songs. Export an Audioscrobbler-compatible
.scrobbler.logfor use with other listening tools. - Timed lyrics. Put a matching LRC lyrics file beside a song to follow its words as it plays. Hold Menu on Now Playing to open Lyrics.
- Audible preset previews. Browse EQ preset curves while hearing the change. Play commits a preset; Back or leaving the preview restores the previous sound.
- Custom EQ editing. Adjust bands with numeric feedback and visual hints. Draft changes can be heard before being kept, and Back cancels the edit.
A familiar music player underneath.
Podium and EchoPod supply much of the library, playback and hardware support that Gnarlyr builds on. These capabilities are part of that credited foundation.
- Music and artwork. FLAC, MP3, WAV, AAC-LC and ALAC playback; album, artist, album artist, genre, folder and song browsing; embedded and folder artwork; Cover Flow and random-album playback.
- Playlists and album images. M3U/M3U8 playlists, album favorites, a Favorite Tracks playlist, and CUE sheets that split a single FLAC, WAV or MP3 album into separate tracks.
- Playback choices. Song or album shuffle, repeat, same-sample-rate gapless playback, seeking and resume. Audiobooks and podcasts keep their own bookmarks.
- Sound controls. Gain and headphone volume-scale settings, software EQ presets, saved custom curves and EQ-file imports.
- Connections and everyday controls. USB storage or USB Audio Class 1.0 DAC mode, Bluetooth headphone pairing and remembered devices, wired-headset controls, button lock, charging display and sleep/power settings.
- Computer indexing. Build the library and artwork with the source-based
echo-synctool.
Small fixes that make a difference.
Some changes extend the inherited firmware; others correct bugs found while building Gnarlyr. FiiO’s stock software is replaced when you install Gnarlyr.
- More dependable USB-C detection. USB power control follows the cable state, so connecting and disconnecting USB-C use the correct supply settings.
- DAC startup follows stock timing. The output power-up wait is 12 ms, matching the stock sequence instead of the inherited 10 ms.
- The right song after a rescan. Playback sessions check the library’s contents before reusing saved song IDs, preventing a changed database from restoring the wrong song or stale CUE position.
- Queue edits repair prepared audio. When an edit replaces the next song, the buffered next-audio state is rebuilt so playback follows the new order.
- Safer navigation during background work. Mix loading finishes using its temporary memory before opening playback. An active seek keeps control of its cursor and confirmation keys. Holding Back returns Home from any screen and safely cancels work in progress.
- More reliable search and labels. Long-path searches work across metadata chunks. Search results preserve selected-song identity, and tag saves protect a newer bank when a read temporarily fails.
- Lyrics and navigation fixes. LRC lookup uses the correct storage-root path. Repeated Now Playing, Lyrics and Up Next navigation unwinds existing screens instead of stacking copies.
- Less unnecessary redraw work. Passive progress updates are bounded on short tracks. Idle sleeping, frame pacing and clock coasting reduce unnecessary processor work.
- Clearer power information. The USB and charging screen shows the active Storage or DAC mode, battery estimate, drive/eject details or audio format and volume. Charging, charged and USB-powered states stay distinct; a USB-powered rail reading is not shown as battery voltage.
- MP3 gapless after seeking. Gapless MP3s still trim the encoder’s silent tail after you seek or resume part-way. Files without gapless information play every sample.
- AAC starts and ends at the intended samples. When an M4A file describes the encoder’s extra startup samples and intended duration, the decoder applies that timing so those extra samples are trimmed. It also keeps seeking aligned when the file’s timing uses a coarse clock.
The DAC timing, MP3 gapless and AAC timing fixes improve inherited code. These fixes concern the replacement firmware and its integration; they do not patch FiiO’s closed-source program.
The same cable can help development, too.
Developer builds let a computer copy an update, verify it, eject the drives, request a restart and wait for the player to return. Everyday manual updates use the player’s own updater.
- Checked updates. The updater validates the image and its CRC, writes the second firmware slot first, and reads back each chunk before continuing to the first slot.
- A repeatable USB development loop. Developer reports, event logs, scripts, screenshots and profiling help trace a problem and check a change. These are available through the command-line and MCP tools.
- Room for features. Demand-loaded screens, library work and USB code share bounded memory regions. Features can grow while the main playback code stays resident.