Skip to content

dcue fails with "...no duration, quitting" for releases with hidden tracks #9

@kowalcj0

Description

@kowalcj0

Hi,

First of all, thank you for a great tool. It helped me to fix titles in so many old CD rips!
I've noticed that for releases with hidden/medley tracks which have no duration (like track 12 on disc 2 of https://www.discogs.com/release/13835-Ferry-Corsten-System-F-Trance-Nation-Four )

2.12A | Memnon Featuring Seroyaโ€“ | Desire (Dub Mix)Remix โ€“ The LightVocals โ€“ SeroyaRemix โ€“ The LightVocals โ€“ Seroya | 3:28
2.12B | PQM* Featuring Cicaโ€“ | The Flying Song (Acapella)Vocals โ€“ Cica

dcue fails to generate a CUE file:

$ ./dcue-1.4-lnx-x86_64.AppImage 13835 cd1.mp3
./dcue-1.4-lnx-x86_64.AppImage: /usr/lib64/libcurl.so.4: no version information available (required by ./dcue-1.4-lnx-x86_64.AppImage)
Track 13, disc 2 has no duration, quitting

Thanks

Activity

lighterowl

lighterowl commented on Oct 13, 2022

@lighterowl
Owner

Hi, thanks for the report.

This one is tricky because it seems like there are two ways to express medleys/hidden tracks/subtracks on Discogs. I don't have a lot of these myself, and the only one I could think of was https://www.discogs.com/release/374278-Pink-Floyd-Atom-Heart-Mother which uses index tracks to assign sub-names to the actual track on the CD. The release info JSON for those tracks is :

{
    "position": "",
    "type_": "index",
    "title": "Alan's Psychedelic Breakfast",
    "duration": "13:01",
    "sub_tracks": [
        {
            "position": "5a",
            "type_": "track",
            "title": "Rise And Shine",
            "duration": ""
        },
        {
            "position": "5b",
            "type_": "track",
            "title": "Sunny Side Up",
            "duration": ""
        },
        {
            "position": "5c",
            "type_": "track",
            "title": "Morning Glory",
            "duration": ""
        }
    ]
}

However, DCue handles this (easier) case incorrectly as well, as the generated CUE lacks the index tracks - which, to be honest, is even worse because the program silently generates bad data instead of just quitting :

REM GENRE Psychedelic Rock
REM DATE 1987
REM COMMENT "DCue v1.5dev"
PERFORMER "Pink Floyd"
TITLE "Atom Heart Mother"
FILE "ahm.flac" WAVE
	TRACK 01 AUDIO
		TITLE "If"
		PERFORMER "Pink Floyd"
		INDEX 01 00:00:00
	TRACK 02 AUDIO
		TITLE "Summer '68"
		PERFORMER "Pink Floyd"
		INDEX 01 04:31:00
	TRACK 03 AUDIO
		TITLE "Fat Old Sun"
		PERFORMER "Pink Floyd"
		INDEX 01 09:59:00

So, hey, you unknowingly helped uncover another bug! ๐Ÿ˜…

Your case is more difficult because those two tracks are completely unrelated to each other and it could potentially be hard for the program to link those two together unless it, for example, assumes that a track without specified duration means that its duration was included in a previously defined track. Or, in case there is a rule which says that Discogs releases must use a defined numbering scheme like 1A, 1B, etc - we could use that. I'll have to look into the rules to find out.

Lastly - what would you expect the resulting CUE to be? We can't really insert this track into the CUE as we'd need a duration. Concatenating the artist and titles is the only thing that comes to mind, so perhaps something like this?

TRACK 01 AUDIO
	TITLE "Desire (Dub Mix) / The Flying Song (Acapella)"
	PERFORMER "Memnon Featuring Seroya / PQM Featuring Cica"
	INDEX 01 00:00:00

Will get horrible with longer sequences, though. Perhaps this should be a commandline option.

Let me know what you think.

self-assigned this
on Oct 13, 2022
lighterowl

lighterowl commented on Oct 14, 2022

@lighterowl
Owner

Discogs Database Guidelines explicitly say this :

Sub tracks, for example, DJ mixes that comprise one track on a CD: Separate songs or tunes that are rolled into one track on a CD, LP, etc., should be listed using a point and then a number: 1, 2, 3.1, 3.2, 3.3, 4,โ€ฆ Letters can also be used, with or without a point: A3.a, A3.b or A3a, A3b,โ€ฆ

I should be able to use that, altogether with some other logic, to implement the desired behaviour for tracks like these. If an issue is reported with a release that doesn't follow the guidelines, we can point to them and suggest that the data should be corrected instead, not the implementation.

kowalcj0

kowalcj0 commented on Oct 16, 2022

@kowalcj0
Author

Hi @Xavery
Thank you for a great and prompt response and sorry for my late reply.
Maybe the application's behaviour doesn't have to be implicit?
If a hidden/medley track was detected, then the dcue could show an error message prompting user to decide what to do, e.g. Track number 5 has 3 sub-tracks (sometimes called hidden or medley tracks). You can merge metadata of those sub-tracks into the parent track with --merge-sub-tracks or decide to use only the parent track metadata with --discard-sub-tracks?
What do you think?

lighterowl

lighterowl commented on Oct 16, 2022

@lighterowl
Owner

@kowalcj0 Sounds good. Hopefully I can start working on this this week.

lighterowl

lighterowl commented on Nov 7, 2022

@lighterowl
Owner

@kowalcj0 Looks like the end is near, I should be merging the whole MR this week and making a new release as this is a rather large change which warrants a new release IMHO.

lighterowl

lighterowl commented on Nov 8, 2022

@lighterowl
Owner

Version 1.5 released.

kowalcj0

kowalcj0 commented on Nov 8, 2022

@kowalcj0
Author

Thank you @Xavery
Will give it a go soon!

kowalcj0

kowalcj0 commented on Nov 8, 2022

@kowalcj0
Author

I just tested --medley single & --medley merge and it works just great!
Thank you once again! ๐Ÿ’ช ๐Ÿ’ช ๐Ÿ’ช

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

    Development

    Participants

    @lighterowl@kowalcj0

    Issue actions

      dcue fails with "...no duration, quitting" for releases with hidden tracks ยท Issue #9 ยท lighterowl/dcue