The year is 2026 and I got my very first Raspberry Pi, to use it as an audio player! π
The plan was to set a Raspberry Pi up as a headless audio player (supposedly moOde audio player can be controlled by a web-interface) that should replace one (or maybe two) makeshift solutions of mine:
- an old smartphone is connected to a HiFi system with a cable from its 3.5mm headphone jack (yes, it’s an old phone…)
to the RCA plug of the tuner/amplifier and streams via WiFi music from either the internet or my NAS.
It works, but: Akku UI - In my office, I have a Mini/Micro HiFi system, and since radio via coax cable is a thing of the past, I also need to get my music and podcasts from other sources. Again: A cable goes into the AUX IN of the Mini/Micro HiFi system and the other end (3.5mm headphone jack) I plug each day into the headphone plug of my tablet and also stream via WiFi music/podcasts from either the internet or my NAS Disadvantes: UI on/off… It should my current makeshift solutions, where I use an old smartphone and my current tablet for audio/music playing/streaming.
Update 2026-09-27: Over a month later and I’m still very happy with this solution.
One thing that is still on my TODO list: I want to enable the (audio-only) playback from YouTube: I have many podcasts/interviews/mostly-audio videos on my watchlist…
(1) Setup
- Hardware
- db-tronic Raspberry Pi 3 B+ 1GB Starter Set — Raspberry Pi 3 B+ (1 GB RAM), 64 GB SD card & USB SD card reader/writer, Power Supply, Heatsink, Case, HDMI cable (4K)
- InnoMaker HiFi DAC HAT for Raspberry Pi — PCM5122, 384kHz/32bit, RCA (Cinch) & 3.5mm headphone output plugs
- Geekworm Raspberry Pi HAT Protective Acrylic Case
- Software
- Raspberry Pi Imager
- moOde audio player — No need to download it from here: One can select it from within the “Raspberry Pi Imager”: See next section for details.
Bringing it together:
- Assemble the hardware (Raspberry Pi + DAC HAT + Case)
- Download, install and start the “Raspberry Pi Imager” application on a (different) computer
- Select the image for moOde audio player from the Media Player OS section of the “Raspberry Pi Imager” and configure the rest of the image.
Attention: It’s recommended to enable SSH, maybe also provide WiFi credentials and to remember the hostname and username for later (see point 4)! - Write the configured image to a SD card and insert it to the RasPi1.
- Start the Raspberry Pi for the first time by supplying power2 to the Micro-USB port (the device does not have a On/Off button!).
This will take a few minutes and the RasPi will automatically reboot multiple times (usually 3) during its initial start. - If you haven’t attached a monitor (via HDMI) and keyboard (via USB), you can login to the RasPi via SSH3.
(2) Configuration
(2.1) Raspberry Pi
InnoMaker HiFi DAC HAT for Raspberry Pi
After mechanically assembling the HAT with the RasPi, the DAC HAT needs so further adjustments:
Enable the InnoMaker RPI HIFI DAC audio module as a Allo Boss DAC
Based on How to set up InnoMaker RPI HIFI DAC hat for your Headless Raspberry Pi
-
SSH into the RasPi
> ssh <user>@<host> -
Open the configuration file with a text editor:
> sudo nano /boot/firmware/config.txtThere, add this line (under the all section):
[all] dtoverlay=allo-boss-dac-pcm512x-audioSave and exit (nano: Ctrl+O β Enter β Ctrl+X)
-
Reboot the Raspberry Pi, then SSH again into the RasPi
> sudo reboot ... > ssh <user>@<host> -
Find the output device number for your DAC:
> aplay -lFor InnoMaker HiFi DAC HAT for Raspberry Pi you need to look for the BossDAC listing.
(Note: Accoording to the article above, sometimes this command will return an error instead of a list of devices β See How to set up InnoMaker RPI HIFI DAC hat for your Headless Raspberry Pi for details on how to troubleshoot that. -
This is just to confirm the device number of the DAC: Should be the same as before:
> cat /proc/asound/cards -
Set the device as the default soundcard
This will create and open the (empty) sound config file:> sudo nano /etc/asound.confThere, add this line (replace
<CARD_NUMBER>with the number from step 4!pcm.!default { type hw card <CARD_NUMBER> } ctl.!default { type hw card <CARD_NUMBER> }Save and exit (nano: Ctrl+O β Enter β Ctrl+X)
-
Reboot the Raspberry Pi, then SSH again into the RasPi
> sudo reboot ... > ssh <user>@<host> -
Access the Raspberry Pi configuration to change the default audio settings
> sudo raspi-config- Select System Options β Audio
- Select BossDAC from the output list, then select OK
(The number here should match the one we’ve seen before; if not: reboot & try this step again)
-
A final reboot
> sudo reboot
Adjust Default Output Volume
Based on How to use AlsaMixer to adjust the default output volume on your DAC Hat
AlsaMixer is a command-line audio mixer tool for the Advanced Linux Sound Architecture (ALSA). Using AlsaMixer you can adjust various audio settings of your DAC Hat or soundcard, including volume levels, balance, and other audio-related parameters, for both input and output audio devices.
- SSH into the RasPi:
> ssh <user>@<host> - Start the AlsaMixer interface (a TUI program):
> alsamixer - We’re only interested in the setting for the digital gain at this moment:
Look for the vertical bar titled “Digital”.
It’s probably in the red zone; that is typical, but can be the cause of the audio sounding a bit distored (e.g. when using a headphone).
Thus we reduce it a bit:- Use the right-arrow key on your keyboard to select the “Digital” bar.
- Use the down-arrow key to lower the value (for a start: out of the red zone, around 89-90 (audio can be streamed while adjusting the values).
- Exit the AlsaMixer by pressing
Esc.
Disable LEDs
The LEDs can be a bit distracting at night; thus:
- Open the web interface of the Moode Audio Player
- Click on the main icon in the upper right corner: [m]
- Go to Configure β System β Power management
- Slide “LED0 (Activity)” and “LED1 (Power)” to off.
There is no software/settings way to disable the LED on the InnoMaker HiFi DAC HAT for Raspberry Pi.
(2.2) Moode Audio Player
Select the correct Audio Output Device
- Open the web interface of the Moode Audio Player
- Click on the main icon in the upper right corner: [m]
- Go to Configure β Audio β Audio Output
- For Output Device select from the drop down list the entry that matches the card number (see above) and has the name “BossDAC”.
Add a NAS as a library
- Open the web interface of the Moode Audio Player
- Click on the main icon in the upper right corner: [m]
- Go to Configure β Library
- Remote NAS Sources: Click the “Create” button
- Enter:
Type: SMB (Samba) Path <Name-of-the-NAS>/<Name-of-the-Share> UserID: <User-on-that-NAS-with-read-access> Password: <Password-of-that-User-on-the-NAS> Name: <A "friendly" display name> - Click on [m] β Update Library. That may take a while, depending on the amount of data on the NAS…
Manage Radio Stations
To add custom radio stations…
-
either use the WebUI: [m] β Library β Radio β [+] β New Station…
-
or put *.pls files directly into
/var/lib/mpd/music/RADIO.
Each station has its own file playlist file with this structure; example: “NDR Info.pls”:[playlist] File1=http://icecast.ndr.de/ndr/ndrinfo/live/mp3/128/stream.mp3 Title1=NDR Info Length1=-1 NumberOfEntries=1 Version=2Note: One must provide the actual URL to the stream (e.g. a *.mp3 file), not a container (like *.pls or *.m3u)!
See below on how then to copy such prepared files to the RasPi!
Playlists for your collection
The Moode audio player processes its library on the basis of tags (e.g. MP3 tags); if those are missing, a workaround is to use playlists instead.
- Generate playlist files (*.m3u) for your collection (Batch and Powershell script examples: Playlists fΓΌr den moOde audio player generieren lassen).
- Copy them into
/var/lib/mpd/playlists(by default there are already two files:Default Playlist.m3uandFavorites.m3u).
(3) Usage
Moode Audio Player Web-UI
On a PC, one should be able to get to the Web interface via the hostname and a *.local suffix, e.g. http://<Hostname-of-the-RasPi>.local (not HTTPS!).
Important: Old versions of Android don’t support mDNS (Multicast DNS), the technology behind the *.local suffixes), only since Android 13 it can use such addresses!
So if hostname.local isn’t possible, one must know and use the IP address of the Raspberry Pi instead!
Update (Gotcha): I had to shut the RasPi down for a while and cut the power. A day or two later, I booted it up again.
But now, the hostname.local didn’t work anymore for some reason; not on the PC and not on the newer Android device.
The (same old) IP address still worked. I also tested it with just hostname: Didn’t work either — at first…!
A few days later, I tested it again, and now:
- IP address: Still worked fine.
- http://
.local: Still no luck - http://
: Now worked too, again (at least on the PC and newer Android device). As before.
Update: 2026-09-18: Just tested it, for some reason also on the old Android tablet (that couldn’t handle *.local):
It still can’t reach http://.local — but http:// now worked here too… strange…
Hmm… nothing else changed during the downtime; I didn’t restart the router or switches; weird…
Starting up & Shutting down the RasPi
A Raspberry Pi sadly does not have a On/Off button! It turns on as soon as it gets power via its Micro-USB power port and turns off as soon as the power is cut.
That also means that an operating system does not get an advance warning (so that it could wind down: Stopping processes, preparing the filesystem, etc.).
And since it’s not very healthy (for the filesystem or SD card) to do this so abruptly, do this before cutting the power:
- Either user the web interface of the moOde audio player: Click on the main icon in the upper right corner ([m]) and there click β» Power
- Or do it from a shell:
sudo shutdown -h now
Transfer files from the RasPi to a Window machine (or vice versa) via SCP
(For example *.pls files for radio stations, as described above.)
From the Windows machine:
(. = Current working directory, e.g. C:\foo)
> scp username@raspi:/var/lib/mpd/music/RADIO/'Radio Station.pls' .
From within a SSH session with the RasPi to the local Windows machine:
This requires that the remote can access the local computer and that a SSH server is running on the local machine!
username@raspi:/var/lib/mpd/music/RADIO $ scp 'Radio Station.pls' username@WINDOWS:/C:/temp
π§ TODO
Backup/Restore
[m] β Configure β System β Backup/Restore
Use YouTube playlists like radio stations
- YT Play API: “Using this API you can keep playlists of YouTube content and you can listen directly from Moode as if they were radio stations.”
- (Parent Repository: Radio Manager for Moode 6.7: “Scripts allow the bulk management of user radio stations”)
-
Note on backing up the SD card’s content: At the moment, the essential adjustments after the basic installation are described on this page; so even if the SD card goes kaputt, it shouldn’t be too much hassle to set up a new one. But, for a possible future, where I maybe customized much more of the system and don’t want to document or repeat all the the steps: A tutorial (in german!) on how to save/copy the content of a RasPi SD card ↩︎
-
Note on power supplies for Raspberry Pi 3 (Model B and B+): Such a RasPi requires 5V/2.5A, with a Micro-USB connector.
Higher output (e.g. 5.1V) can help to compensate slight voltage drops across the USB cable.
Chargers like those for smartphones or tablets are not ideal, because even if they can provide the required amounts of Volt and Ampere, they may not do so in a stable way. That’s not a problem for devices like a smartphone or tablet, because those can compensate fluctuating values by its in-built rechargeable battery – but a Raspberry Pi doesn’t have that and can react a bit iffy! ↩︎ -
Note on SSH: Use
ssh <username>@<hostname>
When I tried it without specifiying the username (i.e. I was only usingssh <hostname>), I got a “Permission denied. Please try again” error.
(although I was asked for a username and password!). ↩︎
Film & Television (58)
Hardware (2)
How-To (75)
Journal (18)
Miscellaneous (4)
News & Announcements (21)
On Software (12)
Projects (27)