MusicPlayerDaemon / MPD

Music Player Daemon
https://www.musicpd.org/
GNU General Public License v2.0
2.18k stars 351 forks source link

Improvement to documentation: How do you use cue files? #1848

Closed bjohas closed 1 year ago

bjohas commented 1 year ago

Hello all,

The documentation says

playlist_plugin {
    name "m3u"
    enabled "true"
}

and

Name: Description

name: The name of the plugin

enabled yes|no: Allows you to disable a playlist plugin without recompiling. By default, all plugins are enabled.

as_directory yes|no: With this option, a playlist file of this type is parsed during database update and converted to a virtual directory, allowing MPD clients to access individual entries. By default, this is only enabled for the cue plugin.

In my music directory, I have

file.mp4
file.cue

Therefore, I would expect the following to access cue files:

playlist_plugin {
    name "cue"
    enabled "true"
}

followed by

mpc update
mpc rescan

However, the following command doesn't show any directories produced:

mpc listall -f '%file%' 

Would it be possible to update the documentation to explain the idea and location of the virtual directory a bit more, and perhaps add an example for the cue plugin?

MaxKellermann commented 1 year ago

Your configuration does nothing, because all it says is that the "cue" plugin shall be enabled, but that's already the default. The command you issued doesn't show directories; it shows only songs. Read https://www.musicpd.org/help/ before you ask for help. Your question lacks information that is necessary to help you.

MaxKellermann commented 1 year ago

Would it be possible to update the documentation to explain the idea and location of the virtual directory a bit more, and perhaps add an example for the cue plugin?

Here I don't know what kind of documentation you want to have. The location of the virtuel directory is the location of the playlist file. How could an example look like? Why don't you write documentation and submit it as a PR?

bjohas commented 1 year ago

Hi @MaxKellermann thank you for the quick response. The output of mpd --version is below. There's nothing suspicious in the logs. It shows I'm on version 0.22.6 (on Raspberry Pi). Should I try to install from source? (This may be a little beyond me...)

The files are in my music dir in mydir. The command mpc ls mydir works and shows

dir/file.m4b
dir/file.cue
dir/file.cue

The command mpc ls mydir/file.cue doesn't return anything (neither error, nor data; nothing in the logs). The actual listing of the music dir in the file system shows:

dir/file.m4b
dir/file.jpg
dir/file.cue

So I guess one of the 'cue' files above might be the virtual directory? But listing it doesn't yield anything - how do I access the virtual directory generated by the cue file?

The cue file looks like this:

FILE "file.m4b" MP4
TRACK 1 AUDIO
  TITLE "Chapter 01"
  INDEX 01 0:0:00
TRACK 2 AUDIO
  TITLE "Chapter 02"
  INDEX 01 12:15:42
...

I'd be very happy to make a PR on the documentation with a simple recipe on how to check use of cue files.

Output of mpd --version:

Music Player Daemon 0.22.6 (0.22.6)
Copyright 2003-2007 Warren Dukes <...>
Copyright 2008-2018 Max Kellermann <...>
This is free software; see the source for copying conditions.  There is NO
warranty; not even MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Database plugins:
 simple proxy upnp

Storage plugins:
 local smbclient udisks nfs curl

Neighbor plugins:
 smbclient upnp udisks

Decoders plugins:
 [mad] mp3 mp2
 [mpg123] mp3
 [vorbis] ogg oga
 [oggflac] ogg oga
 [flac] flac
 [opus] opus ogg oga
 [sndfile] wav aiff aif au snd paf iff svx sf voc w64 pvf xi htk caf sd2
 [audiofile] wav au aiff aif
 [dsdiff] dff
 [dsf] dsf
 [hybrid_dsd] m4a
 [faad] aac
 [mpcdec] mpc
 [wavpack] wv
 [modplug] 669 amf ams dbm dfm dsm far it med mdl mod mtm mt2 okt s3m stm ult umx xm
 [mikmod] amf dsm far gdm imf it med mod mtm s3m stm stx ult uni xm
 [sidplay] sid mus str prg P00
 [wildmidi] mid
 [fluidsynth] mid
 [adplug] amd d00 hsc laa rad raw sa2
 [ffmpeg] 16sv 3g2 3gp 4xm 8svx aa3 aac ac3 adx afc aif aifc aiff al alaw amr anim apc ape asf atrac au aud avi avm2 avs bap bfi c93 cak cin cmv cpk daud dct divx dts dv dvd dxa eac3 film flac flc fli fll flx flv g726 gsm gxf iss m1v m2v m2t m2ts m4a m4b m4v mad mj2 mjpeg mjpg mka mkv mlp mm mmf mov mp+ mp1 mp2 mp3 mp4 mpc mpeg mpg mpga mpp mpu mve mvi mxf nc nsv nut nuv oga ogm ogv ogx oma ogg omg opus psp pva qcp qt r3d ra ram rl2 rm rmvb roq rpl rvc shn smk snd sol son spx str swf tak tgi tgq tgv thp ts tsp tta xa xvid uv uv2 vb vid vob voc vp6 vmd wav webm wma wmv wsaud wsvga wv wve rtp:// rtsp:// rtsps://
 [gme] ay gbs gym hes kss nsf nsfe sap spc vgm vgz
 [pcm]

Filters:
 libsamplerate soxr

Tag plugins:
 id3tag

Output plugins:
 shout null fifo sndio pipe alsa ao oss openal pulse jack httpd recorder

Encoder plugins:
 null vorbis opus lame wave flac

Archive plugins:
 [bz2] bz2
 [zzip] zip
 [iso] iso

Input plugins:
 file io_uring archive alsa tidal qobuz curl ffmpeg smbclient nfs mms cdio_paranoia

Playlist plugins:
 extm3u m3u pls xspf asx rss soundcloud flac cue embcue

Protocols:
 file:// alsa:// cdda:// ftp:// ftps:// gopher:// hls+http:// hls+https:// http:// https:// mms:// mmsh:// mmst:// mmsu:// nfs:// qobuz:// rtmp:// rtmps:// rtmpt:// rtmpts:// rtp:// rtsp:// rtsps:// scp:// sftp:// smb:// srtp:// tidal://

Other features:
 avahi dbus udisks epoll icu inotify ipv6 systemd tcp un

mpd.conf:

music_directory     "/home/user_name/mpd_storage/mpd/music"
playlist_directory      "/home/user_name/mpd_storage/mpd/playlists"

playlist_plugin {
    name "cue"
    enabled "true"
    as_directory "yes"
}

db_file         "/home/user_name/mpd_storage/mpd/tag_cache"

log_file            "/home/user_name/mpd_storage/mpdlogs/log.txt"
state_file          "/home/user_name/mpd_storage/mpd/state"
sticker_file                   "/home/user_name/mpd_storage/mpd/sticker.sql"
bind_to_address         "localhost"
port                "6601"
log_level           "notice"
input {
        plugin "curl"
}

decoder {
        plugin                  "hybrid_dsd"
        enabled                 "no"
}
decoder {
        plugin        "wildmidi"
        enabled       "no"
        #config_file "/etc/timidity/timidity.cfg"
}

audio_output {
    type        "alsa"
    name        "My ALSA Device"
    device      "hw:sndrpihifiberry"    # optional
    mixer_type      "software"  # optional
}
filesystem_charset      "UTF-8"
MaxKellermann commented 1 year ago

Your MPD version is very old and unsupported.

bjohas commented 1 year ago

Hi @MaxKellermann, I've updated using the packages here: https://bobrathbone.com/raspberrypi/compiling_mpd.html and am now on version Music Player Daemon 0.23.13 (0.23.13) (see below).

I've done a rescan of the library (mpc rescan), but I get the same issue as above, i.e., as above the files are in my music dir in mydir. With the new version, the command mpc ls mydir works and shows

dir/file.m4b
dir/file.cue

(only one .cue file this time). The command mpc ls mydir/file.cue now returns an error:

MPD error: No such directory

The command mpc add mydir/file.cue returns:

error adding dir/file.cue: No such directory

The command mpc add mydir/file.m4b works, but only adds the one m4b.

The files in on drive are as before:

dir/file.m4b
dir/file.jpg
dir/file.cue

The cue file looks like this as indicated above.

Any tips?

mpd --version:

Music Player Daemon 0.23.13 (0.23.13)
Copyright 2003-2007 Warren Dukes <...>
Copyright 2008-2021 Max Kellermann <...>
This is free software; see the source for copying conditions.  There is NO
warranty; not even MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Database plugins:
 simple proxy upnp

Storage plugins:
 local udisks nfs curl

Neighbor plugins:
 upnp udisks

Decoders plugins:
 [mad] mp3 mp2
 [mpg123] mp3
 [vorbis] ogg oga
 [oggflac] ogg oga
 [flac] flac
 [opus] opus ogg oga
 [sndfile] wav aiff aif au snd paf iff svx sf voc w64 pvf xi htk caf sd2
 [audiofile] wav au aiff aif
 [dsdiff] dff
 [dsf] dsf
 [hybrid_dsd] m4a
 [faad] aac
 [mpcdec] mpc
 [wavpack] wv
 [modplug] 669 amf ams dbm dfm dsm far it med mdl mod mtm mt2 okt s3m stm ult umx xm
 [mikmod] amf dsm far gdm imf it med mod mtm s3m stm stx ult uni xm
 [sidplay] sid mus str prg P00
 [wildmidi] mid
 [fluidsynth] mid
 [adplug] amd d00 hsc laa rad raw sa2
 [gme] ay gbs gym hes kss nsf nsfe rsn sap spc vgm vgz
 [ffmpeg] 16sv 3g2 3gp 4xm 8svx aa3 aac ac3 adx afc aif aifc aiff al alaw amr anim apc ape asf atrac au aud avi avm2 avs bap bfi c93 cak cin cmv cpk daud dct divx dts dv dvd dxa eac3 film flac flc fli fll flx flv g726 gsm gxf iss m1v m2v m2t m2ts m4a m4b m4v mad mj2 mjpeg mjpg mka mkv mlp mm mmf mov mp+ mp1 mp2 mp3 mp4 mpc mpeg mpg mpga mpp mpu mve mvi mxf nc nsv nut nuv oga ogm ogv ogx oma ogg omg opus psp pva qcp qt r3d ra ram rl2 rm rmvb roq rpl rvc shn smk snd sol son spx str swf tak tgi tgq tgv thp ts tsp tta xa xvid uv uv2 vb vid vob voc vp6 vmd wav webm wma wmv wsaud wsvga wv wve rtp:// rtsp:// rtsps://
 [pcm]

Filters:
 libsamplerate soxr

Tag plugins:
 id3tag

Output plugins:
 shout null fifo sndio pipe alsa ao openal pulse jack httpd snapcast recorder

Encoder plugins:
 null vorbis opus lame twolame wave flac shine

Archive plugins:
 [bz2] bz2
 [zzip] zip
 [iso] iso

Input plugins:
 file archive alsa qobuz curl ffmpeg nfs mms cdio_paranoia

Playlist plugins:
 extm3u m3u pls xspf asx rss soundcloud flac cue embcue

Protocols:
 file:// alsa:// cdda:// ftp:// ftps:// gopher:// hls+http:// hls+https:// http:// https:// mms:// mmsh:// mmst:// mmsu:// nfs:// qobuz:// rtmp:// rtmps:// rtmpt:// rtmpts:// rtp:// rtsp:// rtsps:// scp:// sftp:// smb:// srtp://

Other features:
 avahi dbus udisks epoll icu inotify ipv6 systemd tcp un
bjohas commented 1 year ago

Hi @MaxKellermann , as this issue also occurs with the latest version, would it be possible to reopen the issue? Many thanks!