Radio filter should match tracks only if all tags are present (instead of " if at least one")
What is the problem you are facing?
When creating a radio based on tags, I always end up with a lot of tracks that don't quick match my needs.
For example, when I create a "Reggae" radio and a "ElectroDance" radio (using tags), both radios list Rihanna because she has a lot of genre associated. But honestly, not all her musics are Reggae or ElectroDance. So my radio does not really match what I want.
I have to manually add an exclusion for artist "Rihanna", which is cumbersome, especially if you have thousands of matched tracks, so potentially a lot of false positive like "Rihanna".
Proposals
Make filter use AND logic gate (instead of OR, currently), or introduce a new button to switch from OR to AND.
Since it's possible to add multiple tag/artist filters, I would prefer excluding based on tags than based on artists by adding more rows to my radio settings.
So here is my radio for reggae as I do it for now. I add all tags with one filter then exclude all false positive with another filter :
Here, if AND is the new pattern, my previous radio could now be like that : one filter add all "reggae" artists, one filter add all "DubReggae" artists, one filter exclude all artist with both "reggae AND ElectroHouse" (like Rihanna).
More verbose, but more configurable.
Plus, it could make more sense if I want a radio for artist like rihanna, I could have one row that match all her tags. If you want to discover similar artist, just copy-paste all tags from that artist in a row, and you're good to go. Another kind of artist? -> another row.
What are the possible drawbacks or issues with the requested changes?
Changing the default behaviour will break existing radios, and should be explicitly stated in the webinterface. Introducing a new switch button OR/AND (with the default being the actual default) will not break anything but might clutter the interface.
It could be made clear with a hint stating "match if at least one tag if present" / "match only if all tags are present".