Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.Sign up
Add feature to parse cue sheets contents into the MPD database #39
Might be very useful to have MPD database update logic to process cue sheets found in the music directory to add the songs listed in the cue sheet to the database with all the propers tags.
I want to support this topic.
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:
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!
Here is a patch to handle flac files with embedded cue sheets as container:
Also I migrated it to version 0.19 because some people still stick to elder linux versions:
Unfortunately I'm not very familiar with C++, so feel free to improve the modification.
COMMENT UPDATED (2019-05-13)
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:
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:
So I have therefore done an extensive and detailed work on this subject, which is available for download from here:
UPDATED version: SUPPORTING CUE FILES IN MPD: SYNTACTIC AND SEMANTIC CONSISTENCY WITH STANDARD FORMATS FOR AUDIO METADATA ver. 2.0 (pdf, 335KB)
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!!!
Hi, Thanks for the detailed analysis. I think it would be desirable that at one moment we should have all the features described below. However the first step in my opinion would be at the creation/updating of the library to just automatically parse .CUE sheets when they are associated with .flac/.eac/other audio sources. Parsing .CUE files is already implemented in MPD for loading of playlists. (browsing folders and opening .CUE files results in the current playlist being populated with entries in the CUE file). So we would just need to add this existing functionality to the library parsing stage. For somebody familiar with the MPD code I assume this would be a fairly straight-forward task. We could try and tackle some of the proposals below (discerning between PERFORMER and COMPOSER, aditional MPD tags etc) in further steps. Thanks, Matei