| Summary: | [FEATURE] add biases for artist/album that is (not) on playlist | ||
|---|---|---|---|
| Product: | [Applications] amarok | Reporter: | Stefan Becker <chemobejk> |
| Component: | Playlists/Dynamic Playlists | Assignee: | Amarok Bugs <amarok-bugs-null> |
| Status: | REPORTED --- | ||
| Severity: | wishlist | CC: | ralf-engels, tuomas |
| Priority: | NOR | ||
| Version First Reported In: | unspecified | ||
| Target Milestone: | kf5 | ||
| Platform: | Other | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
|
Description
Stefan Becker
2024-09-22 12:08:43 UTC
I would really like to help implementing this feature. I had a look at the source tree and unfortunately got stumped by the huge codebase. So some pointers would be really helpful. What I have learned so far: * TagMatchBias uses MetaQueryWidget to select the tag to match against * MetaQueryWidget generates a combobox based on the available Meta::xxx tags * each Meta tag has a query implementation So I think the starting point would be to add new Meta tag implementations that take the artist/album tag and compare it with the contents of the playlist. I guess you could extend this idea to things like "add tracks with the same year as the tracks on the playlist". Yes, this is a nice idea. Extending meta bias might be one route, but adding a new bias type altogether might also be something worth considering. Not sure which one would be better yet. I think e.g. the EchoNest bias might also contain some similar functionality, as it can be set to target any artist in current playlist (although I haven't myself ever used it, and have no idea if it is actually working nowadays), so it might give some pointers (and meta bias can be used as reference when working with the database queries required). I haven't touched the dynamic playlist biases that much, but I think work required for this would be pretty much contained under src/dynamic/ or even src/dynamic/biases. Possibly you could e.g. try duplicating EchoNestBias and creating a minimal/dummy new bias based on it as first step, and then try to pick the required ideas from TagMatchBias to get some simple first working prototype. Thanks for pointing out the EchoNest bias. That seems to be a good starting point indeed. |