-
Notifications
You must be signed in to change notification settings - Fork 266
Description
Hi. I'm a very heavy user of smart playlists in iTunes (now Music), which is why I've stuck with it despite all of the silly changes Apple has made over the years.
While OwnTone has a 'basic' implementation of smart playlists, similar in functionality to Rhythmbox, it's missing quite a few rules.
Supported rules in Apple Music 1.5.6.11
| iTunes Rule | Source | Is Useful | OwnTone Equivalent |
|---|---|---|---|
| Album | file | ✔ | album |
| All | n/a | ✔ | a and b and c and d |
| Album Artist | file | ✔ | album_artist |
| Album Artwork | file | ✔ | |
| Album Favourite / Suggest Less | player | ✔ | |
| Album Rating | player | ✔ | |
| Any | n/a | ✔ | a or b or c or d |
| Artist | file | ✔ | artist |
| Bit Rate | file | ✔ | |
| BPM | file | ✔ | |
| Category | file | ||
| Cloud Status | file | ✔ | data_kind is file |
| Comments | file | comment |
|
| Compilation | file | ✔ | compilation |
| Composer | file | composer |
|
| Date Added | file | ✔ | time_added |
| Date Modified | file | time_modified |
|
| Description | file | description |
|
| Disc Number | file | ✔ | disc |
| Favourite / Suggest Less | player | ✔ | |
| Genre | file | ✔ | genre |
| Grouping | file | ✔ | grouping |
| Kind | file | ✔ | data_kind |
| Last Played | file | time_played |
|
| Last Skipped | file | time_skipped |
|
| Location | file | path |
|
| Media Kind | file | media_kind |
|
| Movement Name | file | ||
| Movement Number | file | ||
| Playlist | player | ✔ | |
| Plays | player | ✔ | play_count |
| Purchased | file | ||
| Rating | player | ✔ | rating |
| Sample Rate | file | ||
| Size | file | ✔ | file_size |
| Skips | player | ✔ | skip_count |
| Sort Album | file | ||
| Sort Album Artist | file | ||
| Sort Artist | file | ||
| Sort Composer | file | ||
| Sort Show | file | ||
| Sort Title | file | ||
| Ticked | player | ||
| Time | file | ✔ | |
| Title | file | ✔ | title |
| Track Number | file | ✔ | |
| Video Rating | file | ||
| Work | file | ||
| Year | file | ✔ | year |
The primary omission, at least for my uses, is Playlist, which allows smart playlists to pull data from regular playlists or other smart playlists. This lets you create very complex and reusable filter chains with fairly simple rules. i.e:
# In iTunes, `Playlist` is an `is/is not` rule, however it is
# evaluated more like a `contains` `does not contain` rule.
"Good Songs" {
rating is >= 2
}
"Excluded Songs" {
genre is "Heavy Metal"
or playlists includes "Manual Exclusions"
}
"Shuffle Playlist" {
playlists includes "Good Songs"
and not playlists includes "Excluded Songs"
}
Apple's support doc for smart playlists can be found here
From what I can see looking at sql_from_ast, supporting playlist includes may require reworking how smart playlists currently work.
Apple Music also stores some song-specific data in it's database, namely songs that are hearted/favourited and unhearted/"suggest less"ed. I believe Album Rating is also stored in the database as well.
I've found a use for the hearts system outside of it's intended use in the Apple Music streaming service and would prefer to keep it or have something similar to it, even if it can only be shown in the web ui. Perhaps playlists could have a little icon that appears for all songs in them?