-
-
Notifications
You must be signed in to change notification settings - Fork 72
Generator Codes
It's possible to set a playlist's contents to be determined by a generator, that being, a set of codes you can use that represent functions that will be applied to make a playlist. This is analogous to smart playlist features of other music players.
You can create/edit a playlist generator code by right clicking a playlist tab, select Rename
, then press Tab.
If you create a new playlist by selecting Generate...
or from the global search, the new playlist will have an applicable code already applied.
A generator can triggered either manually by right clicking a playlist tab and clicking Regenerate
or be triggered automatically by including generator code auto
.
The sequence to enter the codes is as follows:
- Select any particular playlists to restrict search scope to (optional)
- Perform a search or add all tracks using
a
- Add any filters or sorters (optional)
For example, if you wanted a playlist of all your loved tracks you could use: a l
. If you wanted all loved tracks from only a specific playlist, you could use: s"MyPlaylist" a l
If you wanted all loved tracks from a specific artist, you could use: a"Artistname" l
Function | Code example | Notes |
---|---|---|
Add playlist to selection | s"Name of Playlist" | If no selection is made, all playlists will be selected |
Clear selection | clr | Selects all playlists as per above rule |
Select current playlist | self | Makes the selection the playlist itself. Useful when combined with auto and any sorters to re-sort tracks on import |
Note: Entries in Bold are additional codes not shown in the in-app legend.
Function | Code example | Notes |
---|---|---|
Search artist | a"Artist Name" | This is a search term, so it can be fuzzy like: a"arti"
|
Search genre | g"Rock" | You may want to combine multiple of these like g"k-pop" g"j-pop"
|
Search folder | p"downloads" | This can be a partial stem like p"ingles/cold" , a folder name, or a full folder path e.g. p"/mnt/mymusic" . Note: Tracks must already be imported. |
Find in all | f"artist" | This produces the same results as the find box. Includes searching the filename and comment, but not lyrics or genre. |
Add by file type | ext"flac" | You could also do f".flac" which will probably give you what you want since that includes searching the file name, but you would need this function to include, say, your Airsonic collection by doing ext"sub"
|
Add all tracks from selection | a | You will need this if you didn't perform any of the above searches |
Function | Code example | Notes |
---|---|---|
Max number of tracks | n123 | In this case, limits playlist to 123 tracks |
Year greater than | y>2015 | This can also be inclusive by using y>=2016
|
Year less than | y<2016 | This can also be inclusive by using y<=2016
|
Year equals | y=2016 | This would be the equivient of doing y>2015 y<2016
|
Playcount greater than | pc>5 | |
Playcount less then | pc<10 | For example, combining this and the above like pc>5 pc<10 will filter the playlist to only include tracks with playcounts of 6 to 9 |
Playtime greater than | pt>5 | |
Playtime less then | pt<10 | |
Duration less than | d<30 | In seconds. In this case, playlist will only include tracks less than 30 seconds |
Duration greater than | d>300 | In seconds. In this case, playlist will only include tracks greater then 5 minutes |
Rating greater than | rat>2 | In this case, includes tracks with more than 2 stars |
Rating less than | rat<4.5 | In this case, includes tracks with less than 4.5 stars |
Rating equals | rat=5 | In this case, includes tracks with exactly 5 stars |
Loved tracks | l | |
Has lyrics | ly | |
Has cue sheet | cue | Only keeps tracks that are part of a larger file |
Today's day of the year | today | Includes release dates that match today's month and day. Tracks will need to have full date in date field |
Comment match | com"bandcamp" | The f"" code already includes searching the comment, but you can use this code to only search the comment. (Also this must be an exact match of a string segment and isn't fuzzy like f"text" ) |
Find and keep | ff"text" | Same as f"text" but for tracks already included. |
Find and exclude | fx"text" | Same as ff"text" but removes the matching tracks instead. |
Function | Code example | Notes |
---|---|---|
Shuffle tracks | st | |
Shuffle albums | sf | |
Year Oldest to Latest | y> | |
Year Latest to Oldest | y< | |
Playtime highest | pt> | |
Playtime lowest | pt< | |
Duration longest | d> | |
Duration shortest | d< | |
Most played albums | pa> | |
Least played albums | pa< | |
Reversed tracks | rv | |
Reversed albums | rva | |
Highest track ratings | rat> | If you would like to exclude tracks that don't have a rating, use rat rat>
|
Lowest track ratings | rat< | If you would like to exclude tracks that don't have a rating, use rat rat<
|
Highest album ratings | rata> | |
Recently modified files | m> | |
Oldest modified files | m< | |
Track numbers per album | tn | |
Year per artist | ypa | Use this if you want discographies in order for each artist. (Artists albums must already be groups together in the playlist). |
Sort tracks by filepath | path | This may not be the same order as was originally imported |
Column sort | "bitrate"> | Sort by any column. Name must be the exact title of a column as shown in the columns view. Can also use < to sort in reverse |
Function | Code | Notes |
---|---|---|
Automatically update | auto |
Function | Code String |
---|---|
Search for Coldplay from playlist Default and show tracks that have a playcount of less than 2 | s"Default" a"Coldplay" pc<2 |
Shuffle albums from every playlist | a sf |
Take 10 random tracks from the playlist Default | s"Default" a st n10 |
Show loved tracks of artists Coldplay and Red Hot Chili Peppers in order of playcount from playlists Default and Downloads. Tip: You can shorten the names and it will (probably) still return what you want. |
s"De" s"Do" a"Col" a"Red H" pt> l |
Note: If you rename a targeted playlist, you will need to update any strings manually
Note: If multiple playlists have the same name, just the first one will be selected