DeaDBeeF – A modular audio player for Unix-like systems
How is the tagging system in DeaDBeef?  My music library has grown exponentially in the past year or so, due to boredom during covid, and I've come to the conclusion that playlists (as in, static lists of music files that you need to update manually) are functionally useless for large libraries.<p>What I've been looking for, but so far haven't been able to find, is a system that creates playlists from queries to my music database, based on tags I assign to individual songs.  Even better if I can use a logic programming / query language like Datalog to help simplify tagging!  For instance, if I have songs with the following tags:<p><pre><code>  (Song 1) japan 1971 japanese jazz funk fusion female
  (Song 2) japan 2004 instrumental math-rock
  (Song 3) japan 1983 japanese enka female
  (Song 4) korea 1983 japanese rock male
  (Song 5) brazil 1973 spanish jazz instrumental
  (Song 6) mali 1979 blues rock folk tuareg
  (Song 7) algeria 1974 french folk
</code></pre>
I should be able to define logic rules that make tagging easier.  Ideally, the tagging system should automatically write any deduced tags as metadata for the original files (for compatibility with other music players), with some way to keep track of which tags were added automatically vs manually, in case the deduction rules change.<p><pre><code>  asia(x) :- japan(x) OR korea(x) or ...
  africa(x) :- algeria(x) OR egypt(X) OR ...
  latin(x) :- mexico(x) OR brazil(x) or ...
  rock(x) :- math-rock(x)
  etc
</code></pre>
I should be able to create playlists from the following queries that automatically update themselves when I add new music:<p><pre><code>  (playlist 1) ?- language(x,"french") AND region(x, "africa") AND (1960 < year < 1970)
  (playlist 2) ?- region(x,"asia") AND genre(x,"rock")
</code></pre>
Apologies for the inconsistent syntax, but hopefully you get the rough idea.  Does anything like this exist?  The built-in Rhythmbox music player for linux has decent support for saving playlists based on tags, but there's no built-in system for logic programming based on tags.