Boolean search logic? (AND between Tags) [Implemented in Roon 1.8]

In the composition screen there are several filter categories of interest for Classical:

There are problems. The Period, Form and Instrumentation columns are not editable, nor is there a mapping from my tags so that I can fix them. They appear to be entirely populated from 3rd party metadata sources but are frequently empty:

This has been commented on in other threads that there is a lot of interest in the composition screen if obvious gaps in the logic were fixed. A further observation is that there is also no obvious way of doing much search on “Instrumentation” at all, let alone Boolean. For example. If I click focus I get pick list menus for Period, Composer and Form but not Instrumentation:

So for example if I want to do a search on Period=Modern AND Instrumentation=Vocal. I cannot do it because I cannot see any obvious way, even with a work around, of searching on Period=Modern AND Instrumentation=(Choir OR Opera OR Vocal Ensemble)

BTW. I sympathize with @AndersVinberg comment that Boolean logic often doesn’t work for a lot of users. But properly implemented I think this sort of pick list approach hides that you are actually doing a Boolean search and makes sense even to a very un-technical person such as me.

1 Like

1+ for Boolean AND to be implemented for tags.

1 Like

Glad I saw this topic.

Just my ignorance, but I can’t understand how to filter on a tag that might be in either the generated tags or my added tags. The drop down menu for tags let’s one check for “My tags” or “Shared tags”. I thought that shared tags would be what I wanted, but that doesn’t seem to be the case.

Thanks for any input.

Can you provide more detail as to what you want to do? If you are in the main track view, artist view, or album view, you can select a single Roon Tag and that will reduce the view to only objects within that tag – and it also does a good job by showing objects if a parent object has that tag - i.e. if you are at album view, it will also show albums where the artists on that album have that tag.

But as of now you cannot directly use one tag to filter another - i.e. as per the thread above, the Boolean logic is hard coded as OR.

Here’s what I am trying to do.

For example - I want to find all selections that have a tag of “Symphony” including all “Symphony” blue tags and all “Symphony” green tags. I can’t seem to get that to work. If I check the box “My Tags” in the tag drop down, then I get all the green tags that are “Symphony”, but none of the blue tags. It seems like checking the “Shared Tags” in the drop down menu should give me both green and blue tags that are “Symphony”, but that isn’t what happens.

All: there is a workaround to implement a bit of boolean logic here, but it’s not super fast with a large database. You can use the “NOT” function as a substitute for AND. Here’s how:

Say you want to have two “sets” of tags: you want to tag bands geographically, like “Chicago bands” “Seattle bands,” and “Manchester bands.” Then you want to have another set of tags for era, like “80s bands,” “90s bands,” or “70s” bands. (Bear with me, this is just an example, please don’t chime in and tell me Roon can already Focus on albums by date; I know that – this is just about an example use case that makes sense.

OK, so say you want to find all Chicago 80s Bands. Right now, if you go to the album, artist, or track browser, and Focus on Tags, then select Chicago Bands and 80s Bands as separate tags, you are going to get ALL Chicago Bands and ALL 80s Bands, not Chicago bands from the 80s. In other words Styx will show up because they are a Chicago band even though they are from the 70s, and Duran Duran will show up because they are an 80s band, and you won’t get just the cross section of Chicago bands from the 80s.

OK, so do this:

—Go to Artist view. Tag your Chicago Bands. Then Focus on Tag Chicago Bands. Click the minus sign so that you see all bands EXCEPT Chicago Bands. Select All. Tag all these artists with a new tag called “Not Chicago Bands” (you’ll come up with a better name once you see my logic). (This takes quite a long time - you are now applying a tag to almost all the artists in your collection, save the few Chicago bands in there).

—Reset view.

–Now with rest Artist view, seeing all artists, Tag your 80s Bands. Focus on Tag 80s Bands. Click the minus sign so that you see all bands EXCEPT 80s Bands. Tag all these artists as “Not 80s Bands”

Now that you have these tags, reset your view again so that all artists show. Focus on Tag Chicago Bands. Now, add the focus on Tag “Not 80s Bands.” Click the minus on the “Not 80s Bands.” The minus is “AND NOT” in effect, in boolean logic, I think. So now, viola, you have All Chicago Bands that are NOT NOT 80s Bands, i.e. All Chicago Bands that are 80s Bands! You have AND in your logic, by using NOT NOT AND.

It’s a workaround. Even with a modern quad core and a ton of RAM and a dual SSD Roon core, it’s not that fast. BUT IT SEEMS TO WORK, DOESN"T IT?

This shows my ignorance…what’s a “Blue tag?”

Thank you for your patience, but I feel we are failing to communicate.

My problem is not about multiple sets of tags. My problem is that one can’t use the information in the blue tags and green tags concurrently.

Maybe I am misunderstanding tags. Let me start with the most basic. In a selection that has a blue tag of “Symphony”, here I am assuming that the blue tags are the result of info that was embedded at the time of the rip, if I click on the blue “Symphony” tag that I get a screen that has all the albums that have a blue tag of “Symphony”. Great.

The problem is that not all symphonies are properly tagged as such in the embedded tags. In that case, I have made my own tag, a green tag, for “Symphony”. If while looking at a selection I click on the green “Symphony” tag, then I get all the green tags that are “Symphony”. Great.

This can also be done from the tag drop down menu, and in the case, one doesn’t have to find a selection that has the tag one wants. One merely has to check the tag in the list. Great.

What I can’t figure out is how to get, on the same screen, all the "Symphony"s that occur in both the green and blue tags.

If seems like you are telling me how to work with multiple conditional tags in the green tags, but I don’t think that addresses my use case.

Obviously, I just used “Symphony” as an example.

A blue tag is a tag with a blue color in the album display. A green tag has a green color. :laughing:

Sorry Slim, my post above wasn’t a response to your post, just a general post in the thread. I think what you are calling blue tags are genres?

Aha, the fog clears. That would explain why I can’t reference both at once. Pity, they both use the tag icon.


I think the logic with a Genre and a Tag is “AND” and thus you are not getting your “OR.” What you might do, which goes a little deeper than maybe what you want, would be to look at Genre “Symphony” and apply your “Symphony” Tag to all of them. Then when you bring up works with that Tag, you will see both. But that’s really just because it’s in your Tag now.

But I would love for some folks to play with my proposed workaround and see if it has legs. Of course, this will in a sense “pollute” your tag library since whenever Roon actually implements reasonable Tag logic, you won’t need to do “AND NOT NOT.” But since we don’t know if the Roon team ever plans to implement this, or when it might be implemented, maybe this is the best we can do for a while.

Yeah, sorry to be a PITA, but are genres the result of the rip, such that I could use a tagging program to embed new genres, or are they derived from some database?


I think both. You can set Roon to respect your genres that come from the rip or to use their genres, or both. If you set to both, that may also just resolve your issue?

1 Like

@James_I I was happily following your logic until the last bit. Apologies if I misunderstood you but I think your last step is wrong.

It’s been many years since I did Boolean logic, but the crucial equation is
(A and B) is equivalent to not((not A) or (not B))

So an extra tag of ((not_80s) or (not_chicago))
Is needed so you can invert it.

Jeez, what a lot of work.


Yes, you are right, if I wanted to have it as a single tag that’s what I would do. But my system works if you focus on one tag and then focus on minus the other tag.

No argument with that. That’s why I would love Roon to put in some Boolean logic capabilities with Tags and Focus other than a single default. That said, I’d settle for being even just one alternative like Tag AND Tag to go along with Tag OR Tag.

Ha! You’re right. I hadn’t realised that adding an inverted tag does indeed use and logic rather than the usual or.


I don’t think so. I think using OR logic with a minus Tag would be counter-intuitive. It is a lot of work…I’ve been playing around with it to stratify my albums to see if I want to cross section it with genres or my mood tags. It could be pretty powerful, though.

I used to be a mathematician, it’s illogical to me.

Let’s not worry about it,

Agree that Roon could do better.

1 Like