Giter VIP home page Giter VIP logo

Comments (14)

nousernouser avatar nousernouser commented on August 22, 2024 5

COMMENT UPDATED (2019-05-13)

Hi

Since I would like to make the best use of MPD with my large digital audio collection (1 flac file per album + 1 CUE file corresponding -- as it happens for a large number of users), I tried to contribute by studying a way to best implement support for CUE files in MPD.

I tried to deepen the question, and the main issues that occur and that should be fixed should be:

  • correlations between the PERFORMER and COMPOSER CUE commands and the albumartist, artist, performer and composer MPD tags, often result to be ambiguous for musical genres for which the artist may not correspond to the performer (as is for 'Classical' et al)
  • further ambiguity arise when PERFORMER is set to 'Various' in the header section of the cuesheet

As CUE files can contain a lot of information which do not are directly correlable with the available MPD tags, a further step should be:

  • extend support for CUE and MPD metadata as to handle other relevant information (without however introducing further ambiguity).

So I have therefore done an extensive and detailed work on this subject, which is available for download from here:
OLD VERSION (DEPRECATED): SUPPORTING CUE FILES IN MPD: SYNTACTIC AND SEMANTIC CONSISTENCY WITH STANDARD FORMATS FOR AUDIO METADATA

UPDATED version: SUPPORTING CUE FILES IN MPD: SYNTACTIC AND SEMANTIC CONSISTENCY WITH STANDARD FORMATS FOR AUDIO METADATA ver. 2.0 (pdf, 335KB)
NOTE: This document version 2.0 replaces any previous one, which now are deprecated. The old version 1.3 of the proposed pseudocode (who was listed here below) has been removed. The new proposed pseudocode version 2.0 is available within the provided document.

Summarizing this work, the specifications of the main formats for audio metadata (CCDB (freedb and MusicBrainz), TOC/CD-TEXT, CUESHEET, Vorbis comment and, obviously, MPD tags) were first examined with the aim of overcoming the critical issues. Having considered the results of the analisys carried out on these formats, it was possible to deepen the syntactic and semantic knowledge of the CUESHEET format, also in relation to the use conventions generally adopted in CUE files.

The correlations between CUE and MPD (and thus MPD clients) metadata were discussed, identifying a common set of audio metadata to be supported* exactly specifying their meaning and use, and finally understanding how to establish correlations so as to ensure syntactic and semantic consistency. Also, this has meant to precisely specify the syntactic and semantic use of the involved (standard and non-standard) CUE commands, and to define a proposal to extend the MPD specification introducing several new extra "extended" tags, that were necessary to achieve the optimal correlations.

All of this has been reported in a reference summary for CUE and MPD audio metadata (both standard and extended), which also contains the proposals to standardize and extend both the CUE commands and the MPD tags. More, a pseudocode has been proposed, which implements the parsing of CUE file commands in relation to the MPD tags so as to realize the appropriate correlations between the medatata. Some synthetic examples showing what result should be obtained with this implementation were also given.

I also tried to study the source code to see if I can propose the necessary changes. The code is very broad and structured in a fairly complex way to me, so it is difficult for me to understand where and how changes should be introduced ... Furthermore, my experience with C++ is quite limited ...

I hope that my contribution in terms of results and proposals will allow those who are able to better implement the support for CUE files in MPD.

I am however available to contribute as much as I can (build and test, documentation, etc.).

Please do it!!!
Thanks

PS: The proposed pseudocode is also listed here below (please, refer to the previously indicated work for the full understanding of the code flow).

- old pseudocode ver. 1.3 removed (deprecated)
- new pseudocode ver. 2.0 available within the provided document

from mpd.

martinKempa avatar martinKempa commented on August 22, 2024 3

Here is a patch to handle flac files with embedded cue sheets as container:

mpd-0.20.15-flac_container.patch.zip

Also I migrated it to version 0.19 because some people still stick to elder linux versions:

mpd-0.19.19-flac_container.patch.zip

Unfortunately I'm not very familiar with C++, so feel free to improve the modification.

from mpd.

martinKempa avatar martinKempa commented on August 22, 2024 2

Here is a small update fixing a problem displaying the correct time duration of tracks in processing stand-alone cue sheets:
mpd-0.20.15-flac_container.patch.zip
mpd-0.19.19-flac_container.patch.zip

from mpd.

enachesilviu avatar enachesilviu commented on August 22, 2024 1

I tried M.A.L.P. Android client, I can use the CUE sheet through the Files section but if I have many albums I wish I could just use the library since folders are undesirable for navigating music.

from mpd.

MPconta avatar MPconta commented on August 22, 2024

I want to support this topic.
And i hope, that not only standard tags for cuesheets, "album", "artist", "title" and "track" will be considered, but also additional tags, which are stored in the "rem"-lines.
I would really love to see this feature in a coming version of MPD!

from mpd.

MPconta avatar MPconta commented on August 22, 2024

Info for all, who do not know how to handle their SACD-Iso's the best way. Playback is a difficult thing with MPD and splitting them up in dsf or dff often creates disturbing cracks at the beginning of the created tracks:
Since this year it is possible to create WavPack-files with DSD-content and MPD can read this files easily. And it is possible to convert a whole SACD-Iso in one big WavPack with a cuesheet. So it should be possible to store SACD-Iso's in a way, that MPD can handle it AND there are no disturbing cracks.
At least i hope to use this possibility in future, when MPD can integrate cuesheets into the database. ;-)

from mpd.

niklasbe avatar niklasbe commented on August 22, 2024

This is the only reason why I use cmus rather than mpd

from mpd.

nousernouser avatar nousernouser commented on August 22, 2024

Also I want to support this feature.

It seems to me many people (becoming more and more) have a music library made of single audio files (mostly flac) with a external (or internal) cue sheet, so this would be a great enhancement.

In accordiance with Mpconta, I hope this feature will come with support either for "standard" (CDRWIN) cuesheet tags (as TRACK, TITLE, PERFORMER, SONGWRITER) and for other common (flac/vorbis) tags even if stored in the REM lines (also with attention for tags related to Classical music), such: GENRE, DATE, DISCNUMBER, DISCTOTAL, ORGANIZATION (or LABEL), COMPOSER, DIRECTOR etc.

More, development of clients with cueshhet suppport (like Cantata has) would have benefit from this.

I would really appreciate having this feature in MPD!

from mpd.

mateinegriu avatar mateinegriu commented on August 22, 2024

@martinKempa Looks nice, could you submit upstream?

from mpd.

sergbug avatar sergbug commented on August 22, 2024

that will be great. current MPD CUE behaviour is not good for library at al ((

from mpd.

rdscorreia74 avatar rdscorreia74 commented on August 22, 2024

Could someone please confirm if this is still an issue on current mpd?
If so, is there someone working on "fixing" this in the foreseeable future?
Thanks in advance

from mpd.

mateinegriu avatar mateinegriu commented on August 22, 2024

from mpd.

MPconta avatar MPconta commented on August 22, 2024

I would think, this issue is conected to the topic here:

#451

from mpd.

nousernouser avatar nousernouser commented on August 22, 2024

@mateinegriu

Please, could you delete the pseudocode quoted from my comment (as it is now deprecated since I have updated it to a new version)? Thanks

from mpd.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.