Thanks for cleaning out my cobwebs.
Thanks for cleaning out mine. I suppose a natural consequence of my trial & error approach to building expressions is stopping when I find something that works. Unfortunately, the result is not always the best or most sensible solution.
ListItem([Artist Artist], 2, &) && ListItem([Artist Artist], 1, &) && ListItem([Artist Artist], 0, &)
I believe his [Album Artist] data is semicolon-delimited, which is replaced with ' & ' for display purposes.
The expression in my corrected post above will handle the two-artist case. To handle three or more artists, I suppose
ListCount() could be used to determine the number, then the terms to include in a list defined explicitly for each case. For example, for three artists (i.e., ListCount([Album Artist])=2)...
ListItem([Album Artist], 0), ListItem([Album Artist], 1) & ListItem([Album Artist], 2);
ListItem([Album Artist], 1), ListItem([Album Artist], 0) & ListItem([Album Artist], 2);
ListItem([Album Artist], 2), ListItem([Album Artist], 0) & ListItem([Album Artist], 1)
What's required is there be a term for each artist to appear first. There's probably a more systematic way to do that, but I can't think of it. A more simplistic approach would be to list each artist first, followed by all the artists together. That is, for example, "Artist1 (Artist0 & Artist1 & Artist2)." Such terms could be created using...
If(Compare(ListCount([Album Artist]), >, 2), ListItem([Album Artist], 2) /(Replace([Album Artist], ;, / & )/), )...and a complete list (for up to five artists) would be...
Replace([Album Artist], ;, / & );
If(Compare(ListCount([Album Artist]), >, 1), ListItem([Album Artist], 1) & ListItem([Album Artist], 0);
If(Compare(ListCount([Album Artist]), >, 2), ListItem([Album Artist], 2) /(Replace([Album Artist], ;, / & )/), );
If(Compare(ListCount([Album Artist]), >, 3), ListItem([Album Artist], 3) /(Replace([Album Artist], ;, / & )/), );
If(Compare(ListCount([Album Artist]), >, 4), ListItem([Album Artist], 4) /(Replace([Album Artist], ;, / & )/), )
Complicated? Yes. It's enough to keep me "old school." If two or more artist collaborate, then there must be a "lead" [Artist], with the others [Featuring] on tracks or an entire album. If that grossly misrepresents the situation, then the collaboration must be a new "band," and
that must be the [Artist]—even if it's a temporary creation. In this case, the participating artists can be recorded in [Members], an Artist-related list field. [Members] can then be used to find the collaborations of a particular individual artist, or it can be combined with [Artist] to list all the albums an artist has produced or collaborated on, as well as any multiple-artist albums that include the artist's tracks. An example of this is
The Travelling Wilburys. One could argue that is not and never was a "real" band, but it's a more effective way to refer to the collaboration than "Bob Dylan & George Harrison & Jeff Lynne & Tom Petty & Roy Orbison."