Combining multiple filters to search multiple keywords

I'm looking to filter the file browser with multiple conditions. For eg, excluding two genres like NOT genre IS "Hidden Orchestra AND "Instrumental" or maybe NOT artist IS "Hidden Orchestra" AND NOT genre IS " Orchestra".

How does the syntax for combining multiple conditions work? I wish to be able to filter multiple tags of one type like genre IS NOT OR "orchestra" OR "dance" OR "pop" for example.

I have tried reading the filter docs :slight_smile:

Here's another I tried: NOT genre HAS "Noise" OR NOT genre HAS "Dance""

What's the difference between HAS and IS?

"IS" = exact match
"HAS" = can be found somewhere in the data

You have to define every filter term properly with
field FILTERWORD string
NOT %genre% IS "orchestra" AND NOT %genre% IS "dance" AND NOT %genre% IS "pop"

Omitting the percent signs also works in this context. Mp3tag then uses direct field lookup for GENRE and doesn't treat the dynamic part of the filter expression as format string.

NOT genre IS "orchestra" AND NOT genre IS "dance" AND NOT genre IS "pop"

So to clarify IS won't find "Vocals" (does case sensitivity matter?) with this expression for such data:
Genre tag: "Dutch Trance; Dance Pop; House; Vocals; Deep Kick"

NOT genre IS "Vocals" won't work cos it treats the entire field was one string.
NOT genre HAS "Vocals" will work because it's contained somewhere. And I neither need to phrase like ; Dance Pop or Dance Pop; because the Quotations encapsulates the existing existing spaces (ie. to make it 'one word')?

Yes, that's mainly it.

1 Like

Thanks, ohrenkino! Are you also confirming about no need to put in those semicolons and spaces?

NOT genre HAS "Dance Pop" OR NOT genre HAS "Dance" OR NOT genre HAS "Electro" doesn't seem to work? I'm using HAS because I need to match anywhere in the genre string. And the goal of these multiple clauses is to match any song that has atleast one of those tags.

I think that has nothing to do with the semicolons but with the logic.
I think the "OR" should be an "AND".

1 Like

Just clarifying cos I've realise iTunes needs it to match just "Pop" instead of "Dance Pop" (eg) too.

Interesting, somethings working. But I thought AND means all x amount of conditions must match for it (the track) to be true/omitted?

This is what the docs show me about AND/OR - am still confused!

EDIT: I also tried OR with parentheses.

With this filter you get all files where the GENRE is not Dance Pop (which is more or less the majority) plus you get all files where genre is not Electro - which includes the "Dance" files ... so it looks as though the filter does not work.

I think I'm confused? I'm looking to match any song's genres that has any of those aforementioned keywords (ie. Dance Pop, Electro, Noise). I don't want it to only match tracks that have all of such keywords in such order.

What about
genre HAS Dance Pop OR genre HAS Electro OR genre HAS Noise

OK, looks like that's working, and thing the negated versions too.

However, I realised how can I make the program differentiate between say "Progressive House", "Electro House, "Deep House" and "House". They're all treated as separate genres to me (ie. semicoloned).

EDIT: I think this where putting in those semicolons during search comes in??

Another update. Using genre HAS "house" shows me results for all types of house ...

Looks like I need to included semicolons plus multiple expressions just to tease out each type of House :confused:

EDIT: Maybe I'm wrong. I may just need to make specific searches!

the longer the string is, the more specific it gets.
genre HAS "Elelctro House" OR genre HAS "Deep House"
should show only files with these 2 genres but not plain "House"
Still, I would say that the fastest way would be "learning by doing".

True that. So mp3tag treats the spaces as part of its keyword search? Looks like I'll be using HAS more often then!

Strings with spaces should be enclosed in inverted commas.

Sure thing. So to state the obvious, it will match to strings with that exact match - spacing and all?