A patch for the browser, a new filter system

Erica Qi via <[email protected]> Fri, 28 Mar 2025 20:22:50 +0000
Newsgroups gmane.emacs.emms.user
Message-ID <mnDFTGSfB-_fAJ4KO_cjjBLxQZdyDa8fQTYU40DhYejn5lDIMvK7PuQGBlvbXGjks9d3o_3uwZhQ42Sw5Xo6518Bw2jVdrseQApo-DEHG5E=@proton.me>
Hello,

I apologize in advance for the size of this patch. Its actually
more than a year old now, I'm just now getting it together to give
to you here. The documentation is fresh and extensive.
I've been sure to follow along with browser changes
as the time went by.

It started with adding Album Artist and Genre to the browser.
That led to refactoring the node-tree to make it easier to use.
It is now defined by data instead of a function.
I also fixed a lot doc strings because I hate doc string warnings.

That led to frustration with filtering and searching, album artist and
genre were also missing there.
FIlters and searches didn't work together at all, Nor could they do
anything more than a single thing at a time. Narrowing a search
was impossible without writing more code, for a specific function
to do that exact filter or search.

I wrote the Filter system and refactored the browser to use it.
The old browser system still works but is deprecated. Except in
the case that someone has code that uses it, there is no reason
to use it.

There is a very thin layer of code which preserves the Brower's API
but uses the filter system to do all the work.

The new system is tremendously more powerful and much easier
to extend and use.

Here is the introductory paragraph from The filter system chapter in
the documentation. I'll let the documentation and the code speak for itself.

I will say that its actually fun to use, and when I look at the code, I am sometimes stunned by the beauty of it.

The filter system allows you to filter the metadata cache in order search
and narrow your track data. It is based on a very powerful interactive
system consistenting of filter and cache stacks which allow
the creation and manipulation of complex filters and results caches.
I hope you like it.
Erica

Envoyé avec la messagerie sécurisée [Proton Mail.](https://proton.me/mail/home)
0001-Add-Album-Artist-and-genre-node-tree-is-now-data.-A-.patch (text/x-patch, 152.1 KB) - not displayed