Re: Multi-filter error: void-function nil

Igor Sosa Mayor <[email protected]> Sat, 6 Dec 2025 09:10:58 +0100
Newsgroups gmane.emacs.emms.user
Message-ID <[email protected]>
Hi Erica,

thanks for the reply. Ok, I understand it. I will write then the filter 
this way.

Thanks again.

On 12/6/25 02:31, Erica Lina Qi (Zenie) <[email protected]> wrote:
> Igor Sosa Mayor <[email protected]> writes:
> 
> 
> Hello Igor,
> 
> Yes. That is how it works.
> 
> Multi-filters are only combinations of filters made with factories.
> You are just giving it the names of the filters you have already created.
> 
> When you do that interactively, You push a filter, Select New and the 
> factory,
> and then give it the data it needs. That is equivalent to creating the 
> filter
> in code. But those filters are not kept. They are only in memory. To save
> them would need some sort of tracking of each step taken to create it so 
> that
> it could be represented textually.
> 
> Factories create functions. Its not easy/possible to represent those
> textually after they've been made.
> 
> Multi-filters just create some lists of names.
> Exactly how you write them. To use them, it looks up the functions 
> connected to
> the names.  Which means they need to be created somehow.
> 
> The filter stack is in fact, an interactive Multi-Filter.
> 
> Multi-filter is unique in that it is purely textual data.
> 
> Erica
> 
>> Hi again,
>>
>> unfortunately I have again a problem with the filter system.
>>
>> Let's say I want to filter works by 3 musicians: Guédron, Boêsset and
>> Moulinié. If I create the filter manually (push-or, etc.) it works
>> wonderfully.
>>
>> If I keep the filter I get the following:
>>
>> ("Multi-filter"
>>  "Artist : (moulinié)  | Artist : (guédron)  | Artist :  (boesset) "
>>  (("Artist : (moulinié)" "Artist : (guédron)" "Artist :  (boesset)")))
>>
>> If I copy this code to my config with something like this:
>>
>> (setq general-filters
>>       '(("Multi-filter"
>>          "Renaissance: Air de cour"
>>          (("Artist : (guédron)" "Artist : (boesset)" "Artist:
>>          (moulinié)")))))
>>
>> (emms-filters-make-filters general-filters)
>> (emms-filters-add-to-filter-menu-from-filter-list "Propios" general- 
>> filters)
>>
>> I get the following error: Lisp error: (void-function nil)
>> And the whole backtrace: https://paste.debian.net/1412120/
>>
>> Any ideas?
>>
>> Thanks in advance.
>>
>> Best,
>>
>> PS: If I define filters with the Artist factory for every composer and
>> create then a multi-filter like so:
>>
>> (setq probando-filters
>>       '(
>>         ("Artist" "Guédron"  "guédron")
>>         ("Artist" "Boesset" "boesset")
>>         ("Artist" "Moulinié" "moulinié")
>>
>>         ("Multi-filter"
>>          "Air de cour"
>>          (("Guédron" "Boesset" "Moulinié")))))
>>
>> Then it works without problems...