TimothyB;146847 Wrote:
> I use FLAC images and cue sheets, so I only have a couple files per
> album (three including the EAC log file). So I put my albums in
> folders by the first letter of the artist name.
>
> In my "A" folder I have:
>
> Aerosmith - Greatest Hits.cue
> Aerosmith - Greatest Hits.flac
> Air Supply - Greatest Hits.cue
> Air Supply - Greatest Hits.flac
>
> SlimServer is munging these two albums together into one album by
> Various Artists. Is there a server setting to fix this?
>
> SlimServer Version: 6.5.1 - 10354 - Windows XP - EN - cp1252
> Server IP address: 192.168.1.100
> Perl Version: 5.8.8 MSWin32-x86-multi-thread
> MySQL Version: 5.0.22-community-nt
>
> -- T
Yes, you stumbled upon the same problem, only that in your case, the
albums do not get separated where they should and in mine, they do get
separated where they should not. Album separation (or merging) takes
place based on two conditions only:
1. Same folder AND
2. Same album name
The artist (or better: contributor, which means "main artist") is not
taken into account. And this is the problem.
In the mean time, I have fixed the problem for my case (i.e. this does
not yet fix your problem). In Slim/Schema.pm, there is a passage like
this:
Code:
--------------------
# Join on tracks with the same basename to determine a
unique album.
if (!defined $disc && !defined $discc) {
# Don't match based on path name
# $search->{'tracks.url'} = { 'like' => "$basename%" };
$attr->{'join'} = 'tracks';
}
--------------------
As you can see, I disabled the "basename", i.e. path name criterion.
But this leads to one condition only for album separation, the album's
name itself. For "Greatest Hits", this does not work, although when you
navigate over the artist, everything functions fine.
Anyway, if the albums are being separated, when using the album view
for navigation, there are only several "Greatest Hits" entries with
only different years in brackets, so I cannot choose the right one by
just looking.
If one wants to include the "artist/contributor" criterion as before,
one has to change this location, too:
Code:
--------------------
# If we have a compilation bit set - use that instead
# of trying to match on the artist. Having the
# compilation bit means that this is 99% of the time a
# Various Artist album, so a contributor match would
fail.
if (defined $isCompilation) {
# in the database this is 0 or 1
$search->{'me.compilation'} = $isCompilation;
} else { # This is new
# Try to match based on the primary contributor
if (blessed($contributor)) {
# $search->{'me.contributor'} =
$contributor->id;
}
}
--------------------
This is copied from 6.3.x. However, I commented out the code because it
does not work like that. The problem is that the database design changed
as well, so that the "albums" table does not contain the "contributor"
attribute any more. Instead, there are tables named "contributor" and
"contributor_album" to implement this N:M relation.
Thus, you'd have to use another JOIN and compare like this:
-albums.id = contributor_album.album &&
contributor_album.contributor = $contributor->id-
This would be very slow. Also, I have not yet dug into the inner
workings of the syntax of $search strings to implement that.
--
meyergru
------------------------------------------------------------------------
meyergru's Profile: http://forums.slimdevices.com/member.php?userid=1980
View this thread: http://forums.slimdevices.com/showthread.php?t=27424
_______________________________________________
beta mailing list
[email protected]
http://lists.slimdevices.com/lists/listinfo/beta