Smart Playlists are rule-based playlists stored locally in Sonixd Redux. Instead of manually picking songs, you define a set of conditions and the app fetches and filters songs from your library each time you play the playlist.
Smart Playlists are found in the Smart Playlists entry in the sidebar (wand icon, below Playlists).
For the most accurate results, Sonixd Redux can index your full library into a local cache. When the cache is active, all rules and sorting run against your entire library - not just a random sample.
Click Sync Library at the top of the Smart Playlists page. The app will fetch all songs from your server in batches and save them locally. Progress is shown below the buttons as the sync runs. For large libraries (10 000+ songs) this may take a minute.
The cache is stored in a file on your computer (separate from the settings file) and persists across app restarts. The page header shows when the cache was last synced.
The cache is synced automatically every time the app launches. This keeps play counts accurate if you listen on other devices (phone, web player, etc.) between sessions. The sync runs silently in the background - the app is fully usable immediately. If the server is unreachable at launch, the existing cache is preserved untouched.
Click Sync Library manually any time you want to force an immediate refresh.
You do not need to re-sync the cache for the following changes - they are reflected immediately:
The only reason to click Sync Library again is when you add new songs or albums to your server.
What about songs played before syncing? If you play a song that isn’t in the local cache yet (for example, a newly added album you haven’t synced), the scrobble is still sent to your server as normal - the local cache is simply bypassed for that play. When you next click Sync Library, the song is imported from your server with the play count already recorded there. Nothing is lost.
What about plays from other devices (phone, web player, etc.)? Sonixd Redux only increments the local cache for scrobbles that happen within the app. Plays from other clients are recorded on your server but are not reflected in the local cache until the next sync. Since the cache syncs automatically on every launch, play counts from other devices are picked up each time you open the app.
If you switch to a different server, the cache is automatically invalidated and a new sync will start on the next launch.
Click New Playlist at the top of the Smart Playlists page. The editor opens with the following sections:
Give your playlist a descriptive name. This name is also used when saving the playlist to your server.
Rules filter which songs are eligible for the playlist. All rules must match - they are combined with AND logic.
Click Add Rule to add a condition. Each rule has three parts:
| Part | Description |
|---|---|
| Field | What to filter on (Genre, Year, Play Count, Rating, Starred, Duration) |
| Operator | How to compare (is, is not, ≥, ≤, between, shorter than, longer than) |
| Value | The value to compare against |
You can add as many rules as you like, or leave the rules list empty to draw from your entire library with no filtering.
Available fields:
| Field | Type | Notes |
|---|---|---|
| Genre | Text | Must match exactly (e.g. Rock, Jazz) |
| Year | Number | Release year of the song |
| Play Count | Number | Total number of times played |
| Rating | 1–5 stars | User rating set in Sonixd Redux or your server; unrated songs (0 stars) never match a rating rule |
| Starred | Yes / No | Whether the song has been starred (favorited) |
| Duration (min) | Minutes | Song length in minutes (decimals supported) |
Choose how the resulting songs are ordered before the limit is applied:
| Sort | Effect |
|---|---|
| Play Count | Most or least played first; songs with 0 plays are always excluded |
| Year | Newest or oldest first |
| Rating | Highest or lowest rated first |
| Duration | Longest or shortest first |
| Random | Shuffled each time you play; includes songs with 0 plays |
Use the Direction dropdown to choose Descending (↓) or Ascending (↑).
The maximum number of songs to put in the queue. There is no hard cap - you can set this to 1000 or more. Keep in mind that very high limits will take longer to process and may result in a large queue.
Each playlist in the list has the following buttons:
| Button | Action |
|---|---|
| ▶ (Play) | Fetch songs and replace the current queue |
| ⊕ (Add Next) | Fetch songs and insert them after the current song |
| + (Add Later) | Fetch songs and append them to the end of the queue |
| ☁ (Save to Server) | Fetch songs and save them as a regular playlist on your server |
| ✎ (Edit) | Open the editor to modify the playlist rules |
| 🗑 (Delete) | Remove the playlist from Sonixd Redux |
The Save to Server button generates the song list using the current rules and creates a regular playlist on your server containing those songs.
Important: this saves a static snapshot. The server playlist will not update automatically when your library changes - it reflects exactly which songs matched the rules at the moment you clicked the button. To refresh it, delete the server playlist and save again.
This is useful for:
When the local cache is active, smart playlists search your full library. Every song is checked against your rules, results are sorted, and trimmed to your limit. This gives accurate results for all fields including Play Count, Rating, and Starred.
When no cache is available, the app falls back to fetching a pool of songs from the server and filtering client-side. The pool is limited to ~500 songs, so results are approximate:
All rules are then applied to that pool, results are sorted, and trimmed to your limit.
Without the library cache, sorting by Play Count with no rules gives you the most-played songs within a random sample of 500, not across your full library. Results will differ each time you play the playlist. The editor shows a reminder when you select this combination.
Recommended: sync the library cache for reliable Play Count sorting.
| Setting | Value |
|---|---|
| Rules | (none) |
| Sort by | Play Count |
| Direction | Descending |
| Limit | 50 |
Note: Requires the library cache for accurate results. Without it, results are drawn from a random pool - see the fallback section above.
| Setting | Value |
|---|---|
| Rules | Genre is Rock, Rating ≥ 4 |
| Sort by | Rating |
| Direction | Descending |
| Limit | 100 |
| Setting | Value |
|---|---|
| Rules | Year ≥ 2020 |
| Sort by | Year |
| Direction | Descending |
| Limit | 50 |
| Setting | Value |
|---|---|
| Rules | Duration (min) shorter than 3.5 |
| Sort by | Random |
| Limit | 40 |
| Setting | Value |
|---|---|
| Rules | Starred is Yes, Play Count ≤ 3 |
| Sort by | Play Count |
| Direction | Ascending |
| Limit | 50 |
| Setting | Value |
|---|---|
| Rules | Genre is Jazz, Year between 1960 and 1979 |
| Sort by | Random |
| Limit | 60 |
Smart Playlists are stored locally on your computer inside Sonixd Redux’s settings file. They are not synced to your server and will not appear in other clients. They are included in the Settings → Backup & Restore export/import, so you can transfer them between machines.
The library cache is stored in a separate file alongside the settings. It is not included in the Backup & Restore export - re-sync from the Smart Playlists page after restoring or moving to a new machine.