Announcement

Collapse
No announcement yet.

LMS 8.3 and Various Artists

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • gharris999
    replied
    Originally posted by philchillbill View Post
    Aha, indeed more complex. What's the advantage of embedding a cue-sheet in a flac rather than just regular tags?
    This is an increasingly less popular format: whole CDs ripped to a single flac with all the metadata (track list cuesheet, album art, liner notes & etc.) embedded in the flac file as vorbis comments. So the advantage is: 1 CD == 1 file.

    In the early slimdevices / squeeze center days, there were influential users who were strong advocates for the format and LMS's audio scan has supported the format from early on. Support for the format probably peaked when Andy Grundman added code to remove the need for an external flac process to transcode embedded cuesheet flacs on playback and added code to fully support gapless playback with embedded cuesheets.

    Popularity of the format is probably waning since it's supported by only a few other packages & applications, notably FB2K, EZ-CDAC, deadbeef, etc. Support on Apple platforms is especially thin.

    I'm married to the format, as I've been ripping my library that way for 16 years now and I've become set in my ways in my dotage.

    Click image for larger version

Name:	PXL_20210927_162924799.jpg
Views:	1
Size:	188.7 KB
ID:	1573356

    Leave a comment:


  • philchillbill
    replied
    Originally posted by gharris999 View Post
    Not quite. All the cuesheets are embedded in the flacs. The script would have to extract all the cuesheets from 6,670 flac files via metaflac, presumably -- and that would involve extracting ALL the VORBIS_COMMENT tags, and then determining which VORBIS_COMMENT is the embedded cuesheet, then scanning those extracted cuesheets for album PERFORMER tags != to track PERFORMER tags, adding the REM COMPILATION 1 line to the extracted cuesheets, and finally re-embedding the cuesheets.

    Yes, doable in a script, but not as trivial as you suggest.
    Aha, indeed more complex. What's the advantage of embedding a cue-sheet in a flac rather than just regular tags?

    Leave a comment:


  • gharris999
    replied
    Originally posted by philchillbill View Post
    Not commenting on the sanity/desirability of the requirement to do so, but if you need to add a single line of text to hundreds of files then a 3-line script in e.g bash/Perl/Python will do it in a jiffy. No need to do it by hand.
    Not quite. All the cuesheets are embedded in the flacs. The script would have to extract all the cuesheets from 6,670 flac files via metaflac, presumably -- and that would involve extracting ALL the VORBIS_COMMENT tags, and then determining which VORBIS_COMMENT is the embedded cuesheet, then scanning those extracted cuesheets for album PERFORMER tags != to track PERFORMER tags, adding the REM COMPILATION 1 line to the extracted cuesheets, and finally re-embedding the cuesheets.

    Yes, doable in a script, but not as trivial as you suggest.

    Leave a comment:


  • gharris999
    replied
    Originally posted by mherger View Post
    > Hmm I see in the comments for the pull request that Michael wasn't
    > totally convinced of the logic behind it and said it would be easy to
    > revoke if it caused issues. It has caused issues.


    Please define "issues", and some number to allow for the plural :-).

    If the issue is a change in behaviour which per-se is correct, but some
    don't like because it means work for them, and if it took half a year
    for a person or two to eventually hit that issue, then I'd consider it a
    non-issue. But that's just my opinion.
    Your opinion carries infinitely more weight than mine, of course. And everything you say is true. If I truly am the only one affected by this, then you're right to consider this a "won't fix" complaint.

    There have been several changes to the lms code over the years that have fixed/broken behavior that I rely on to keep my library in order. This one will just join the other mods I apply to my local git clone as I run my own fork of lms.

    fixcue.sh
    Code:
    #!/bin/bash
    
    
    lms_cust_cue(){
    
    	CUEFIX='/usr/local/share/lms/server/Slim/Formats/Playlists/CUE.pm'
    
    	CURDIR="$(pwd)"
    	FIXDIR="$(dirname "$CUEFIX")"
    
    	cd "$FIXDIR"
    
    	if [ "$(pwd)" != "$FIXDIR" ]; then
    		echo "Error: could not access ${FIXDIR}"
    		return 1
    	fi
    
    	if [ ! -e "${CUEFIX}.org" ]; then
    		cp -p "$CUEFIX" "${CUEFIX}.org"
    	fi
    
    	# Do we need to patch?
    	if [ $(grep -c "if (defined(\$cuesheet->{'ALBUMARTIST'}) && \$cuesheet->{'ALBUMARTIST'} ne \$performer) {" "$CUEFIX") -gt 0 ]; then
    		echo "${CUEFIX} already patched.."
    		return 0
    	fi
    
    	echo "Patching ${CUEFIX}"
    	# diff -rupN -ZbwB "$CUEFIX" "${CUEFIX}.mine"
    
    patch -p0 --verbose --ignore-whitespace << 'CUE_EOP'
    --- CUE.pm      2021-09-24 09:31:31.317230236 -0600
    +++ CUE.pm      2021-09-24 10:11:05.000000000 -0600
    @@ -414,6 +414,16 @@ sub parse {
                            $track->{'ARTIST'}      = $performer;
                            $track->{'TRACKARTIST'} = $performer;
    
    +            # Automatically flag a compilation album
    +            # since we are setting the artist.
    +
    +            if (defined($cuesheet->{'ALBUMARTIST'}) && $cuesheet->{'ALBUMARTIST'} ne $performer) {
    +                    $cuesheet->{'COMPILATION'} = '1';
    +                    # Deleted the condition on 'defined', it could be defined
    +                    # but equal NO, N, 0,... or what else.
    +                    # we want it to be = 1 in this case.
    +            }
    +
                    }
    
                    # Songwriter is the standard command for composer
    CUE_EOP
    
    
    	# Are we patched?
    	if [ $(grep -c "if (defined(\$cuesheet->{'ALBUMARTIST'}) && \$cuesheet->{'ALBUMARTIST'} ne \$performer) {" "$CUEFIX") -gt 0 ]; then
    		echo "${CUEFIX} patch successful!"
    	else
    		echo "${CUEFIX} NOT patched successfully!"
    		return 1
    	fi
    
    }
    
    
    lms_cust_cue
    Last edited by gharris999; 2021-09-24, 20:21.

    Leave a comment:


  • slartibartfast
    replied
    Originally posted by mherger View Post
    > Hmm I see in the comments for the pull request that Michael wasn't
    > totally convinced of the logic behind it and said it would be easy to
    > revoke if it caused issues. It has caused issues.


    Please define "issues", and some number to allow for the plural :-).

    If the issue is a change in behaviour which per-se is correct, but some
    don't like because it means work for them, and if it took half a year
    for a person or two to eventually hit that issue, then I'd consider it a
    non-issue. But that's just my opinion.
    It seems to solve an issue for one person which nobody had complained about previously. The originator doesn't say how many of his albums were affected but only one is mentioned. If it took more than twenty years for the original issue to be noticed maybe that was a non-issue [emoji2].

    Sent from my Pixel 3a using Tapatalk

    Leave a comment:


  • slartibartfast
    replied
    Originally posted by gharris999 View Post
    Yes, I think they're all related. What I'm unsure of is if the intended result was to force everyone to have to manually tag all their cuesheets if they wanted them to be recognized as compilations. That seems like a really big change in fundamental behavior for the scanner and I'm surprised that it hasn't been commented upon.
    Hmm I see in the comments for the pull request that Michael wasn't totally convinced of the logic behind it and said it would be easy to revoke if it caused issues. It has caused issues.

    Sent from my Pixel 3a using Tapatalk

    Leave a comment:


  • philchillbill
    replied
    Originally posted by gharris999 View Post
    So, apparently, the only way to get multi-artist cuesheets to show up in Various artists now is to add:

    REM COMPILATION 1

    ..to every cuesheet that you want to show up under Various Artists. In my case, to do that manually, would be hundreds of hours of work.

    So again, my question is: why break behavior that we've relied on for years? Why not add an option setting, something along the lines of:

    Only flag explicitly tagged albums as compilations []

    ??
    Not commenting on the sanity/desirability of the requirement to do so, but if you need to add a single line of text to hundreds of files then a 3-line script in e.g bash/Perl/Python will do it in a jiffy. No need to do it by hand.

    Leave a comment:


  • gharris999
    replied
    So, apparently, the only way to get multi-artist cuesheets to show up in Various artists now is to add:

    REM COMPILATION 1

    ..to every cuesheet that you want to show up under Various Artists. In my case, to do that manually, would be hundreds of hours of work.

    So again, my question is: why break behavior that we've relied on for years? Why not add an option setting, something along the lines of:

    Only flag explicitly tagged albums as compilations []

    ??

    Leave a comment:


  • gharris999
    replied
    Yes, I think they're all related. What I'm unsure of is if the intended result was to force everyone to have to manually tag all their cuesheets if they wanted them to be recognized as compilations. That seems like a really big change in fundamental behavior for the scanner and I'm surprised that it hasn't been commented upon.

    Leave a comment:


  • slartibartfast
    replied
    Originally posted by gharris999 View Post
    Am I understanding this commit:



    ..correctly? That it's asking that I go back, extract embedded cuesheets from about 8,000 flacs in my library, identify which ones are compilations and then manually add:

    REM COMPILATION

    ..to each one and then re-embed the cuesheets?

    If that's the case, why???
    The same person submitted 3 changes on the same day. Are they all related?


    Sent from my Pixel 3a using Tapatalk

    Leave a comment:


  • gharris999
    replied
    Am I understanding this commit:



    ..correctly? That it's asking that I go back, extract embedded cuesheets from about 8,000 flacs in my library, identify which ones are compilations and then manually add:

    REM COMPILATION

    ..to each one and then re-embed the cuesheets?

    If that's the case, why???

    Leave a comment:


  • gharris999
    replied
    OK, just to be clear, the "Various Artists" compilation behavior is broken in 8.2 & 8.3 for me for whole-album-flacs with embedded cuesheets.

    I've identified the commits that break the behavior:

    Code:
    OK: Logitech Media Server Version: 8.2.0 - git-e5255b339 @ 2021-03-15 17:52:57 +0100	e5255b339884491508e8979152e4a9c019779de3
    --breaking point--
    BAD:Logitech Media Server Version: 8.1.2 - git-35a5df3cd @ 2021-03-21 22:56:46 -0400	35a5df3cd5d16b76fe139837f5d7acaab6bb6853
    
    https://github.com/Logitech/slimserver/commit/35a5df3cd5d16b76fe139837f5d7acaab6bb6853
    
    BAD:Logitech Media Server Version: 8.2.0 - git-68ec4e69d @ 2021-03-23 06:15:51 +0100	68ec4e69d55e9746c8d4dee4fa1c74617a5464e9
    The breaking commit comment:
    Remove cuesheet functionality forcing releases with multiple artists as compilations

    If a release has not explicitly set compilation status, the status is computed in Slim::Schema->_createOrUpdateAlbum. Cuesheets, however, preemptively compute compilation status if the release has an album artist that does not match the track artist. Additionally, this computation happens after retrieving an explicit compilation value, preventing a user from overriding the status.
    What was the reasoning behind this commit? Was the purpose to speed up scanning by not having to do album artist vs track artist comparisons to "compute" whether an album is a compilation? If that was the case, how does one flag an embedded cuesheet as a compilation? I'm not seeing a definition for a "compilation" command in the cuesheet spec at https://wiki.hydrogenaud.io/index.php?title=Cue_sheet

    Or am I not understanding what the intent of this commit was?

    Leave a comment:


  • slartibartfast
    replied
    Originally posted by gharris999 View Post
    I'm late to the party in terms of using 8.3. I've just cloned the repo this evening and scanned my music library. I can't seem to get my compilation albums to show up under:

    Genres->Genre Name->Various Artists

    ..i.e. there's no "Various Artists" in the list of artists for any genre.

    In the "My Music" settings, I've enabled:

    Use single, configurable list of artists

    ..and..

    Group compilation albums together.

    Am I doing something wrong here, or is this a bug?
    Various Artists appears at the top of the Artists list for any genre for me and I have the same settings in "My Music". I didn't install by cloning the repo.

    Sent from my Pixel 3a using Tapatalk

    Leave a comment:


  • gharris999
    replied
    LMS 8.3 and Various Artists

    I'm late to the party in terms of using 8.3. I've just cloned the repo this evening and scanned my music library. I can't seem to get my compilation albums to show up under:

    Genres->Genre Name->Various Artists

    ..i.e. there's no "Various Artists" in the list of artists for any genre.

    In the "My Music" settings, I've enabled:

    Use single, configurable list of artists

    ..and..

    Group compilation albums together.

    Am I doing something wrong here, or is this a bug?

    Leave a comment:


  • gharris999
    started a topic LMS 8.3 and Various Artists

    LMS 8.3 and Various Artists

    > Hmm I see in the comments for the pull request that Michael wasn't
    > totally convinced of the logic behind it and said it would be easy to
    > revoke if it caused issues. It has caused issues.


    Please define "issues", and some number to allow for the plural :-).

    If the issue is a change in behaviour which per-se is correct, but some
    don't like because it means work for them, and if it took half a year
    for a person or two to eventually hit that issue, then I'd consider it a
    non-issue. But that's just my opinion.
Working...
X