<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Audio on cat /dev/snapshot</title><link>https://rumpf.eu/michael/tags/audio/</link><description>Recent content in Audio on cat /dev/snapshot</description><generator>Hugo -- 0.154.5</generator><language>en</language><lastBuildDate>Mon, 10 Jun 2013 21:06:00 +0200</lastBuildDate><atom:link href="https://rumpf.eu/michael/tags/audio/index.xml" rel="self" type="application/rss+xml"/><item><title>Music Player Daemon on Raspberry Pi</title><link>https://rumpf.eu/michael/posts/2013-06-10-music-player-daemon-on-raspberry-pi/</link><pubDate>Mon, 10 Jun 2013 21:06:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2013-06-10-music-player-daemon-on-raspberry-pi/</guid><description>&lt;p&gt;This is not yet another &amp;ldquo;how to configure &lt;a href="http://www.musicpd.org/"&gt;MPD&lt;/a&gt; on the Raspberry Pi&amp;rdquo; article,
because there are a lot of excellent &lt;a href="http://www.musicpd.org/"&gt;MPD&lt;/a&gt; HOWTOs already available:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://hempeldesigngroup.com/embedded/stories/raspberry-pi-setup-as-mpd-sever/"&gt;http://hempeldesigngroup.com/embedded/stories/raspberry-pi-setup-as-mpd-sever/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.t3node.com/blog/streaming-audio-with-mpd-and-icecast2-on-raspberry-pi/"&gt;http://www.t3node.com/blog/streaming-audio-with-mpd-and-icecast2-on-raspberry-pi/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://lesbonscomptes.com/pages/raspmpd.html"&gt;http://lesbonscomptes.com/pages/raspmpd.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;The first optimization is to avoid using a separate streaming solution like icecast&lt;/p&gt;
&lt;p&gt;MPD has its own, built-in streaming plugin which can be configured like this:&lt;/p&gt;</description></item><item><title>Debugging UPnP/DLNA traffic to a Sony LCD TV</title><link>https://rumpf.eu/michael/posts/2012-10-08-debugging-upnpdlna-traffic-to-sony-lcd/</link><pubDate>Mon, 08 Oct 2012 14:27:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2012-10-08-debugging-upnpdlna-traffic-to-sony-lcd/</guid><description>&lt;p&gt;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
&lt;a href="https://play.google.com/store/apps/details?id=com.bubblesoft.android.bubbleupnp&amp;amp;hl=en"&gt;BubbleUPnP&lt;/a&gt; does a
good job here as playing music works out of the box. Initial tests with the &lt;a href="http://4thline.org/projects/cling/"&gt;Cling Java library&lt;/a&gt;
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.&lt;/p&gt;</description></item><item><title>m3player version 0.1.3 released</title><link>https://rumpf.eu/michael/posts/2011-08-20-m3player-version-013-released/</link><pubDate>Sat, 20 Aug 2011 01:45:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2011-08-20-m3player-version-013-released/</guid><description>&lt;p&gt;&lt;a href="http://www.jcoderz.org/m3dditiez/wiki/m3ddity-player"&gt;m3player version 0.1.3&lt;/a&gt; has the following new features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;m3player can be run as a daemon with &lt;code&gt;-d&lt;/code&gt; or &lt;code&gt;--daemon&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;The name of the UPnP Media Renderer can be configured by &lt;code&gt;-n&lt;/code&gt; or &lt;code&gt;--name&lt;/code&gt;. This is done by copying
the XML files from &lt;code&gt;/usr/share/m3player&lt;/code&gt; to &lt;code&gt;/var/lib/m3player&lt;/code&gt; and filtering place-holders in some of the files.&lt;/li&gt;
&lt;li&gt;The version of the MediaRenderer device can be configured by &lt;code&gt;-r&lt;/code&gt; or &lt;code&gt;--root&lt;/code&gt;. The default is &lt;code&gt;MediaRendererV2.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;The UPnP server can be bound to a network interface, specified by &lt;code&gt;-i&lt;/code&gt; or &lt;code&gt;--interface&lt;/code&gt;. Example: eth0&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The help output shows an overview of all the parameters available:&lt;/p&gt;</description></item><item><title>Turning m3player into a daemon</title><link>https://rumpf.eu/michael/posts/2011-08-11-turning-m3player-into-daemon/</link><pubDate>Thu, 11 Aug 2011 21:29:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2011-08-11-turning-m3player-into-daemon/</guid><description>&lt;p&gt;As most of the public HOWTOs seem to be either incomplete or a bit outdated and because I
have no copy of the book
&lt;a href="http://www.amazon.com/Programming-Environment-Addison-Wesley-Professional-Computing/dp/0201563177"&gt;Advanced Programming in the UNIX Environment&lt;/a&gt;,
Instead I found the following microHOWTOs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.microhowto.info/howto/cause_a_process_to_become_a_daemon.html"&gt;Cause a process to become a daemon&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.microhowto.info/howto/cause_a_process_to_become_a_daemon_in_c.html"&gt;Cause a process to become a daemon in c&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;By following the steps, described there I was able to turn
&lt;a href="http://www.jcoderz.org/m3dditiez/wiki/m3ddity-player"&gt;m3player&lt;/a&gt; into a daemon.
The daemon behavior can be turned on by passing the &lt;code&gt;-d&lt;/code&gt; or &lt;code&gt;--daemon&lt;/code&gt; 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 &lt;code&gt;/var/log/m3player.log&lt;/code&gt; or to the location, specified by
the &lt;code&gt;-l&lt;/code&gt; or &lt;code&gt;--logfile&lt;/code&gt; switch.&lt;/p&gt;</description></item><item><title>m3player version 0.1.2 released</title><link>https://rumpf.eu/michael/posts/2011-08-01-m3player-version-012-released/</link><pubDate>Mon, 01 Aug 2011 01:22:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2011-08-01-m3player-version-012-released/</guid><description>&lt;p&gt;I just released version 0.1.2 of &lt;a href="http://www.jcoderz.org/m3dditiez/wiki/m3ddity-player"&gt;m3player&lt;/a&gt;. The new version includes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Compilation and packaging for OpenWRT&lt;/li&gt;
&lt;li&gt;Installation of the ipkg package on the TL-WR1043ND device&lt;/li&gt;
&lt;li&gt;Support for command-line parameters:
&lt;ul&gt;
&lt;li&gt;config - Path to the config file (&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;/etc/m3player/m3player.ini&lt;/span&gt;)&lt;/li&gt;
&lt;li&gt;pidfile - Location of the PID file (&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;/var/run/m3player.pid&lt;/span&gt;)&lt;/li&gt;
&lt;li&gt;xmlfolder - Location of the descriptor XML files (&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;/usr/share/m3player&lt;/span&gt;)&lt;/li&gt;
&lt;li&gt;name - Set the name of the player instance (Hostname or m3player)&lt;/li&gt;
&lt;li&gt;filename - The name of the root device file (&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;MediaRenderedV1.xml&lt;/span&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Support for an INI file (&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;/etc/m3player/m3player.ini&lt;/span&gt;)&lt;/li&gt;
&lt;li&gt;Fixes to the GStreamer pipeline to work in the stripped down OpenWRT environment with only a few plugins&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When launching the &lt;a href="http://www.jcoderz.org/m3dditiez/wiki/m3ddity-player"&gt;m3player&lt;/a&gt; it starts playing the first entry from the preset list.&lt;/p&gt;</description></item><item><title>Music player fully integrated into the OpenWRT build process</title><link>https://rumpf.eu/michael/posts/2011-07-25-music-player-fully-integrated-into/</link><pubDate>Mon, 25 Jul 2011 00:44:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2011-07-25-music-player-fully-integrated-into/</guid><description>&lt;p&gt;The &lt;a href="http://www.jcoderz.org/m3dditiez/wiki/m3ddity-player"&gt;m3ddity-player&lt;/a&gt; and the GUPnP libraries,
on which the player depends upon, can now easily be build for OpenWRT, just follow the steps below:&lt;/p&gt;
&lt;p&gt;1. Checkout the trunk version of OpenWRT&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;svn co svn://svn.openwrt.org/openwrt/trunk
cd trunk
&lt;/code&gt;&lt;/pre&gt;&lt;ol start="2"&gt;
&lt;li&gt;Add the &lt;a href="http://www.jcoderz.org/m3dditiez/"&gt;jCoderZ&lt;/a&gt; package repository to the list of feeds &lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;cp feeds.conf.default feeds.conf
echo &amp;#34;src-svn jcoderz &amp;#34; \ 
     &amp;#34;http://www.jcoderz.org/svn/m3dditiez/trunk/&amp;#34; \ 
&amp;#34;openwrt/packages&amp;#34; &amp;gt;&amp;gt; feeds.conf
./scripts/feeds update 
./scripts/feeds install -a
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;3. Run menuconfig and select the packages as described
&lt;a href="http://dev-snapshot.blogspot.com/2011/07/building-openwrt-image-optimized-for.html"&gt;here&lt;/a&gt;&lt;/p&gt;</description></item><item><title>jCoderZ.org</title><link>https://rumpf.eu/michael/posts/2011-07-24-jcoderzorg/</link><pubDate>Sun, 24 Jul 2011 13:31:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2011-07-24-jcoderzorg/</guid><description>&lt;p&gt;The OpenWRT music player, which I have blogged about recently, has found a 
home at &lt;a href="https://github.com/jCoderZ/m3player"&gt;https://github.com/jCoderZ/m3player&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Quest for a USB audio device part 2...</title><link>https://rumpf.eu/michael/posts/2011-07-19-quest-for-usb-audio-device-part-2/</link><pubDate>Tue, 19 Jul 2011 20:21:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2011-07-19-quest-for-usb-audio-device-part-2/</guid><description>&lt;p&gt;The new audio devices arrived but unfortunately they show the same glitches as the devices I tested
&lt;a href="http://dev-snapshot.blogspot.com/2011/07/seeking-cheap-usb-audio-device-that.html%22"&gt;before&lt;/a&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="%22http://www.logilink.eu/showproduct/UA0053.htm"&gt;USB Soundkarte mit Virtual 3D Soundeffekt LogiLink®&lt;/a&gt;
This device is also based on the chipset &amp;ldquo;Tenx Technology, Inc. TP6911 Audio Headset&amp;rdquo; and has the same
issues as the previous device (USB Sound Audio), i.e. the output is far too loud.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="%22http://www.logilink.eu/showproduct/UA0078.htm"&gt;USB Soundkarte mit Virtual 7.1 Soundeffekt LogiLink®&lt;/a&gt;
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 &amp;ldquo;C-Media Electronics, Inc. Audio Adapter&amp;rdquo;
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.&lt;/p&gt;</description></item><item><title>Seeking a cheap USB audio device for the TP-Link TL-WR1043ND</title><link>https://rumpf.eu/michael/posts/2011-07-13-seeking-cheap-usb-audio-device-that/</link><pubDate>Wed, 13 Jul 2011 22:48:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2011-07-13-seeking-cheap-usb-audio-device-that/</guid><description>&lt;p&gt;I&amp;rsquo;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.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. USB Sound Audio (Amazon)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://2.bp.blogspot.com/-qWqnVo0dbP8/Th4AOAsdarI/AAAAAAAAElw/m7Hwk4flU3U/s1600/TP6911.jpg"&gt;&lt;img loading="lazy" src="http://2.bp.blogspot.com/-qWqnVo0dbP8/Th4AOAsdarI/AAAAAAAAElw/m7Hwk4flU3U/s200/TP6911.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The device gets detected under Linux as Tenx Technology, Inc. TP6911 Audio Headset. The following warnings are reported by &lt;/p&gt;
&lt;p&gt;dmesg when connecting the device:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;usb_audio: Warning! Unlikely big volume range (=13568), cval-&amp;gt;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-&amp;gt;res is probably wrong.
usb_audio: [5] FU [Mic Capture Volume] ch = 1, val = 0/6096/1
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;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%.
&lt;strong&gt;2. auvisio Visual Sound Technologies (pearl.de)&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Make ALSA settings persistent on OpenWRT</title><link>https://rumpf.eu/michael/posts/2011-07-13-make-alsa-settings-persistent-on/</link><pubDate>Wed, 13 Jul 2011 21:36:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2011-07-13-make-alsa-settings-persistent-on/</guid><description>&lt;p&gt;The command-line tool alsamixer can be used to control the volume of the USB audio output:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://2.bp.blogspot.com/-EHJmq1aKXrI/Th3tP-sqcLI/AAAAAAAAEls/SGdLN4yRHo4/s1600/alsamixer.png"&gt;&lt;img loading="lazy" src="http://2.bp.blogspot.com/-EHJmq1aKXrI/Th3tP-sqcLI/AAAAAAAAEls/SGdLN4yRHo4/s320/alsamixer.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Unfortunately the setting does not survive a reboot. Another tool from the alsa-utils package can be used for this purpose: alsactl&lt;/p&gt;
&lt;p&gt;After setting the volume with alsamixer, the following command persists the current setting in the file-system for device 0:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;alsactl -f /etc/alsa/alsa0.state store 0
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;During startup, the state must be restored again. This can be achieved by adding the following command to /etc/rc.local:&lt;/p&gt;</description></item><item><title>Building an OpenWRT image optimized for MP3 audio playback</title><link>https://rumpf.eu/michael/posts/2011-07-13-building-openwrt-image-optimized-for/</link><pubDate>Wed, 13 Jul 2011 20:36:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2011-07-13-building-openwrt-image-optimized-for/</guid><description>&lt;p&gt;For the audio-renderer, see revious posts, I decided to switch to the trunk version of OpenWRT.&lt;br&gt;
I experienced some issues with the USB audio hardware and the trunk version should prove that there
are no issues with the USB audio drivers which are already fixed.&lt;br&gt;
The following configuration is for the bleeding-edge version, some module names have changed so it
cannot be applied to the Kamikaze (10.3) version without modification (e.g. block-mount contains the
overlay functionality and kmod-fs-ext4 has support for all ext file-system versions).&lt;br&gt;
&lt;strong&gt;NOTE: This configuration has stripped all modules which are not necessary for USB audio and Wireless LAN.&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Radio presets</title><link>https://rumpf.eu/michael/posts/2011-06-27-radio-presets/</link><pubDate>Mon, 27 Jun 2011 23:26:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2011-06-27-radio-presets/</guid><description>&lt;p&gt;One important feature for the audio renderer is the support for &lt;strong&gt;presets&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;I do not want to search for my mobile phone in order to select a music source when I enter the kitchen in the morning. The use-case where you turn on your analog radio and the tuning wheel is right at the position of your favorite radio station is unbeatable simple.&lt;/p&gt;
&lt;p&gt;Therefore the audio-renderer has a list of MP3 streaming URLs where the first one will be played upon startup of the process. The channels can be switched by sending a signal to the server process:&lt;/p&gt;</description></item><item><title>UPnP audio renderer released</title><link>https://rumpf.eu/michael/posts/2011-06-27-upnp-audio-renderer-released/</link><pubDate>Mon, 27 Jun 2011 23:05:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2011-06-27-upnp-audio-renderer-released/</guid><description>&lt;p&gt;A very early version of my UPnP audio-renderer had been released on Gitorius &lt;a href="https://gitorious.org/gupnp-audio-renderer"&gt;https://gitorious.org/gupnp-audio-renderer&lt;/a&gt;
(&lt;strong&gt;Update 2011-08-01&lt;/strong&gt;: It has been renamed to m3player and been moved to &lt;a href="http://www.jcoderz.org/m3dditiez/wiki/m3ddity-player"&gt;here&lt;/a&gt;).
It implements the necessary parts of the UPnP MediaRenderer specification.&lt;/p&gt;
&lt;p&gt;The implementation is based on excellent frameworks like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.gupnp.org/"&gt;GUPnP&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://gstreamer.freedesktop.org/"&gt;GStreamer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://developer.gnome.org/glib/"&gt;GLib&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The initial target for the renderer is the &lt;a href="http://www.openwrt.org/"&gt;OpenWRT&lt;/a&gt; platform (see previous articles about a WiFi music player).
I decided to use C instead of Vala (that was a decision against Rygel) as the memory constraints are very limited and I need to save
memory whereever possible. Although my C language skills are a bit rusty, I did not want to learn another language. Additionally, the
usage of Vala would increase the effort to port the whole vala stuff to the OpenWRT build-system. Luckily GStreamer and GLib are already
available on OpenWRT.&lt;/p&gt;</description></item><item><title>Compile a development version of GUPnP from HEAD</title><link>https://rumpf.eu/michael/posts/2011-06-13-compile-development-version-of-gupnp/</link><pubDate>Mon, 13 Jun 2011 17:53:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2011-06-13-compile-development-version-of-gupnp/</guid><description>&lt;p&gt;Follow the commands below in order to setup a local environment for working with the latest development version of the GUPNP framework.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;mkdir $(pwd)/base
git clone http://git.gnome.org/browse/gssdp
cd gssdp
./autogen.sh --prefix=$(pwd)/../base --exec-prefix=$(pwd)/../base
make &amp;amp;&amp;amp; make install
cd ..
git clone http://git.gnome.org/browse/gupnp
cd gupnp
PKG_CONFIG_PATH=$(pwd)/../base/lib/pkgconfig ./autogen.sh --prefix=$(pwd)/../base --exec-prefix=$(pwd)/../base
cd ..
git clone http://git.gnome.org/browse/gupnp-tools
cd gupnp-tools
PKG_CONFIG_PATH=$(pwd)/../base/lib/pkgconfig ./autogen.sh --prefix=$(pwd)/../base --exec-prefix=$(pwd)/../base
cd ..
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Run the following commands for setting the environment to use the fresh compiled libraries instead of the OS provided ones (Empathy under Ubuntu 11.04 uses an older version of the GUPNP libraries. I ran into segmentation faults because the libraries did not match):&lt;/p&gt;</description></item><item><title>Building a custom OpenWRT image for the TP-Link TL-WR1043ND</title><link>https://rumpf.eu/michael/posts/2011-06-12-building-custom-openwrt-image-for-tp/</link><pubDate>Sun, 12 Jun 2011 16:36:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2011-06-12-building-custom-openwrt-image-for-tp/</guid><description>&lt;p&gt;[&lt;img loading="lazy" src="http://1.bp.blogspot.com/-My4aqk4nBL4/TfSaA1akJ5I/AAAAAAAAEkg/GpWbxKqabLs/s200/IMAG0292.jpg"&gt;]
[&lt;img loading="lazy" src="http://3.bp.blogspot.com/-eqzxpdUiMJ8/TfSaC26_9QI/AAAAAAAAEkk/5lGKpLAiEvs/s200/IMAG0293.jpg"&gt;]&lt;/p&gt;
&lt;p&gt;For my low-budget wireless music player I had to tweak OpenWRT in order to support my setup. For initial tests I decided to use the &lt;a href="http://mpd.wikia.com/"&gt;Music Player Daemon&lt;/a&gt; and &lt;a href="http://www.underbit.com/products/mad/"&gt;madplay&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The following steps describe how to setup OpenWRT on the TP-Link WR1043ND. It assumes that the OpenWRT 10.03.1-rc4 firmware has already been installed, that the IP address of the router has been set to 192.168.0.111, and that an USB audio, as well as that an USB stick has been connected to the device via an USB hub.&lt;/p&gt;</description></item><item><title>Low-budget WiFi Music Player</title><link>https://rumpf.eu/michael/posts/2011-06-12-low-budget-wifi-music-player/</link><pubDate>Sun, 12 Jun 2011 13:17:00 +0200</pubDate><guid>https://rumpf.eu/michael/posts/2011-06-12-low-budget-wifi-music-player/</guid><description>&lt;p&gt;After searching the net for quite a while I could not find a pure wireless music player for small money. In case
you want to equip multiple rooms in your house with a music player it will cost you a lot of money. All products
on the market come with a lot of features, of which most are not necessary. The following links show interesting
hacks on how to build your own WiFi music player based on OpenWRT:&lt;/p&gt;</description></item></channel></rss>