Adding CUE support
  • I just commited one of the patches to add full cue support. Right now cue support is read only and allow to save separate tracks copy to portable devices or collections using the Copy to function as with any other file.
    This was the most voted requested feature in the ideatorrent so Im trying to implement it.
    Please let me know any bug report.

    What is missing :
    * Save back to the cue the edits of the tags
    * Find more places where tags should not be write to the cue audio file


    I would like to receive some .cue files to see how they are built to try to add support for it.
    Please send them to anonbeat at gmail dot com

    Thanks in advance

  • Please I need more help testing the cue support. Anyone?
  • I made a test with the only cue file that I have, it's for a flac file. I found some problems:

    1. Even when the CUE contains "REM GENRE Classical", the genre is set to Unknown.
    2. You cannot edit the tracks with the Song Editor. This is probably because you haven't implemented saving back yet.
    3. If you click on a track to play it, it works fine. But if you drag and drop it, it shows the name of the first track of the CUE.
    4. I tried copying one of the files but it didn't work. The console says:

    07:46:23 PM: Error: Impossible to get permissions for file '' (error 2: No such file or directory)
    07:46:23 PM: Could not copy the cover /media/media/musica/Unknown/Gaetano Nasillo, Luca Guglielmi, Sara Bennici/2010 - Caldara - Sonate a Violoncello Solo/

    I have no permissions problem since I can copy other files.
    If you want the flac let me know. It's quite large, 385MB, so I would have to upload it somewhere.
  • Thanks I will try to figure out that problems.

    Thanks for your help
  • Another one: if you play a part, when it reaches the end it doesn't stop, it continues playing the next while the elapse time slider stays at the end and the time can show something like 04:52 / 03:16.
  • tamalet said:

    I made a test with the only cue file that I have, it's for a flac file. I found some problems:

    1. Even when the CUE contains "REM GENRE Classical", the genre is set to Unknown.
    2. You cannot edit the tracks with the Song Editor. This is probably because you haven't implemented saving back yet.
    3. If you click on a track to play it, it works fine. But if you drag and drop it, it shows the name of the first track of the CUE.
    4. I tried copying one of the files but it didn't work. The console says:

    07:46:23 PM: Error: Impossible to get permissions for file '' (error 2: No such file or directory)
    07:46:23 PM: Could not copy the cover /media/media/musica/Unknown/Gaetano Nasillo, Luca Guglielmi, Sara Bennici/2010 - Caldara - Sonate a Violoncello Solo/

    I have no permissions problem since I can copy other files.
    If you want the flac let me know. It's quite large, 385MB, so I would have to upload it somewhere.



    1.- Fixed
    2.- Yeah edit via track editor is disabled for cue tracks while I dont add the feature to write back to the cue the tags
    3.- Drag and drop is done as dragging files. Need to add a new format for this tracks. I will try to add it asap
    4.- What options do you used to try to copy ? there are many ways to copy so I dont know exactly what you tried.

    About the end of track I tried to reproduce the problem but couldnt. Can you give me your crossfader and force gapless settings please ?

    Thank you very much for your help
  • Please try now with revision 1730

    Thanks for your help
  • 1. It works and also Album Artists are recognized now. Thanks!
    2&3. OK
    4. I used a patter similar to Default. I'm at work now and here I tried with the default one. Here I don't get the permission message. It creates the directory and copies the cover but there is no music file.
    09:33:53: Indicators_Sound_Available() => 1
    09:33:53: Indicators_Sound_IsBlacklisted() => 0
    [Thread 0xacfdfb70 (LWP 4559) exited]
    [New Thread 0xacfdfb70 (LWP 4626)]
    09:34:06: Using pattern '{g}/{A}/{b}/{n} - {a} - {t}'
    09:34:06: guCopyToDeviceThread::TranscodeFile
    Source: '/home/tamalet/Music/Classical/Antonio Caldara/Sonate à Violoncello Solo/Caldara - Sonate a Violoncello Solo.flac'
    Target: '/home/tamalet/Music/Classical/Gaetano Nasillo, Luca Guglielmi, Sara Bennici/Caldara - Sonate a Violoncello Solo/17 - Gaetano Nasillo, Luca Guglielmi, Sara Bennici - II. Allegro'
    Format: 3
    Quality: 0
    09:34:06: Transcode 3 - 0 '/home/tamalet/Music/Classical/Antonio Caldara/Sonate à Violoncello Solo/Caldara - Sonate a Violoncello Solo.flac' => '/home/tamalet/Music/Classical/Gaetano Nasillo, Luca Guglielmi, Sara Bennici/Caldara - Sonate a Violoncello Solo/17 - Gaetano Nasillo, Luca Guglielmi, Sara Bennici - II. Allegro.flac'
    :::: 2156453 => 127413
    09:34:06: guTranscodeThread::BuildPipelineWithOffset
    [New Thread 0xb7c12b70 (LWP 4627)]
    09:34:06: Transcode 3 - 0 '/home/tamalet/Music/Classical/Antonio Caldara/Sonate à Violoncello Solo/Caldara - Sonate a Violoncello Solo.flac' => '/home/tamalet/Music/Classical/Gaetano Nasillo, Luca Guglielmi, Sara Bennici/Caldara - Sonate a Violoncello Solo/17 - Gaetano Nasillo, Luca Guglielmi, Sara Bennici - II. Allegro.flac'
    :::: 2156453 => 127413
    09:34:06: guTranscodeThread::BuildPipelineWithOffset
    [New Thread 0xac7deb70 (LWP 4628)]
    09:34:06: Transcode 3 - 0 '/home/tamalet/Music/Classical/Antonio Caldara/Sonate à Violoncello Solo/Caldara - Sonate a Violoncello Solo.flac' => '/home/tamalet/Music/Classical/Gaetano Nasillo, Luca Guglielmi, Sara Bennici/Caldara - Sonate a Violoncello Solo/17 - Gaetano Nasillo, Luca Guglielmi, Sara Bennici - II. Allegro.flac'
    :::: 2156453 => 127413
    09:34:06: guTranscodeThread::BuildPipelineWithOffset
    [Thread 0xb7c12b70 (LWP 4627) exited]
    [New Thread 0xb60ffb70 (LWP 4629)]
    09:34:06: OnCollectionCommand 13114 0 14 0
    [Thread 0xac7deb70 (LWP 4628) exited]
    [New Thread 0xb7c12b70 (LWP 4630)]
    [Thread 0xb60ffb70 (LWP 4629) exited]
    09:34:06: Doing Library Update in /home/tamalet/Music
    [New Thread 0xb60ffb70 (LWP 4631)]
    [Thread 0xb7c12b70 (LWP 4630) exited]
    09:34:08: ReloadControls...0000041C
    [Thread 0xb60ffb70 (LWP 4631) exited]
    [Thread 0xacfdfb70 (LWP 4626) exited]


    5. I cannot reproduce the problem with the end of the track here. I'll check again at home later.
  • Can you check if you have the gnonlin gstreamer components ?
    gst-inspect-0.10 | grep gnl

    If no please install gstreamer0.10-gnonlin

    Thanks
  • I didn't have it installed. I installed it and now it creates the files, but they are empty.
    [New Thread 0xb58e5b70 (LWP 7859)]
    11:04:41: Using pattern '{g}/{A}/{b}/{n} - {a} - {t}'
    11:04:41: guCopyToDeviceThread::TranscodeFile
    Source: '/home/tamalet/Music/Classical/Antonio Caldara/Sonate à Violoncello Solo/Caldara - Sonate a Violoncello Solo.flac'
    Target: '/home/tamalet/Music/Classical/Gaetano Nasillo, Luca Guglielmi, Sara Bennici/Caldara - Sonate a Violoncello Solo/11 - Gaetano Nasillo, Luca Guglielmi, Sara Bennici - III. Largo'
    Format: 3
    Quality: 0
    11:04:41: Transcode 3 - 0 '/home/tamalet/Music/Classical/Antonio Caldara/Sonate à Violoncello Solo/Caldara - Sonate a Violoncello Solo.flac' => '/home/tamalet/Music/Classical/Gaetano Nasillo, Luca Guglielmi, Sara Bennici/Caldara - Sonate a Violoncello Solo/11 - Gaetano Nasillo, Luca Guglielmi, Sara Bennici - III. Largo.flac'
    :::: 1347293 => 98013
    11:04:41: guTranscodeThread::BuildPipelineWithOffset

    (guayadeque:7831): GLib-GObject-WARNING **: g_object_notify: object class `GstFlacEnc' has no property named `loose_mid_side'
    11:04:41: Converting from -1326730944 to 313
    [New Thread 0xb7c12b70 (LWP 7860)]
    [New Thread 0xb50e4b70 (LWP 7861)]
    [New Thread 0xb60e6b70 (LWP 7862)]
    11:04:41: Linked composer and converter...
    11:04:41: Error: Transcode gstreamer error 'GStreamer encountered a general stream error.'
    'gstbaseparse.c(2695): gst_base_parse_loop (): /GstPipeline:guTransPipeline/GnlComposition:guComposition/GnlFileSource:guTransSource/GstURIDecodeBin:internal-uridecodebin/GstDecodeBin2:decodebin23/GstFlacParse:flacparse3:
    streaming stopped, reason error'
    TagLib: FLAC::File::scan() -- FLAC stream not found
    TagLib: FileRef::save() - Called without a valid file.
    11:04:41: Warning: Tags Save failed for file '/home/tamalet/Music/Classical/Gaetano Nasillo, Luca Guglielmi, Sara Bennici/Caldara - Sonate a Violoncello Solo/11 - Gaetano Nasillo, Luca Guglielmi, Sara Bennici - III. Largo.flac'
    [Thread 0xb60e6b70 (LWP 7862) exited]
    [Thread 0xb7c12b70 (LWP 7860) exited]
    11:04:42: Transcode 3 - 0 '/home/tamalet/Music/Classical/Antonio Caldara/Sonate à Violoncello Solo/Caldara - Sonate a Violoncello Solo.flac' => '/home/tamalet/Music/Classical/Gaetano Nasillo, Luca Guglielmi, Sara Bennici/Caldara - Sonate a Violoncello Solo/11 - Gaetano Nasillo, Luca Guglielmi, Sara Bennici - III. Largo.flac'
    :::: 1347293 => 98013
    11:04:42: guTranscodeThread::BuildPipelineWithOffset

    (guayadeque:7831): GLib-GObject-WARNING **: g_object_notify: object class `GstFlacEnc' has no property named `loose_mid_side'
    11:04:42: Converting from -1326730944 to 313
    [New Thread 0xb7c12b70 (LWP 7863)]
    [New Thread 0xb60e6b70 (LWP 7864)]
    11:04:42: Linked composer and converter...
    11:04:42: Error: Transcode gstreamer error 'GStreamer encountered a general stream error.'
    'gstbaseparse.c(2695): gst_base_parse_loop (): /GstPipeline:guTransPipeline/GnlComposition:guComposition/GnlFileSource:guTransSource/GstURIDecodeBin:internal-uridecodebin/GstDecodeBin2:decodebin24/GstFlacParse:flacparse4:
    streaming stopped, reason error'
    TagLib: FLAC::File::scan() -- FLAC stream not found
    TagLib: FileRef::save() - Called without a valid file.
    11:04:42: Warning: Tags Save failed for file '/home/tamalet/Music/Classical/Gaetano Nasillo, Luca Guglielmi, Sara Bennici/Caldara - Sonate a Violoncello Solo/11 - Gaetano Nasillo, Luca Guglielmi, Sara Bennici - III. Largo.flac'
    [Thread 0xb60e6b70 (LWP 7864) exited]
    [Thread 0xb7c12b70 (LWP 7863) exited]
    11:04:43: Transcode 3 - 0 '/home/tamalet/Music/Classical/Antonio Caldara/Sonate à Violoncello Solo/Caldara - Sonate a Violoncello Solo.flac' => '/home/tamalet/Music/Classical/Gaetano Nasillo, Luca Guglielmi, Sara Bennici/Caldara - Sonate a Violoncello Solo/11 - Gaetano Nasillo, Luca Guglielmi, Sara Bennici - III. Largo.flac'
    :::: 1347293 => 98013
    11:04:43: guTranscodeThread::BuildPipelineWithOffset

    (guayadeque:7831): GLib-GObject-WARNING **: g_object_notify: object class `GstFlacEnc' has no property named `loose_mid_side'
    11:04:43: Converting from -1326730944 to 313
    [New Thread 0xb7c12b70 (LWP 7865)]
    [New Thread 0xb60e6b70 (LWP 7866)]
    11:04:43: Linked composer and converter...
    11:04:43: Error: Transcode gstreamer error 'GStreamer encountered a general stream error.'
    'gstbaseparse.c(2695): gst_base_parse_loop (): /GstPipeline:guTransPipeline/GnlComposition:guComposition/GnlFileSource:guTransSource/GstURIDecodeBin:internal-uridecodebin/GstDecodeBin2:decodebin25/GstFlacParse:flacparse5:
    streaming stopped, reason error'
    TagLib: FLAC::File::scan() -- FLAC stream not found
    TagLib: FileRef::save() - Called without a valid file.
    11:04:43: Warning: Tags Save failed for file '/home/tamalet/Music/Classical/Gaetano Nasillo, Luca Guglielmi, Sara Bennici/Caldara - Sonate a Violoncello Solo/11 - Gaetano Nasillo, Luca Guglielmi, Sara Bennici - III. Largo.flac'
    [Thread 0xb60e6b70 (LWP 7866) exited]
    [Thread 0xb7c12b70 (LWP 7865) exited]
    11:04:44: OnCollectionCommand 13114 0 14 0
    [New Thread 0xb7c12b70 (LWP 7867)]
    11:04:44: Doing Library Update in /home/tamalet/Music
    TagLib: FLAC::File::scan() -- FLAC stream not found
    11:04:46: Error: Cant read tags from '/home/tamalet/Music/Classical/Gaetano Nasillo, Luca Guglielmi, Sara Bennici/Caldara - Sonate a Violoncello Solo/11 - Gaetano Nasillo, Luca Guglielmi, Sara Bennici - III. Largo.flac'
    TagLib: FLAC::File::scan() -- FLAC stream not found
    11:04:46: Error: Cant read tags from '/home/tamalet/Music/Classical/Gaetano Nasillo, Luca Guglielmi, Sara Bennici/Caldara - Sonate a Violoncello Solo/03 - Gaetano Nasillo, Luca Guglielmi, Sara Bennici - III. Adagio.flac'
    [New Thread 0xb60e6b70 (LWP 7868)]
    [Thread 0xb7c12b70 (LWP 7867) exited]
    11:04:47: ReloadControls...0000041C
    [Thread 0xb60e6b70 (LWP 7868) exited]
  • Can you try transcoding to other format instead of flac please ?
  • I tried generating an mp3. It creates a file of 1.5K no matter what I copy which cannot be played.
    The console says:
    12:05:56: Error: Transcode gstreamer error 'GStreamer encountered a general stream error.'
    'gstbaseparse.c(2695): gst_base_parse_loop (): /GstPipeline:guTransPipeline/GnlComposition:guComposition/GnlFileSource:guTransSource/GstURIDecodeBin:internal-uridecodebin/GstDecodeBin2:decodebin27/GstFlacParse:flacparse7:
    streaming stopped, reason error'
    TagLib: MPEG::Properties::read() -- Could not find a valid last MPEG frame in the stream.
  • Just tried in Maverick and in Oneiric and its working fine in maverick but it fails in oneiric.
    Going to investigate where the problem comes from but looks like its a gnonlin problem.
  • OK, thanks for all the effort.
  • I compiled from svn and am running 0.3.4-1730.
    Congratulations this looks really good.
    I checked the Cuefile Functionality and this is a really cool feature.

    When exporting (copy to) i run in the similar problems.

    Source: '/home/tom/htpc/V.A - Female Audiophile II (2007.SACD.Percent Music)/Various - Female Audiophile II.flac'
    Target: '/home/tom/Music/E. Kontomanou-2007-Female Audiophile II-00-The Good Life'
    Format: 3
    Quality: 0
    04:54:25 PM: Transcode 3 - 0 '/home/tom/htpc/V.A - Female Audiophile II (2007.SACD.Percent Music)/Various - Female Audiophile II.flac' => '/home/tom/Music/E. Kontomanou-2007-Female Audiophile II-00-The Good Life.flac'
    :::: 1 => 349012
    04:54:25 PM: guTranscodeThread::BuildPipelineWithOffset

    (guayadeque:9983): GLib-GObject-WARNING **: g_object_notify: object class `GstFlacEnc' has no property named `loose_mid_side'
    04:54:25 PM: Converting from 1000000 to 0
    04:54:25 PM: Linked composer and converter...
    04:54:25 PM: Error: Transcode gstreamer error 'GStreamer encountered a general stream error.'
    'gstbaseparse.c(2695): gst_base_parse_loop (): /GstPipeline:guTransPipeline/GnlComposition:guComposition/GnlFileSource:guTransSource/GstURIDecodeBin:internal-uridecodebin/GstDecodeBin2:decodebin21/GstFlacParse:flacparse1:
    streaming stopped, reason error'
    TagLib: FLAC::File::scan() -- FLAC stream not found
    TagLib: FileRef::save() - Called without a valid file.
    04:54:25 PM: Warning: Tags Save failed for file '/home/tom/Music/E. Kontomanou-2007-Female Audiophile II-00-The Good Life.flac'
    04:54:26 PM: Transcode 3 - 0 '/home/tom/htpc/V.A - Female Audiophile II (2007.SACD.Percent Music)/Various - Female Audiophile II.flac' => '/home/tom/Music/E. Kontomanou-2007-Female Audiophile II-00-The Good Life.flac'
    :::: 1 => 349012
    04:54:26 PM: guTranscodeThread::BuildPipelineWithOffset

    Sorry, don't know how to yellow the error message.
    I am running Ubuntu 11.10
    3.0.0-13-generic #22-Ubuntu SMP

    gst-inspect-0.10 | grep gnl
    gnonlin: gnlsource: GNonLin Source
    gnonlin: gnlcomposition: GNonLin Composition
    gnonlin: gnloperation: GNonLin Operation
    gnonlin: gnlurisource: GNonLin URI Source
    gnonlin: gnlfilesource: GNonLin File Source

    I also tried with target format mp3 and got the same error.

    But just being able to play cuefiles and being able to navigate in the playlist is great.
    Most my cuefiles are for dts encoded wav files.

    Have you considered mplayer for splitting audiofiles. I had good experiences when used to split audio according to cuefile.

    I am pretty content with what you have done already, but i am glad to support you with more test if that helps.
  • Just submitted a bug to gstreamer developers
    https://bugzilla.gnome.org/show_bug.cgi?id=667430

    Its nothing I can do about to fix it.
    It shoudl be fine for other formats. And also using maverick works perfectly. Dont know other distros.
  • In svn revision 1731 now drag and drop cue files should work
  • I tried it and it works mostly fine. But the only flag+cue that I have is now recognized as two albums, but I can't see the difference between them. The second one has only 2 songs and when I try to play them I get an error:
    (guayadeque:28919): GLib-GObject-WARNING **: g_object_set_valist: object class `GstLevel' has no property named `\xd0)S\u0008\u0001'
    14:17:06: Error: ee: Failed load of file 'file:///home/tamalet/Music/Classical/Gaetano Nasillo, Luca Guglielmi, Sara Bennici/2010 - Caldara - Sonate a Violoncello Solo/22 - III. Aria_ Non molto allegro.mp3'
  • Version 1735 fixed the duplicate album problem, but drag and drop does not work at all.
  • Its working fine here for me in oneiric and in maverick.

    Can you tell me what operation are you trying?
  • I just cannot drag and drop any song. I can drag albums and artists, but not songs. Running Ubuntu 11.10.
  • Yeah found it!! fix on way
    It should be fixed now in svn revision 1736
  • Working great now. Thanks!
  • Update: If I have only one song (from a cue) on the playlist, when the song reaches the end, it continues playing the next song, the slider stays at the end and time elapsed continues increasing.
  • What mode? I cant reproduce it here Got it. Happens only with add random track disabled
  • Try with revision 1741 please and let me know
  • Much better, but still not perfect. Now when the song ends, the slider goes to the beginning, then moves to the end again and plays 4 seconds of the next song. I have the crossfader disabled.
  • I just tried at home the new version (1741) and it works fine. At the end of some some songs it plays a fraction of a second of the next one, but it may be a problem with my CUE sheet.
  • That is what I was thinking. I tried here and with some cues the start point is not set correctly and some part of the next tracks sounds.
    Also guayadeque dont have a millisecond precision detecting end points to dont waste resources.
  • I just Clementine 1.0 to see how it handles my CUE file. It works fine, and it doesn't do the thing at the end of the file.
  • The latest version (1744) solves the problem, now it works really well. Great job anonbeat!
  • Reading the cue works fine for me. Great addition, thanks!
    Any prospect of implementing the saving of tag edits back to the cue?
  • aia said:

    Reading the cue works fine for me. Great addition, thanks!
    Any prospect of implementing the saving of tag edits back to the cue?



    This was what I wanted at first but to be honest I havent seen much interest testing the cue support so I stopped working on it.
  • I hope I am not late on this!

    The original CUE specifications can be read at CDRWIN user's guide. v3.8 (Appendix A): ftp://209.113.146.144/public_ftp/cdrwin.pdf
    Other good source is HA wiki: http://wiki.hydrogenaudio.org/index.php?title=Cue_sheet

    Basically, there are two kinds of CUEs out there, compliant and no compliant with the above specifications. I would go to being able to read just compliant CUEs, that are the ones used with a cdimage.flac file. Something like foobar does.

    I saw that Tamalet reported this as a bug: "Even when the CUE contains "REM GENRE Classical", the genre is set to Unknown." But its the expected behaviour and I wouldn't go for reading non-specification tags.

    I have a few hundreds CUEs if you still need to see some.
  • I think that if the data is in the cue its better to use it. Its already implemented reading some metadatas.

    Can you test the cue support within guayadeque ?
  • Unless it does something wrong I don't see why you shouldn't support those extra features. As anonbeat said, if the data is there, why not use it?
  • I am happy to test cue support
  • I just discovered Guayadeque as a player able to handle cue files and thus I installed version 0.3.5.
    I have some problems with track infos containing accents (such as é or è). My locales are configured as UTF-8. The cue file is also encoded in UTF-8 and is correctly displayed by the Clementine player for example.
    On the prompt I can read the following error :
    (guayadeque:31099): Pango-WARNING **: Invalid UTF-8 string passed to pango_layout_set_text()

    Otherwise the soft seems very promising to my needs and I don't understand why I didn't find it earlier !
  • @aia: Welcome and let me know anything you find please.

    @eko: Can you send me to anonbeat at gmail dot com some cue files that have problems ?

    Thanks for your help
  • @eko : Can you try with svn revision 1779 please

    Thanks for your help
  • Say I have a .cue/mp3 file that shows up as 10 songs in guayadeque.
    If I select one and "Delete from Drive" it deletes the entire mp3.
    The remaining songs stay in the library (but of course can't be played).

    At the least, I'd expect it to not delete the whole file, possibly with a warning that it could not be deleted, unless there is a better solution.


    Also, is there no way to play/edit/copy etc the whole mp3 file as one song?


    Version: current guayadeque-svn in ubuntu.
  • @mdevine: Thank you for your bug report. The track should not be deleted.

    The way to play/edit/copy as one song is from file browser because you cant see that single mp3 file from collection
  • @mdevine: Can you tell me from where you selected to delete the track from disk ?
  • I had rated a bunch of songs with 1 star (including one from a .cue file), and I have a Dynamic playlist that selects the 1-star songs. I selected the filter, clicked on one of the songs, hit Ctrl-A to select them all, and then selected Delete from Drive from the popup menu.

    Thanks for looking into it!
  • This should be fixed in svn 1802

    Thanks for your bug report

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Sign In with Google Sign In with OpenID

In this Discussion