Coder Social home page Coder Social logo

musicplayerdaemon / mpd Goto Github PK

View Code? Open in Web Editor NEW
2.1K 67.0 337.0 51.17 MB

Music Player Daemon

Home Page: https://www.musicpd.org/

License: GNU General Public License v2.0

Java 0.56% Shell 0.07% C 0.22% C++ 94.26% Python 1.43% Meson 2.91% AIDL 0.01% Kotlin 0.54%
music audio audio-player

mpd's Introduction

Music Player Daemon

http://www.musicpd.org

A daemon for playing music of various formats. Music is played through the server's audio device. The daemon stores info about all available music, and this info can be easily searched and retrieved. Player control, info retrieval, and playlist management can all be managed remotely.

For basic installation instructions read the manual.

Users

Developers

Legal

MPD is released under the GNU General Public License version 2, which is distributed in the COPYING file.

mpd's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mpd's Issues

0.20.7 build failure on macOS: error: target exception specification is not superset of source

0.20.7 fails to build on macOS (tested on 10.10, 10.11, and 10.12).

Build logs here:
https://jenkins.brew.sh/job/Homebrew%20Core%20Pull%20Requests/1419/version=sierra/console
https://jenkins.brew.sh/job/Homebrew%20Core%20Pull%20Requests/1419/version=el_capitan/console
https://jenkins.brew.sh/job/Homebrew%20Core%20Pull%20Requests/1419/version=yosemite/console

The error is

clang++ -std=c++14 -DHAVE_CONFIG_H -I.  -DNDEBUG -I./src -I/usr/local/include -DSYSTEM_CONFIG_FILE_LOCATION='"/usr/local/etc/mpd.conf"'           -Qunused-arguments -pthread -g -O2 -fvisibility=hidden -fno-threadsafe-statics -fmerge-all-constants -ffast-math -ftree-vectorize -ffunction-sections -fdata-sections -Wall -Wextra -Wmissing-declarations -Wshadow -Wpointer-arith -Wcast-qual -Wwrite-strings -Wsign-compare -c -o src/output/plugins/liboutput_plugins_a-OSXOutputPlugin.o `test -f 'src/output/plugins/OSXOutputPlugin.cxx' || echo './'`src/output/plugins/OSXOutputPlugin.cxx
src/output/plugins/OSXOutputPlugin.cxx:690:2: error: target exception specification is not superset of source
        osx_output_delay,
        ^
1 error generated.
make[1]: *** [src/output/plugins/liboutput_plugins_a-OSXOutputPlugin.o] Error 1
make: *** [all] Error 2

[enhancement] Identify "source" library in satellite setup

Some clients like Cantata or MPDroid maintain a local cache of the mpd library. When running multiple MPD servers in a satellite setup, i.e. using the database of one "master" server through the proxy plugin, the clients have to keep this cache updated separately for each server, because they don't know it's actually the same database. Since database updates can take quite some time with large databases, it would be desirable to give clients the possibility to deduplicate their cache.

I therefore suggest to extend the protocol with some client-readable library-ID, which should be the same for proxied libraries, but unique otherwise.

I just stumbled over mounts in the protocol spec, which seem to make this request impossible or at least complicated, but I didn't dig further into the code and the mechanisms behind.

Maybe this request is related to #79.

Parameter "window" does not seem to work when using "find/search"

When I search for songs using the search command, the parameter window does not seem to work.
Everytime when I send the command it returns an error [2@0] {search} incorrect arguments.

My command was:
search artist omfg window 0:10

I am currently running v0.20.9 on ARM (Raspberry Pi 3) and the protocol version seems to be v0.19.0.

MPD 0.20 Does Not support DSD_U32_BE format

Why mpd ( for dop=off) dont use DSD_U32_BE kernel settings (sound/usb/quirks.c):
/* XMOS based USB DACs / switch (chip->usb_id) { case USB_ID(0x27f7, 0x1301): / Wyred DSD Inrerface */ if (fp->altsetting == 2) return SNDRV_PCM_FMTBIT_DSD_U32_BE; break;

And during dsd playback

`cat: /proc/asound/card*
Wyred 4 Sound 32bit 384kHz DSD Interface at usb-1c14000.usb-1, high speed : USB Audio

Playback:
Status: Running
Interface = 2
Altset = 1
Packet Size = 448
Momentary freq = 352795 Hz (0x2c.1970)
Feedback Format = 16.16
Interface 2
Altset 1
Format: S32_LE
Channels: 2
Endpoint: 5 OUT (ASYNC)
Rates: 32000, 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000
Data packet interval: 125 us`

32_LE but must be DSD_U32_BE

Support audio/L24

Is it possible that MPD could support audio/L24. It should be an easy change now that is supports audio/L16.

mpd hangs when manually moving forward/backward on same track, or to next/prior track

Note: Actions performed on both ncmpcpp and ncmpc leads to same results... Using Arch GNU/Linux.

Whenever I move forward/backward on the same playing track (f/b), mpd just hangs, usually so hard, that mpd needs to be restarted to do anything. A workaround is to pause the track, and then move forward/backward, and then play again, most of the time that works...

When playing a track, and then moving to next/prior track (>/<), then mpd hangs. To get it back alive, it's enough to stop mpd (s), and start any track (enter). The pause work around for moving forward/backward on the same track doesn't work, mpd keeps hanging, but stopping mpd (s), and starting any track (enter) works. Stopping mpd (s), to move to the next track as a work around doesn't work, given there's no current track playing, therefore mpd can find the next...

So it's sort of weird that moving around where to play mpd, kinds of makes it hang...

BTW, I have 2 mpd outputs, the pulse output but also a visual fifo, however by keeping only the pulse audio doesn't help, so It's not related to the visual fifo...

It affects all my machines. Most are mintbox 2 with 2 core i5 as processors, intel hda audio and SATA SSD. One laptop is an HP EliteBook 840 G3 with 2 core i7 processors, intel hda audio (or plantronics USB audio headset) and PCIe SSD. One laptop is aToshiba nb505 with Atom 64 processor, intel hda and SATA SSD. I've also tried SATA HD on the mintbox 2 machines...

Regarding what I'm playing, any ogg vorbis file I have experience the same. I don't have mp3 files. It doesn't matter if the files are in local SSD/HD, or network mounted drive. In any case is the same.

  • package version(s)

mpd 0.20.6-1
libmpdclient 2.11-1
libmpd 11.8.17-2
ncmpcpp 0.7.7-4
ncmpc 0.27-1
pulseaudio 10.0-2
linux 4.10.5-1

Note: I recompiled the ncmpcpp package getting the exact same behavior on the EliteBook.

  • config and/or log files etc.

% 'grep' '^[ \s]*[^#]' .config/mpd/mpd.conf
pid_file "/.local/share/mpd/pid"
db_file "
/.local/share/mpd/db"
state_file "/.local/share/mpd/state"
playlist_directory "
/.local/share/mpd/playlists"
music_directory "/music"
sticker_file "
/.local/share/mpd/sticker.sql"
log_file "~/.local/share/mpd/log"
follow_outside_symlinks "yes"
follow_inside_symlinks "yes"
bind_to_address "localhost"
input {
plugin "curl"
}
audio_output {
type "pulse"
name "pulse-audio"
}
audio_output {
type "fifo"
name "VISUAL_FIFO"
path "/tmp/mpd-vasqueja.fifo"
format "44100:16:2"
}
replaygain "album"
volume_normalization "yes"
audio_buffer_size "4096"
buffer_before_play "100%"

Note: I've played with combinations of buffer_before_play, and audio_buffer_size, with no effect...

% 'grep' '^[ \s]*[^#]' .ncmpcpp/config
visualizer_fifo_path = /tmp/mpd-vasqueja.fifo
visualizer_output_name = "VISUAL_FIFO"
visualizer_in_stereo = yes
visualizer_sync_interval = 30
visualizer_type = spectrum
visualizer_look = "+|"

Add support for embedded cover art

Support for embedded covert art is currently missing. Most MPD clients fall back to downloading album covers from web services like amazon. Unfortunately, this can result in wrong or no covers being displayed, especially when listening to uncommon or older releases.

Since it's possible embed cover art in music files using Vorbis comments and ID3v2 tags, ), MPD should be able to read and transmit the embedded image data to the client (possibly as a base64-encoded string).

Command tagtypes does not accept args

Command tagtypes works well but tagtypes all tagtypes enable comment, ... returns wrong number of arguments for tagtypes

Tested on : mpd 0.19.19 mips, mpd 0.20.8 debian x64, mpd 0.20.8 macOS x64

$ mpd -V
Music Player Daemon 0.20.8

Copyright (C) 2003-2007 Warren Dukes <[email protected]>
Copyright 2008-2017 Max Kellermann <[email protected]>
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

Storage plugins:
 local

Decoders plugins:
 [oggflac] ogg oga
 [flac] flac
 [dsdiff] dff
 [dsf] dsf
 [ffmpeg] 16sv 3g2 3gp 4xm 8svx aa3 aac ac3 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
 [pcm]

Filters:


Tag plugins:


Output plugins:
 null fifo alsa oss httpd recorder

Encoder plugins:
 null wave flac

Input plugins:
 file alsa curl ffmpeg

Playlist plugins:
 extm3u m3u pls flac cue embcue

Protocols:
 file:// http:// https:// gopher:// rtp:// rtsp:// rtmp:// rtmpt:// rtmps:// alsa://

Other features:
 epoll iconv inotify ipv6 tcp un
$ telnet 127.0.0.1 6600
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
OK MPD 0.20.0
tagtypes
tagtype: Artist
tagtype: ArtistSort
tagtype: Album
tagtype: AlbumSort
tagtype: AlbumArtist
tagtype: AlbumArtistSort
tagtype: Title
tagtype: Track
tagtype: Name
tagtype: Genre
tagtype: Date
tagtype: Composer
tagtype: Performer
tagtype: Disc
tagtype: MUSICBRAINZ_ARTISTID
tagtype: MUSICBRAINZ_ALBUMID
tagtype: MUSICBRAINZ_ALBUMARTISTID
tagtype: MUSICBRAINZ_TRACKID
tagtype: MUSICBRAINZ_RELEASETRACKID
OK
tagtypes all
ACK [2@0] {tagtypes} wrong number of arguments for "tagtypes"

Path length issue when selecting system playlist

I am running the mpd server (v. 0.20.3) on a raspberry pi 2 under libreelec (8.02).
The problem is that when I try to load files from the system playlist, if the path is too long they do not load (i.e. a playlist has files located with a long-path and a short-path only the short path files load into the playback list). Strangely, I can manually select the long-path files and get them to play fine - so it seems the problem lies with the server playback path loading.

I did not experience this problem with mpd until updating from the openelec Kodi 6.0 (I think it was MPD 0.18) (i.e. the system worked perfectly).

MPD do no to open certain cue file

Good morning.
I use a moode audio.
The player don't open a certain cue file.
If in a cue file (in "FILE" string) is present a non conventional character (ex. ê, ü, ç) the file is not open.
I apologize for my English, sorry.
Thanks
Best regards

Youtube audio/video sound is wrong

Hi,
I'm using youtube-dl (verion 2017.05.23) to take audio url from Youtube to play in MPD (version 0.19.12) that installed in Raspberry Pi (OS is Ubuntu minimal).
Everything worked well until some days ago. MPD now can play Youtube audio url but the sound is crazy (likes reading from crashed disk)
I think about error when decoding from HTTPS but I tried with Vimeo url (https) and it played without any problem
There is no problem when MPD plays audio from others servers and local files
The problem occurs only when play Youtube url

Please help me to fix this problem. Thank you so much...

MusicBrainz tags not being added to DB

Here is a sample mp3 with ID3v2.3 tags:
https://s3.amazonaws.com/www.flactunesapp.com/01+L'Amour+Toujours+1.mp3

Inspecting the file with id3v2 at the console shows that it has the appropriate MusicBrainz tags. For example:

TXXX (User defined text information): (MusicBrainz Artist Id): 09c88499-fd98-4f0e-a4c2-7e763140b611
TXXX (User defined text information): (MusicBrainz Artist Id): 09c88499-fd98-4f0e-a4c2-7e763140b611
TXXX (User defined text information): (MusicBrainz Album Artist Id): 09c88499-fd98-4f0e-a4c2-7e763140b611
TXXX (User defined text information): (MusicBrainz Release Group Id): d71f0ee6-5c77-4adf-99a0-488f3e4502be
TXXX (User defined text information): (MusicBrainz Release Track Id): 3581059b-2f5e-385e-b040-0492cbc7d87c

Importing the file to the MPD database doesn't add this metadata, however. This can be determined by uncompressing the database file and manually inspecting. The basic id3 tag info is there (Artist, Track, etc.) but the MusicBrainz info is never scanned in.

Further, the response to currentsong, for example, will not include any MusicBrainz info.

I've not been able to get any tracks' MusicBrainz info to be recognized by MPD. These are tracks whose metadata has been set by Picard, so this surprises me. However, a scan of past issues shows that this doesn't seem to have come up for anyone else.

Non-exist folder corrupts database update functionality

If a folder in Music Library no longer exist, "update database" will throw an exception, exception: Failed to access ${Folder}: No such file or directory, and the update procedure stops, cannot update database as usual.

Expected behavior: delete those entries in mpd.database(they don't exists any more), or simply pass/ignore.

Sys info: OSX 10.12.4
Mpd ver: Music Player Daemon 0.20.8

[enhancement] Identify library state so clients don't unnecessarily refetch

Clients like Cantata or MPDroid keep a local cache of the library contents. In a large library, refreshing this cache can take quite a while (in which these applications are mostly unresponsive -- yes, their bugs). Thus, it's desirable to only refresh when the library has actually changed.

I therefore suggest adding some "library version id" which is changed (only) on library update and readable by clients. These can store the id and compare it to the future value to reliably recognize (missing) library changes.

Yes, the idle command already notifies about library updates, but this only works when the client is connected without interruption.

Audio playback on macOS (OS X) lags/skips and is unlistenable with Bluetooth audio devices

Copying from my bug (4638) in Mantis:

Category: MPD
Tags: mpd, output, playback
Reproducibility: always
Severity: major
Priority: high
Status: assigned (to jacobvosmaer)

When I have my AirPods or my UE Mini Boom connected to my MacBook Pro via Bluetooth, MPD audio skips/lags - there's a pause in the audio every half second or so. Other audio sources (e.g., iTunes, Spotify, Safari) don't do this, so it doesn't appear to be a systemwide Bluetooth audio issue. I've played around with the buffer size settings in my mpd config file, to no avail.

If I kick the samplerate down, e.g., audio_output_format "22050:*:*", the problem is mostly (but not completely) fixed.

I used to be able to fix this by changing the mixer_type to "hardware" for my audio_output:

audio_output {
             type "osx"
             name "macOS"
             mixer_type "hardware"
}

but this fix isn't working for me anymore.

Steps to Reproduce:
Connect AirPods or other Bluetooth Audio device to MacBook Pro. Play music in MPD. Hear skips.

Current solution:
Use mpd 0.19.x instead of 0.20.x.

Library updating, clang and __attribute__((pure))

While testing 0.20.8 for the FreeBSD ports tree, I noticed that the fix in issue #41 did not fix the library updating problem, i.e. the following still does not work:

  1. rm /path/to/file/in/library/song.ogg
  2. issue mpd update command

mpd will log the file not found exception in its log and stop scanning the library. The removed song continues to be listed as part of the library.
As a workaround, I continue to use https://svnweb.freebsd.org/ports/head/audio/musicpd/files/patch-src_Compiler.h?revision=440334&view=co for now.

0.20.7: build problem on debian 8.8 (armbian)

It works fine with 0.20.6.


g++ -std=c++14 -DHAVE_CONFIG_H -I. -DNDEBUG -I./src -I/usr/include -DSYSTEM_CONFIG_FILE_LOCATION='"/etc/mpd.conf"' -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -pthread -g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -fvisibility=hidden -fno-threadsafe-statics -fmerge-all-constants -ffast-math -ftree-vectorize -ffunction-sections -fdata-sections -Wall -Wextra -Wmissing-declarations -Wshadow -Wpointer-arith -Wcast-qual -Wwrite-strings -Wsign-compare -c -o src/Main.o src/Main.cxx
src/Main.cxx:125:23: error: call to non-constexpr function ‘const _Tp& std::max(const _Tp&, const _Tp&) [with _Tp = unsigned int]’
64 * KILOBYTE);
^
Makefile:14259: recipe for target 'src/Main.o' failed
make[3]: *** [src/Main.o] Error 1
make[3]: Leaving directory '/usr/src/mpdcomp/mpd-0.20.7'
Makefile:4669: recipe for target 'all' failed
make[2]: *** [all] Error 2
make[2]: Leaving directory '/usr/src/mpdcomp/mpd-0.20.7'
dh_auto_build: make -j1 returned exit code 2
debian/rules:145: recipe for target 'override_dh_auto_build' failed
make[1]: *** [override_dh_auto_build] Error 2
make[1]: Leaving directory '/usr/src/mpdcomp/mpd-0.20.7'
debian/rules:128: recipe for target 'binary' failed
make: *** [binary] Error 2
debuild: fatal error at line 1352:
couldn't exec debian/rules:

Can "Publisher" be added to the supported tags?

I know you want to limit the number of supported tags, but I was wondering if "Publisher" could be added. It would be really useful to sort/filter by record label (which the tag is used for).

Launchctl plist does not work on macOS Sierra

using launchctl -w load $PLIST shows no visible error, however mpd is not run and checking console reveals that it has been silently failing instantly after load.
I have installed through homebrew with the --HEAD flag

Add feature to parse cue sheets contents into the MPD database

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.
This feature will allow for a single audio file with a cue sheet (flac, ape, wavpack or whatever other codec cue sheets might support) to be searchable in the database just as individual music files.
Support for CUESHEETS embedded in tags would be nice as well.

Apparent issue seeking with ffmpeg + curl

(Love your work!)

I'm seeing an issue where attempted to seek can lead to the track starting over again. In the log snippet below, I attempt to seek to different offsets in the file. In this example, seeking to 200 seconds seems to work, but seeing to 100 and 50 end up restarting playback from the start of the file. This is on macOS, if it matters.

This is very reproducible, please let me know if you need more information.

$ ❯ mpd --version
Music Player Daemon 0.20.9

Copyright (C) 2003-2007 Warren Dukes <[email protected]>
Copyright 2008-2017 Max Kellermann <[email protected]>
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

Storage plugins:
 local

Decoders plugins:
 [dsdiff] dff
 [dsf] dsf
 [faad] aac
 [fluidsynth] mid
 [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
 [pcm]

Filters:
 libsamplerate

Tag plugins:
 id3tag

Output plugins:
 null fifo openal osx httpd recorder

Encoder plugins:
 null wave

Archive plugins:
 [bz2] bz2

Input plugins:
 file archive curl ffmpeg

Playlist plugins:
 extm3u m3u pls cue embcue

Protocols:
 file:// http:// https:// gopher:// rtp:// rtsp:// rtmp:// rtmpt:// rtmps://

Other features:
 icu ipv6 tcp un

Configuration:

music_directory         "~/Music"
db_file                 "~/.mpd/mpd.db"
log_file                "~/.mpd/mpd.log"
pid_file                "~/.mpd/mpd.pid"
state_file              "~/.mpd/mpdstate"

log_level "verbose"

audio_output {
    type "ao"
    name "Output"
    mixer_type "software"
}

decoder {
    plugin              "mp4ff"
    enabled             "no"
}

bind_to_address         "127.0.0.1"
port                    "6600"

Log snippet:

Jun 21 22:39 : client: [6] process command "seekid 19 100"
Jun 21 22:39 : ffmpeg/mp3: Header missing
Jun 21 22:39 : playlist: queue song 1:"https://10-0-0-105.436fb910c8634392bc3dc7970e2f7c8e.plex.direct:32400/library/parts/3035692/1495681174/file.mp3"
Jun 21 22:39 : ffmpeg: avcodec_send_packet() failed: Invalid data found when processing input
Jun 21 22:39 : client: [6] command returned 0
Jun 21 22:39 : client: [6] process command "status"
Jun 21 22:39 : client: [6] command returned 0
Jun 21 22:39 : state_file: Saving state file /Users/elan/.mpd/mpdstate
Jun 21 22:39 : client: [6] process command "seekid 19 200"
Jun 21 22:39 : playlist: queue song 1:"https://10-0-0-105.436fb910c8634392bc3dc7970e2f7c8e.plex.direct:32400/library/parts/3035692/1495681174/file.mp3"
Jun 21 22:39 : client: [6] command returned 0
Jun 21 22:39 : state_file: Saving state file /Users/elan/.mpd/mpdstate
Jun 21 22:39 : ffmpeg/mp3: demuxer injecting skip 0 / discard 983
Jun 21 22:39 : ffmpeg/mp3: skip 0 / discard 983 samples due to side data
Jun 21 22:39 : ffmpeg/mp3: Could not update timestamps for discarded samples.
Jun 21 22:39 : ffmpeg/mp3: discard 983/1152 samples
Jun 21 22:39 : client: [6] process command "seekid 19 100"
Jun 21 22:39 : playlist: queue song 1:"https://10-0-0-105.436fb910c8634392bc3dc7970e2f7c8e.plex.direct:32400/library/parts/3035692/1495681174/file.mp"
Jun 21 22:39 : client: [6] command returned 0
Jun 21 22:39 : client: [6] process command "seekid 19 50"
Jun 21 22:39 : playlist: queue song 1:"https://10-0-0-105.436fb910c8634392bc3dc7970e2f7c8e.plex.direct:32400/library/parts/3035692/1495681174/file.mp3"
Jun 21 22:39 : client: [6] command returned 0
Jun 21 22:39 : state_file: Saving state file /Users/elan/.mpd/mpdstate
Jun 21 22:39 : client: [6] closed

DSD_U32_BE altsetting Dont work

/* XMOS based USB DACs /
switch (chip->usb_id) {
case USB_ID(0x27f7, 0x1301): /
Wyred DSD Inrerface */

	if (fp->altsetting == 2)
		return SNDRV_PCM_FMTBIT_DSD_U32_BE;
	break;

In settings Dop = Off

lsusb
Bus 001 Device 002: ID 27f7:1301

cat /proc/asound/*
0 [Interface ]: USB-Audio - 32bit 384kHz DSD Interface
Wyred 4 Sound 32bit 384kHz DSD Interface at usb-1c14000.usb-1, high speed
2: [ 0] : control
3: [ 0- 0]: digital audio playback
33: : timer
cat: /proc/asound/Interface: Is a directory
0 snd_usb_audio
00-00: USB Audio : USB Audio : playback 1
G0: system timer : 1000.000us (10000000 ticks)
P0-0-0: PCM playback 0-0-0 : SLAVE
Advanced Linux Sound Architecture Driver Version k4.4.44.

cat: /proc/asound/card0/pcm0p: Is a directory
Wyred 4 Sound 32bit 384kHz DSD Interface at usb-1c14000.usb-1, high speed : USB Audio

Playback:
Status: Running
Interface = 2
Altset = 1
Packet Size = 448
Momentary freq = 352795 Hz (0x2c.1970)
Feedback Format = 16.16
Interface 2
Altset 1
Format: S32_LE
Channels: 2
Endpoint: 5 OUT (ASYNC)
Rates: 32000, 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000
Data packet interval: 125 us

mpd.config
decoder {
plugin "ffmpeg"
enabled "yes"
}

input {
plugin "curl"
}

audio_output {

             type           "alsa"
             name           "Output"
             device         "hw:0,0"
             dop    "no"

mpd: /usr/lib/libstdc++.so.6: version CXXABI 1.3.11 not found (required by mpd)

Hello, I just downloaded MPD and ncmpcpp.
I wanted to start up mpd so I typed mpd in the command line. I got this error:
mpd: /usr/lib/libstdc++.so.6: version CXXABI 1.3.11 not found (required by mpd)
I also tried systemctl start mpd.service and systemctl status mpd.service and still got the error.

systemctl status mpd.serice:

# mpd.service - Music Player Daemon
   Loaded: loaded (/usr/lib/systemd/system/mpd.service; disabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Tue 2017-06-13 15:33:54 CEST; 15min ago
     Docs: man:mpd(1)
           man:mpd.conf(5)
  Process: 16526 ExecStart=/usr/bin/mpd --no-daemon (code=exited, status=1/FAILURE)
 Main PID: 16526 (code=exited, status=1/FAILURE)

Jun 13 15:33:54 K501UW systemd[1]: Starting Music Player Daemon...
Jun 13 15:33:54 K501UW mpd[16526]: /usr/bin/mpd: /usr/lib/libstdc++.so.6: version `CXXABI_1.3.11' not found (required by /usr/bin/mpd)
Jun 13 15:33:54 K501UW systemd[1]: mpd.service: Main process exited, code=exited, status=1/FAILURE
Jun 13 15:33:54 K501UW systemd[1]: Failed to start Music Player Daemon.
Jun 13 15:33:54 K501UW systemd[1]: mpd.service: Unit entered failed state.
Jun 13 15:33:54 K501UW systemd[1]: mpd.service: Failed with result 'exit-code'.

strings /usr/lib/libstdc++.so.6|grep CXXABI gives

CXXABI_1.3
CXXABI_1.3.1
CXXABI_1.3.2
CXXABI_1.3.3
CXXABI_1.3.4
CXXABI_1.3.5
CXXABI_1.3.6
CXXABI_1.3.7
CXXABI_1.3.8
CXXABI_1.3.9
CXXABI_1.3.10
CXXABI_TM_1
CXXABI_FLOAT128
CXXABI_1.3
CXXABI_1.3.2
CXXABI_1.3.6
CXXABI_FLOAT128
CXXABI_1.3.9
CXXABI_1.3.1
CXXABI_1.3.5
CXXABI_1.3.8
CXXABI_1.3.4
CXXABI_TM_1
CXXABI_1.3.7
CXXABI_1.3.10
CXXABI_1.3.3

Last thing, I tried reinstalling the packages but nothing changed.

Anyone has any idea? Thanks

mpd resume after restart not the last play song

I have build the mpd from sources but when i restart the service with systemd it resumed not the last play song, but before if has!

[root@srv:]# mpd --version
Music Player Daemon 0.21

Copyright (C) 2003-2007 Warren Dukes [email protected]
Copyright 2008-2017 Max Kellermann [email protected]
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

Storage plugins:
local

Decoders plugins:
[vorbis] ogg oga
[oggflac] ogg oga
[flac] flac
[faad] aac
[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
[pcm]

Filters:

Tag plugins:
id3tag

Output plugins:
null pulse httpd

Encoder plugins:
null vorbis lame flac

Input plugins:
file ffmpeg

Playlist plugins:
extm3u m3u pls flac

Protocols:
gopher:// rtp:// rtsp:// rtmp:// rtmpt:// rtmps://

Other features:
tcp

Empty metadata when streaming to icecast with opus encoder

Hello.

Consider following audio_output:

audio_output {
    type "shout"
    encoder "opus"
    name "Test Radio"
    host "localhost"
    port "8000"
    mount "/test.opus"
    password "hackme"
    always_on "yes"
    quality "10"
    format "48000:16:2"
    public "yes"
}

With above audio output, streaming to icecast server works totally fine and I verified that data is indeed encoded into opus. Sadly, there is no metadata being announced, which makes it impossible to guess song that is currently being played - only name of the radio station is being displayed.

Since that info is available in other encoders, mainly vorbis, could it be added into opus encoding as well? I'd like to use opus encoder with MPD metadata.

Thank you in advance.

Wiki offline MPD Clientlist

The wiki seems offline
http://mpd.wikia.com/wiki/Clients

As linked here:
https://www.musicpd.org/clients/

Google cache still seems to hold a working version: http://webcache.googleusercontent.com/search?q=cache:_VLN-P8AZ4IJ:mpd.wikia.com/wiki/Clients+&cd=1&hl=en&ct=clnk&gl=nl&client=firefox-b-ab

Edit (for reference):
As @mer2329 down states the way back machine is better for people who want to have the list:
http://web.archive.org/web/20160819151658/http://mpd.wikia.com/wiki/Clients

MPD Crash on Windows 7

Hello guys,

I have problem with MPD server on windows 7 machine. Everything works fine on mpd start - mpd starts without errors, music library discovery is completed without errors. But problem occurs when I want to connect to mpd using local mpc client (or any other client) - mpd crashes.

This is error from Event viewer

Faulting application name: mpd.exe, version: 0.20.5.0, time stamp: 0x00000000

Faulting module name: ntdll.dll, version: 6.1.7601.23572, time stamp: 0x57fd0651

Exception code: 0xc0000374

Fault offset: 0x00000000000bf3e2

Faulting process id: 0x111c

Faulting application start time: 0x01d2c0576e5c722b

Faulting application path: d:\mpd\mpd.exe

Faulting module path: C:\windows\SYSTEM32\ntdll.dll

Report Id: 52523d3f-2ca0-11e7-95b9-463500000031

This is my mpd configuration

music_directory "i:/Data/Music"

log_file "d:/mpd/mpd.log"

db_file "d:/mpd/mpd.db"

playlist_directory "d:/mpd/playlists"

audio_output {

    type "winmm"

    name "Speakers"

    device "Speakers (Realtek High Definition Audio)"

}

audio_output {

    type "httpd"

    name "My HTTP Stream"

    encoder "vorbis" # optional, vorbis or lame

    port "8000"

    # quality "5.0" # do not define if bitrate is defined

    bitrate "128" # do not define if quality is defined

    format "44100:16:1"

}

Googling this problem I have found issue on MantisBT, but it has been removed from the system.

Can you help me with this problem?

MPD v0.20.9 imports wrong song title name with ## number in front

Dear MPD Team,

using mpd v0.20.9 and importing new songs via mpc update (v0.28) imports the songs into the database with their number ## in front of the title (it is part of the full file name).
So using a mpd client-app the title shows off with the number in front.
This was not the case in older versions like v0.19.19 (well i didn't tested every version, i am sorry for this).

Is there an additional feature/flag in the mpd.conf file to toggle this behaviour ? or is it just a bug ?

regards,
captainmetal

Throwing exceptions in methods declared __attribute__((pure)) leads to abort on (at least) FreeBSD

MPD was recently changed to use C++ exceptions and I see aborts on FreeBSD. The simplest way to reproduce is to point at a music library directory with a single directory "foo" under which there's a single file "foo.mp3". Once MPD is running, move "foo" to "bar" and trigger an update. It will crash with an abort.

I tracked this down to the combination of __attribute__((pure)) and the clang compiler which FreeBSD uses. I guess it's optimising away the exception handling. gcc seems to not make the same optimisation.

There may be other cases. I've just worked around by redefining gcc_pure (which MPD defines to apply the attribute) to no-op.

0.20.8: assertion for 0-filled mp3 file

Probably due to a broken download, I had a file lying around "foo.mp3" that just contained 0 bytes, about 4MB of them.
When I added that to the play queue, I got an assertion error in the log and mpd exited:

assertion "stream->md_len + md_len - si.main_data_begin <= MAD_BUFFER_MDLEN" failed: file "layer3.c", line 2633, function "mad_layer_III"

MPD output to DSP script

Hey
Is there a way to route the MPD first through a script running this audio enhancement tool, then to ALSA?

Visually, at present
phone -> mpd on pi -> alsa -> usb audio

required
phone -> mpd on pi -> script using seal gem -> alsa -> usb audio

I did check this, frankly, I cant get it how to configure to a script?

Using a Pi 3 with USB DAC.

.adx file support

.adx is an ADPCM file format ripped from video games. ffmpeg supports decoding this. It would be nice if mpd could play these.

How do enable soundcloud playlist_plugin?

I am facing two problems.

  1. I read the manual and I added a playlist_plugin block to my mpd.conf, still this didn't show up when I run mpd -V
  2. Assuming I have the soundcloud plugin installed, where exactly do I fetch the soundcloud:// URL from? In particular, how can I get my user's stream?

I have this in my mpd.conf

playlist_plugin {
  name "soundcloud"
  enabled "true"
}

Here's the output of my mpd -V.

Music Player Daemon 0.20.9

Copyright (C) 2003-2007 Warren Dukes <[email protected]>
Copyright 2008-2017 Max Kellermann <[email protected]>
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

Storage plugins:
 local

Decoders plugins:
 [dsdiff] dff
 [dsf] dsf
 [faad] aac
 [fluidsynth] mid
 [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
 [pcm]

Filters:
 libsamplerate

Tag plugins:
 id3tag

Output plugins:
 null fifo openal osx httpd recorder

Encoder plugins:
 null wave

Archive plugins:
 [bz2] bz2

Input plugins:
 file archive curl ffmpeg

Playlist plugins:
 extm3u m3u pls cue embcue

Protocols:
 file:// http:// https:// gopher:// rtp:// rtsp:// rtmp:// rtmpt:// rtmps://

Other features:
 icu ipv6 tcp un

[feature request] Add lame encoder to python build libs script.

I follow the documentation to build a static binary for Windows system, found out that right now lame encoder was not included in the python build libs script.

It would be nice to be able to build MPD binary with lame encoder built-in by default build.py script.

error: call to non-constexpr function ‘const _Tp& std::max

Wshadow -Wpointer-arith -Wcast-qual -Wwrite-strings -Wsign-compare -MT src/output/libmpd_a-Source.o -MD -MP -MF src/output/.deps/libmpd_a-Source.Tpo -c -o src/output/libmpd_a-Source.o test -f 'src/output/Source.cxx' || echo './'src/output/Source.cxx
src/Main.cxx:129:23: error: call to non-constexpr function ‘const _Tp& std::max(const _Tp&, const _Tp&) [with _Tp = unsigned int]’
64 * KILOBYTE);
^
Makefile:14264: recipe for target 'src/Main.o' failed
make[1]: *** [src/Main.o] Error 1
make[1]: *** Waiting for unfinished jobs....

mpd ver
http://www.musicpd.org/download/mpd/0.20/mpd-0.20.7.tar.xz

playlist limits

To ask about the limits of playlist, this message appears and stops the playlist, if it could be raised(Cantata):

MPD ha informado del siguiente fallo: Playlist is too large

MPD ha informado del siguiente fallo: Failed to decode /home/user/...

Windows builds

Please update mpd's Windows build to the latest version. Thanks

Better communicate streaming problems

I've been debugging some MPD playback issues on Orange Pi/Armbian for quite some time now, and while after many experiments I think these are caused not by MPD, but by a buggy Wi-Fi stack, I wish MPD had some better problem reporting in the first place. Currently the bug manifests itself in MPD starting to pause the playback for half a second each second (I can share an audio clip of such buggy playback, if needed), and this can continue for several minutes, but even with verbose logging there's nothing in the log except periodic 'state_file: Saving state file /var/lib/mpd/state' messages.

What I wish to have had in the verbose logs is:

  • Events when the buffer is underrun or is below some threshold
  • Periodic information on how full the audio buffer is

It also makes sense to report these as events to which clients could subscribe and act accordingly.

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.