Music Player Daemon on Raspberry Pi

This is not yet another “how to configure MPD on the Raspberry Pi” article, because there are a lot of excellent MPD HOWTOs already available: http://hempeldesigngroup.com/embedded/stories/raspberry-pi-setup-as-mpd-sever/ http://www.t3node.com/blog/streaming-audio-with-mpd-and-icecast2-on-raspberry-pi/ http://lesbonscomptes.com/pages/raspmpd.html However, I experienced a bottleneck with the configuration described by those articles. The load was slightly over 1 but it was high enough to cause some stuttering every 30 seconds. The first optimization is to avoid using a separate streaming solution like icecast MPD has its own, built-in streaming plugin which can be configured like this: ...

June 10, 2013 · 2 min · Michael Rumpf

Debugging UPnP/DLNA traffic to a Sony LCD TV

The issue I have is that my Sony LCD TV seems to be very picky regarding the UPnP/DLNA protocol when playing media from a control point to the television. The Android App BubbleUPnP does a good job here as playing music works out of the box. Initial tests with the Cling Java library to play music does not work out of the box. Therefore I wanted to debug the HTTP SOAP protocol in order to see where the differences are. ...

October 8, 2012 · 3 min · Michael Rumpf

m3player version 0.1.3 released

m3player version 0.1.3 has the following new features: m3player can be run as a daemon with -d or --daemon The name of the UPnP Media Renderer can be configured by -n or --name. This is done by copying the XML files from /usr/share/m3player to /var/lib/m3player and filtering place-holders in some of the files. The version of the MediaRenderer device can be configured by -r or --root. The default is MediaRendererV2.xml The UPnP server can be bound to a network interface, specified by -i or --interface. Example: eth0 The help output shows an overview of all the parameters available: ...

August 20, 2011 · 1 min · Michael Rumpf

Turning m3player into a daemon

As most of the public HOWTOs seem to be either incomplete or a bit outdated and because I have no copy of the book Advanced Programming in the UNIX Environment, Instead I found the following microHOWTOs: Cause a process to become a daemon Cause a process to become a daemon in c By following the steps, described there I was able to turn m3player into a daemon. The daemon behavior can be turned on by passing the -d or --daemon switches to the command line. When the daemon switch is specified, all output (stdout and stderr) gets redirected into the log file at the default location /var/log/m3player.log or to the location, specified by the -l or --logfile switch.

August 11, 2011 · 1 min · Michael Rumpf

m3player version 0.1.2 released

I just released version 0.1.2 of m3player. The new version includes: Compilation and packaging for OpenWRT Installation of the ipkg package on the TL-WR1043ND device Support for command-line parameters: config - Path to the config file (/etc/m3player/m3player.ini) pidfile - Location of the PID file (/var/run/m3player.pid) xmlfolder - Location of the descriptor XML files (/usr/share/m3player) name - Set the name of the player instance (Hostname or m3player) filename - The name of the root device file (MediaRenderedV1.xml) Support for an INI file (/etc/m3player/m3player.ini) Fixes to the GStreamer pipeline to work in the stripped down OpenWRT environment with only a few plugins When launching the m3player it starts playing the first entry from the preset list. ...

August 1, 2011 · 1 min · Michael Rumpf

Music player fully integrated into the OpenWRT build process

The m3ddity-player and the GUPnP libraries, on which the player depends upon, can now easily be build for OpenWRT, just follow the steps below: 1. Checkout the trunk version of OpenWRT svn co svn://svn.openwrt.org/openwrt/trunk cd trunk Add the jCoderZ package repository to the list of feeds cp feeds.conf.default feeds.conf echo "src-svn jcoderz " \ "http://www.jcoderz.org/svn/m3dditiez/trunk/" \ "openwrt/packages" >> feeds.conf ./scripts/feeds update ./scripts/feeds install -a 3. Run menuconfig and select the packages as described here ...

July 25, 2011 · 1 min · Michael Rumpf

jCoderZ.org

The OpenWRT music player, which I have blogged about recently, has found a home at https://github.com/jCoderZ/m3player

July 24, 2011 · 1 min · Michael Rumpf

Quest for a USB audio device part 2...

The new audio devices arrived but unfortunately they show the same glitches as the devices I tested before: USB Soundkarte mit Virtual 3D Soundeffekt LogiLink® This device is also based on the chipset “Tenx Technology, Inc. TP6911 Audio Headset” and has the same issues as the previous device (USB Sound Audio), i.e. the output is far too loud. USB Soundkarte mit Virtual 7.1 Soundeffekt LogiLink® The sound is good but as with the previous device a clicking noise is heard during reboot, power-off, power-on, plug-in/out. The chipset is “C-Media Electronics, Inc. Audio Adapter” So both adapters use the same chipsets and show the same issues. It seems as if there are not too many different cheap USB audio devices on the market, just rebranded stuff from the same manufacturer. ...

July 19, 2011 · 1 min · Michael Rumpf

Seeking a cheap USB audio device for the TP-Link TL-WR1043ND

I’m seeking for a USB audio device that works with the TP-Link TL-WR1043ND under OpenWRT. Until now I tried 2 different devices with unacceptable issues. 1. USB Sound Audio (Amazon) The device gets detected under Linux as Tenx Technology, Inc. TP6911 Audio Headset. The following warnings are reported by dmesg when connecting the device: usb_audio: Warning! Unlikely big volume range (=13568), cval->res is probably wrong. usb_audio: [2] FU [PCM Playback Volume] ch = 2, val = 2560/16128/1 usb_audio: Warning! Unlikely big volume range (=6096), cval->res is probably wrong. usb_audio: [5] FU [Mic Capture Volume] ch = 1, val = 0/6096/1 The issue with this device is that the volume level is so high that it cannot be controlled. Between mute and 10% the output sounds distorted. At 20% the volume level is at its maximum, with no audible change between 20% and 100%. 2. auvisio Visual Sound Technologies (pearl.de) ...

July 13, 2011 · 2 min · Michael Rumpf

Make ALSA settings persistent on OpenWRT

The command-line tool alsamixer can be used to control the volume of the USB audio output: Unfortunately the setting does not survive a reboot. Another tool from the alsa-utils package can be used for this purpose: alsactl After setting the volume with alsamixer, the following command persists the current setting in the file-system for device 0: alsactl -f /etc/alsa/alsa0.state store 0 During startup, the state must be restored again. This can be achieved by adding the following command to /etc/rc.local: ...

July 13, 2011 · 1 min · Michael Rumpf