MMuser2011 wrote:I would like to fill the ALBUM ARTIST tag with more useful/logical content and a controllable way.
How can I replace the actual or empty content in this tag:
a) If the entire album has the same artist -> copy it to the ALBUM ARTIST tag
b) If the album has two artists (Split Albums) -> copy the one half of the album with the one artist, the second half with the other one
c) if the album has 3 or more artists (Compilations) -> copy 'VARIOUS ARTIST' to ALBUM ARTIST tag
I don't understand the b) condition, but I suppose you could try this preset:
Preset: Assign "Various Artists" to Album Artist if Album has 3 or more Artists, else assign Artist(s)
Find what: ^.*
Into: Album Artist
Regular expression 1: checked
Replace with: IIf(IfNull(SQLQuery("SELECT IDAlbum FROM Songs WHERE IDAlbum = " & oSongData.Album.ID & " GROUP BY IDAlbum HAVING Count(TrackNumber) = Max(Cast(TrackNumber As integer)) AND Count(TrackNumber) > 3"), 0) > 0, IIf(IfNull(SQLQuery("SELECT IDAlbum FROM Songs WHERE IDAlbum = " & oSongData.Album.ID & " GROUP BY IDAlbum HAVING Count(DISTINCT Artist) > 2"), 0) > 0, "Various Artist", oSongData.ArtistName), "$&")
VBScript expression: checked
MMuser2011 wrote:It would not be a problem to do that in 3 single steps. But I don't even know, how to 'count' the number of different artists or recognize a full album.
There are "Complete Albums" and "Albums with multiple Genres" masks for Magic Nodes which could be customized to display what you want. For example:
- Code: Select all
<Group|Name:Albums...|Show tracks:No>\Complete Albums with multiple Artists|Icon:Bottom level|Filter:Songs.IDAlbum IN (SELECT IDAlbum FROM Songs WHERE IDAlbum > 0 GROUP BY IDAlbum HAVING Count(TrackNumber) = Max(Cast(TrackNumber As integer)) AND Count(TrackNumber) > 3 AND Count(DISTINCT Artist) > 1)\<Album with album artist|Statistic:Count(Artist)>\<Artist|Statistic:Count(Tracks)>