-
-
Notifications
You must be signed in to change notification settings - Fork 128
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cue more! #3634
Conversation
Phew, this goes fast—everyone working instead of clubbing on a Saturday night! On LS 2.3.0+git@4a2d37e, when using a stream as input, the TITLEs were missing:
Stream definitely has metadata, example:
|
It's still early here!
Yeah. Track and metadata has been rewritten in |
The "map_metadata" function also receives no metadata (just [] when I log m). Your branch: That’d be |
Using your branch did it, thanks for the hint. Using LS 2.3.0+git@d1d3bbb now. Now we’re talking:
DATE working (have to look up if it should be Could this super-hacky brute-force metadata mapping be written more elegantly?
|
@toots Did some more testing re DATE on CD and TRACK level. It seems most cue sheet parsers recognise So I propose to use We don’t get all possible metadata with all inputs, but probably should think of feasible data to identify tracks with some formats.
The main goal of using a cue sheet together with a recording MP3/FLAC/WAV will normally be
To reliably identify a track, it might be nice to include these metadata if available:
A cue sheet can start with a track number higher than 1 (originally for multi-disc sets), and must be seuqntially counting up, but I guess we can ignore that for our purposes (except maybe the mysterious "max_tracks" setting). Guess we can also ignore most other options like UPC/EAN etc., since we’re not really talking about CD/DVD/BluRay media here. It’s mainly to create usable recordings and being able to see the titles broadcast, and jump around in a recording. |
Did several 2-hour testing blocks over night, and the code (cue-more branch) works robust, except for my additional notes above of course:
* = On these, the cue points are often a few seconds off. I think this might be an AzuraCast issue, since I see metadata changing a few seconds off in their web player, too. Maybe it’s just due to the crossfading… I will now do a 2-hour test from a local playlist, to verify this. Using a playlist and no crossfade, the cue points should be exact. test8.liq, in case you want to cross-verify:
|
Local playlist to MP3+CUE roughly okay, but some non-exact cues. This seems to depend heavily on the player, for instance Audacious and VLC gave very different results for the same cue point. I believe the CUE file to be correct, but it seems exact seeking in a MP3 file is not easy for every MP3 audio player… Retrying the playlist 2-hour test using FLAC as target now. Btw, EDIT: Results: With FLAC and WAV, all cue points are exact, and playback, too. So definitely a problem with some players not being able to seek MP3 correctly. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It would be nice to use the file extension to get the default file type as suggested.
@@ -426,5 +430,6 @@ def source.cue( | |||
end | |||
end | |||
|
|||
source.on_track(s, handle_metadata) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure to understand here: why don't we use tracks and not metadata?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Metadata can happen without a track mark. In most situations, e.g. when working with files, track marks and metadata happen at the same time but it's not guaranteed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree with that but I thought it would be more logical to generate cue entries for tracks rather than arbitrary metadata
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm trying to capture the most general use-case. I think metadata+deduplicate gives us the largest use-case cross-section..
I've pushed the following:
Seems to me that this is plenty for now! |
Sorry I forgot:
|
Yep, plenty. Unfortunately, some things now impossible (long date). Since no one will have But the If I do a
I only see:
but the file has much more metadata:
|
@Moonbase59 Make sure to disable |
@toots Ah, ok, thanks for the pointer! Do we have a "disable" or should I simply try
Do you by chance know if taglib still/again being developed? (I use it in loudgain, and at that time it was the best/most flexible lib to handle tags uniformly in many file formats.) |
I'm about to push the deprecation. It will make sure that taglib is tried last. The settings could work too. It looks like it's still active. It was cool when there were a gazillion of formats popping out back then but, nowadays, there's a handful of formats that capture most of people's need and we all support them in |
Yeah, it was really cool back in the days, especially when working with C… I hope they continue it, if ever I come round to updating loudgain… sigh. Since "fields" are so different in different file types, do you internally use some mapping like MusicBrainz Picard does? So we’d easily find a tag by a "common name" in various file types like M4A, MP3, ID3v2.3, ID3v2.4, FLAC, etc.? (Hint: If not, I strongly suggest to use Picard’s Tag Mapping—it has proved worthy for more than a decade.) |
More stuff for
cue
after @Moonbase59 remarksmax_length
tomax_tracks
. Even with the documentation, the parameter name is confusing.data
to a un-escaped string to allow more flexibility w.r.t. the spec.deduplicate_using
to deduplicate metadata based on title/artist/album.