Post Reply 
The "Performer" challenge
10-08-2025, 14:09 (This post was last modified: 10-08-2025 15:11 by Gdg.)
Post: #1
The "Performer" challenge
Hello everybody.

I own a good collection of CD, ripped, converted to flac and stored into a QNAP NAS.
The QNAP runs a licensed instance of minimServer.

I'm mostly into jazz music and I patiently filled the "Performer" tag of each and every track of my library.
As editing front-end I used foobar2000.
The string was entered into the above tag like this:
"Ron Carter; Elvin Jones; Herbie Hancock"
(of course this is just an example...)
and Foobar200 splitted and stored that string inside the flac, like this:
. PERFORMER=Ron Carter
. PERFORMER=Elvin Jones
. PERFORMER=Herbie Hancock


As controller I mostly use these applications:
. JPLAY (on iPhone & iPad)
. Linn (on iPhone, iPad, android tablet)
. BubbleUpnp (android tablet)
. Foobar2000 (PC Windows, Iphone, Ipad, Android)

My wishes are:
1. to search by single "Performer" and find all albums s/he is playing in.
2. to play an album (or a track) and see the perfomers playing in it.


Now, I understand Perfomer is outside the basic group of tags searched/shown by the above apps.
Oh, yes, I can do a search by the Performer tag using the "smart browse" of MinimServer (wish 1: ok),
but I couldn't find a way to see what performers are playing a song (wish 2: KO).
My first Q:
Is there a way to instruct minimServer to show the content of the tag "Performer" of a track?
-
Anyway, I tried a work-around.

I've found out that cloning the content of the Performer tag into the Artist tag gets me exactly what I need.

But I don't want to phisically change the content of the Artist tag

So I tried this:
on the page <myminimserver>:9790/properties-advanced.html
. tagFormat: Artist.displayFormat={$Artist$Performer^^^;}

than, on the page <myminimserver>:9790/properties-server.html
. indexTags: All Artists:TrackArtist,Artist:AlbumArtist

Merging togheter Artist & Perfomer creates a "virtual Artist" tag that perfectly works when JPLAY searches inside its local db
I can search whatever artist I like (both main or side artist).
And I can see the whole band playing a song, since showing the "Artist" tag now means to show Artist+Perfomer.

Too bad, this doesn't work as expected with the "By folder" browse, since the sub-folder "TrackArtist" can't access the "virtual" Artist tag.

My 2nd Q:
. Is there a way to let minimServer to "smart browse" by the "virtual Artist" tag ?

Since I'm pretty sure I'm doing something wrong, please suggest me any solution you like to satisfy my needs.

Thank you very much.

Giovanni, from Italy
Find all posts by this user
Quote this message in a reply
10-08-2025, 21:41
Post: #2
RE: The "Performer" challenge
For showing Performer information when playing a track, your solution of using the displayFormat option is the right approach.

For browsing using combined Artist and Performer information (including By Folder browsing in JPLAY), you can set the indexFormat option of the tagFormat property as follows:

tagFormat: Artist.indexFormat={$Artist$Performer^^^;}

If you want to leave Artist browsing as it is (showing only Artist tags) and add "Virtual Artist" browsing as a separate option, you can set these properties:

indexTags: VirtualArtist
tagFormat: VirtualArtist.indexFormat={$Artist$Performer^^^;}
Find all posts by this user
Quote this message in a reply
10-08-2025, 23:34 (This post was last modified: 11-08-2025 09:03 by Hanu.)
Post: #3
RE: The "Performer" challenge
(10-08-2025 14:09)Gdg Wrote:  My wishes are:
1. to search by single "Performer" and find all albums s/he is playing in.
2. to play an album (or a track) and see the perfomers playing in it.

Giovanni, from Italy

Hi Giovanni
my way to display performer (in bubbleupnp)
it allows search by performer and display any performer per track.

indexTags: Artist, Date, Genre, All Artists, Composer, Conductor, Orchestra, #AudioData, #AudioQuality, -Taggingdate:Date Added, Label, Lyricist, Performer, Performer_name, ORIGINAL ARTIST, ENGINEER

tagFormat: Artist.displayFormat={$artist}, Comment.displayFormat={$performer^$composer$lyricist^ [Comp - (Lyr); ^)]^ - ($*infoFileURI^<a href="^">Digital booklet</a>$comment},Title.displayFormat={$title^$composer$lyricist^ [^)]^ (}

       

and Item Tags: comment
Find all posts by this user
Quote this message in a reply
11-08-2025, 18:39
Post: #4
RE: The "Performer" challenge
(10-08-2025 23:34)Hanu Wrote:  Hi Giovanni
my way to display performer (in bubbleupnp)
it allows search by performer and display any performer per track.

Thank you very much, Hanu,
but, indeed, the display of "Comment" tag only works inside BubbleUpnp (just checked) and that's not enough to me.

Beside that, looking at your foobar tags print-screen, I'm pretty sure BubbleUpnp is not searching anything inside the "Perfomer" tag, but inside the "Album Artist", where you've listed all the band members.
Find all posts by this user
Quote this message in a reply
11-08-2025, 21:17 (This post was last modified: 11-08-2025 21:45 by Gdg.)
Post: #5
RE: The "Performer" challenge
(10-08-2025 21:41)simoncn Wrote:  For showing Performer information when playing a track, your solution of using the displayFormat option is the right approach.

For browsing using combined Artist and Performer information (including By Folder browsing in JPLAY), you can set the indexFormat option of the tagFormat property as follows:

tagFormat: Artist.indexFormat={$Artist$Performer^^^;}

Thank you Simon, but this doesn't work.

I prepared a test environment with just two albums.

1st album is:
. Bill Frisell-2001 With D. Holland And E. Jones (Nonesuch 2001)
.. Artist = "Bill Frisell; Dave Holland; Elvin Jones"
.. Performer= null

2nd album is:
. Wayne Shorter-1965 Speak No Evil (Blue Note Capitol 1999)
.. Artist = "Wayne Shorter"
.. Performer= "Wayne Shorter; Ron Carter; Elvin Jones; Herbie Hancock;"


I set:
. indexTags=All Artists:TrackArtist

CASE A
I set (as per your suggestion):
. tagFormat: Artist.indexFormat={$Artist$Performer^^^;}

1. If I perform a search inside the JPLAY local db, of:
. "Elvin Jones"
I'll obtain as result:
. "Appears on"
Bill Frisell-2001 With D. Holland And E. Jones (Nonesuch 2001)

2. If I browse the folder "TrackArtist" (doesn't matter the app), under:
. Elvin Jones
I'll only see
. Bill Frisell-2001 With D. Holland And E. Jones (Nonesuch 2001)

CASE B
I set (as per my starting idea):
. tagFormat: Artist.displayFormat={$Artist$Performer^^^;}

1. If I perform a search inside the JPLAY local db, of:
. "Elvin Jones"
I'll obtain as result:
. "Appears on"
Bill Frisell-2001 With D. Holland And E. Jones (Nonesuch 2001)
Wayne Shorter-1965 Speak No Evil (Blue Note Capitol 1999)

2. If I browse the folder "TrackArtist" (again, with wathever app), under:
. Elvin Jones
I'll only see (as case A.2):
. Bill Frisell-2001 With D. Holland And E. Jones (Nonesuch 2001)

So, Case B.1 is OK, other cases KO

Any fix for this?

-
Anyway, I still have the concern struck me when I started using "displayFormat".

Let me try and explain.

Maybe this is just a guess, but pretty sure that minimServer is expecting to find, inside my flac, this:

. ARTIST=Wayne Shorter
and
. PERFORMER=Wayne Shorter
. PERFORMER=Ron Carter
. PERFORMER=Elvin Jones
. PERFORMER=Herbie Hancock

to correctly building its indexes for browsing.

Applying this
. Artist.displayFormat={$Artist$Performer^^^;}

we're just flattening anything to
. ARTIST=Wayne Shorter;Ron Carter;Elvin Jones;Herbie Hancock

i.e. something minimServer can't use for indexes building.
And that's why browsing TrackArtist I can't see the 2nd album.

...well, just a guess, sure I'm wrong...


But, why JPLAY (using its internal db and search engine) works fine with the above string?
Just because JPLAY expects *exactly* a string like that from minimServer...
Infact, JPLAY has a couple of Metadata configuration flags to deal with incoming strings "allowed" to be splitten:
. Split using Comma ( , ) ?
. Split using Semicolumn ( ; ) ?

...and, BTW, this is why when JPLAY plays something from the band "10,000 Maniacs" you'll go wondering why the song has two artists:
"10" and "000 Maniacs"...

-

So, Simon, any way to fix the "Browsing by TrackArtist" wish ?

Thanks for your help.

Giovanni, from Italy
Find all posts by this user
Quote this message in a reply
11-08-2025, 22:51
Post: #6
RE: The "Performer" challenge
(11-08-2025 18:39)Gdg Wrote:  [quote='Hanu' pid='52893' dateline='1754865299']

Beside that, looking at your foobar tags print-screen, I'm pretty sure BubbleUpnp is not searching anything inside the "Perfomer" tag, but inside the "Album Artist", where you've listed all the band members.

Your decision.

The comment field is the reason why bubbleupnp and bubbleds are the best control points for me.
Performer (performer_name) is definitely indexed by minimserver and is searchable, even in Linn apps and HiFi-cast.
screenshots: bubbleupnp and HiFi-Cast
       
Find all posts by this user
Quote this message in a reply
12-08-2025, 11:21 (This post was last modified: 12-08-2025 11:24 by Gdg.)
Post: #7
RE: The "Performer" challenge
(11-08-2025 22:51)Hanu Wrote:  Your decision.

Hanu,
believe it or not, I bought an Android tablet (a couple of years ago) just to try BubbleUpnp.

But 75% of the time I have an Iphone in my hand, and, you know, no BubbleUpnp on IOS.
And that's why I'm looking a solution depending on minimServer, not on the controller app.

So far, the app I use most is JPLAY, just because it is the fastest at fetching the lists of metadata MinimServer is sending to it, when I navigate the "By folder" views.

Anyway, thank you very much for your help.

Giovanni, from Italy
Find all posts by this user
Quote this message in a reply
12-08-2025, 13:50
Post: #8
RE: The "Performer" challenge
(11-08-2025 21:17)Gdg Wrote:  2. If I browse the folder "TrackArtist" (doesn't matter the app), under:
. Elvin Jones
I'll only see
. Bill Frisell-2001 With D. Holland And E. Jones (Nonesuch 2001)

I tried this and I am seeing the same as you. The Artist tag is not replaced with the formatted value. This is a documented limitation for other tags (an existing tag value can't be changed using indexFormat) but it is supposed to work for Artist. I will investigate further.

For now, you can use a workaround:

indexTags: add TrackArtist
tagFormat: TrackArtist.indexFormat={$Artist$Performer^^^;}

Gdg Wrote:Applying this
. Artist.displayFormat={$Artist$Performer^^^;}

we're just flattening anything to
. ARTIST=Wayne Shorter;Ron Carter;Elvin Jones;Herbie Hancock

i.e. something minimServer can't use for indexes building.
And that's why browsing TrackArtist I can't see the 2nd album.

...well, just a guess, sure I'm wrong...

Using displayFormat doesn't affect MinimServer browsing (By Folder in JPLAY). Using indexFormat creates a new target index from existing source index values but doesn't change the source indexes.

I can't comment on how JPLAY searches and indexes its internal database because I don't know the details of this. The above information applies to "By Folder" browsing in JPLAY and also to browsing and UPnP searches by any other UPnP control point.
Find all posts by this user
Quote this message in a reply
12-08-2025, 21:46
Post: #9
RE: The "Performer" challenge
(12-08-2025 13:50)simoncn Wrote:  I tried this and I am seeing the same as you. The Artist tag is not replaced with the formatted value. This is a documented limitation for other tags (an existing tag value can't be changed using indexFormat) but it is supposed to work for Artist. I will investigate further.

When you do this, does the album have an AlbumArtist value? If so, this value will take priority for the Artist index entry and the Artist.indexFormat value will be ignored. This is why the Artist.indexFormat value was not being used in my test.
Find all posts by this user
Quote this message in a reply
12-08-2025, 22:35 (This post was last modified: 12-08-2025 22:36 by Gdg.)
Post: #10
RE: The "Performer" challenge
(12-08-2025 21:46)simoncn Wrote:  When you do this, does the album have an AlbumArtist value?

Yes, it has.

But I think I solved my needs, the easiest way ever:
. just browsing the "Performer" folder

using:
. tagFormat: Artist.displayFormat={$Artist$Performer^^^;}
and nothing else.

Silly me... with my "TrackArtist" folder I was just trying to duplicate the "Perfomer" one.

-
Using the "By folder"."Perfomer" view, I can see the albums linked to a single performer.

Selecting an album, into the Artist tag of every track, I can see all the people playing a song, thanks the tagFormat above.

This works on every DLNA capable controller: BubbleUpnp, Linn, JPLAY, HIFI-Casr, etc.

Also, JPLAY allows me to drill, recursively, any name inside the Artist tag, showing me the Albums s/he plays in and the people playing on each track and the albums someone plays in...

Thank you very much, Simon.

Giovanni, from Italy
Find all posts by this user
Quote this message in a reply
Post Reply 


Forum Jump:


User(s) browsing this thread: 1 Guest(s)