Building a Lyrion/Logitech Media Server using a Raspberry Pi and HifiBerry DAC

Recipe for building a media server using Lyrion Media Server (formerly Logitech Media Server) and a HifiBerry DAC card, Spotify, YouTube and a USB CD/DVD player.
Originally I started this page as a log book for myself. There is so much to configure!

Alternatives (in most cases much easier to configure than what is presented here): PicorePlayer and Max2Play.

 

How to install the Operating System

  • Install the latest Raspbian OS using Raspberry Pi Imager (this depends upon the version of the Raspberry Pi).
  • Upgrade the software to the latest version:
    • sudo apt-get update
      sudo apt-get upgrade     (this might take a while)
  • Enabling a VNC server (RealVNC or TigerVNC) on the Raspberry Pi is not easy any more unfortunately.
  • Download a VNC client for your computer (e.g. RealVNC) and connect remotely if you wish.
  • I personally like editor leafpad: sudo apt-get install leafpad
  • Turn off Bluetooth because it is not needed.

 

How to install Logitech Media Server

 

How to install the SqueezeLite music player

  • sudo apt-get install squeezelite
  • sudo leafpad /etc/init.d/squeezelite
  • # Add at the beginning of this file:
  • SL_SOUNDCARD=hw:CARD=sndrpihifiberry
  • SB_SERVER_IP="127.0.0.1"
  • #SB_EXTRA_ARGS="-a 40:4::1 -b 20000:6000 -p 80 -v"

 

  • # Configure type of audio card:
  • sudo leafpad /boot/config.txt
  • # Add line (depending upon audio card type one of):
  • dtoverlay=hifiberry-dac   (for old DSP card)
  • dtoverlay=hifiberry-dacplus
  • dtoverlay=hifiberry-dacplushd
  • dtoverlay=hifiberry-dacplusadcpro

 Reboot

  

How to install Samba (file sharing)

Install and configure Samba using this link or this link:

  • sudo apt-get update
  • sudo apt-get upgrade
  • sudo apt-get install samba samba-common-bin
  • sudo smbpasswd -a pi
  • (you are asked to type a password twice. I use the same password as for the pi)
  • Reboot the system.

 

Running multiple servers

When running multiple servers, the UID's must be different.
So if you have cloned the image, you can run into troubles.
Remove the uuid's in the following file. They will be recreated at startup.

Edit /var/lib/squeezeboxserver/prefs/server.prefs
Remove lines: "_ts_server_uuid:" and  "_server_uuid: xxxxxxxxxxx-xxx"

  

How to automatically reboot the system every night

Rebooting the system at night (e.g. at 5 am) can improve stability:

  • Enter command: crontab -e
    Add as the last line:
    0 5 * * * sudo /sbin/shutdown -r now

 

Increase lifespan of SD card

  • sudo service dphys-swapfile stop
  • sudo systemctl disable dphys-swapfile
  • sudo apt-get purge dphys-swapfile

 

How to prepare a large (256Gb) internal SD  card

Personally I prefer a separate SD card for the software and an USB memory stick for the music.

Instead you can use a large internal SD card.
Even 512 Gb SD cards are cheap enough to buy now.
Suppose a configured image file of 8 Gb is available on your Windows PC.
With Win32 Disk Imager, the image is copied to the SD disk.
With Windows Disk Management you can now see a FAT boot partition of 42 Mb.
Next to that you will see a 7.4 Gb partition (containing the Raspbian OS).
And next to that you will see an unallocated partition of 231 Gb.
The unallocated partition must be formatted, preferably with NTFS on Windows, otherwise with exFAT on a Mac.
When formatted, put the SD card in the Raspberry.
You can find the name of the disk/device using the "df" command.
Create folder for mount point on the :
sudo mkdir /media/internaldisk
sudo chmod 777 /media/internaldisk
sudo mkdir /media/internaldisk/Music
sudo chmod 777 /media/internaldisk/Music
sudo leafpad /etc/fstab

Add line:
/dev/mmcblk0p3 /media/internaldisk ntfs-3g defaults,nofail 0 0

if the partition was formatted with exFAT, then add the following line instead:
/dev/mmcblk0p3 /media/internaldisk vfat defaults,nofail 0 0

Add section for network share:

sudo leafpad /etc/samba/smb.conf
Add section:
-----------------------------------------------
[InternalDisk]
comment=Raspberry Pi Media Share
path=/media/internaldisk/Music
browseable=Yes
writeable=Yes
only guest=no
create mask=0777
directory mask=0777
public=yes
-----------------------------------------------
After Logitech Media Server has started, you can configure the new media folder ("media/internaldisk").

 

My basic setting page looks like this (support internal dis and external USB disk):

 

How to prepare for an external USB disk/Memory stick

    • For attaching an SSD disk you need a conversion cable SATA to USB. The SSD might take too much current from the Raspberry, so a powered HUB might be needed. The cheapest way is to use a memory stick (fast enough).
    •  Install NTFS support:
      • sudo apt-get install ntfs-3g

 Prepare the SSD/USB disk e.g. on Windows:

    • Format the disk with NTFS
    •  Note: a FAT formatted disk does not support permissions.
    • Attach a SSD/USB disk to the USB port
  •  If you do not have a Windows PC, you can format the disk with NTFS on the Raspberry Pi as follows:
    • sudo mkfs.ntfs /dev/sda1 -L usbdisk -f
  • Start the system
  • The disk is automatically mounted under: /media/pi/Media. Unfortunately, the permission cannot be changed this way.
  • sudo umount /media/pi/Media
  • Disable auto mounting in the File Manager:
  • Edit --> Preferences --> Volume Management
    Uncheck:
    - Mount mountable Volume ...
    - Mount removable media ..
  • Create a mount point:
  • sudo mkdir /media/usbdisk
  • sudo chmod 777 /media/usbdisk
  • sudo mkdir /media/usbdisk/Music
  • sudo chmod 777 /media/usbdisk/Music
  • Edit fstab: sudo leafpad /etc/fstab
  • Add line (the nofail option means that you can boot when the USB drive is not attached):
    /dev/sda1 /media/usbdisk ntfs-3g defaults,nofail 0 0
  • If you did not format with NTFS, but with exFAT, you have to change "ntfs-3g" to "vfat".
  • Reboot the system. Now the SSD disk is mounted with the right permission.
  • Add some music from your PC to the SSD/USB disk using the share "Media".
  • Find the IP address of your system: ifconfig
  • Now start any browser on any PC at home and type as URL (use the correct IP address): http://192.168.2.xxx:9000
  • You can now configure Logitech Media Server with the location of the music (/media/pi) 

I found, that when having two USB memory sticks, one was not always mounted.
A solution may be, is to add the line boot_delay=3 to /boot/config.txt

Add section for network share:
sudo leafpad /etc/samba/smb.conf
Add section:
-----------------------------------------------
[UsbDisk]
comment=Raspberry Pi Media Share
path=/media/usbdisk/Music
browseable=Yes
writeable=Yes
only guest=no
create mask=0777
directory mask=0777
public=yes
-----------------------------------------------

If you have a second USB stick, you can create folders and a share in the same way (e.g. /media/usbdisk2).

  • sudo mkdir /media/usbdisk2
  • sudo chmod 777 /media/usbdisk2
  • sudo mkdir /media/usbdisk2/Music
  • sudo chmod 777 /media/usbdisk2/Music
  • Add line to /etc/fstab:
    /dev/sdb1 /media/usbdisk2 ntfs-3g defaults,nofail 0 0

 

How to add a new USB memory stick

If you want to add or replace the USB disk/memory stick, while the software on Raspberry already has been configured:

  • Format the disk with NTFS on Windows. Otherwise format with exFAT (e.g. on a Mac).
  • Create folder "Music" on this disk

If the disk was formatted with exFAT, you have to modify file "/etc/fstab":

  • sudo leafpad /etc/fstab
  • Modify line: 
    /dev/sda1 /media/usbdisk ntfs-3g defaults,nofail 0 0
  • to:
    /dev/sda1 /media/usbdisk vfat defaults,nofail 0 0

 

How to use a NAS for storage

Instead of using local storage for the music, you could use an existing NAS.
Suppose the location of the NAS is: //192.168.2.8/Music
Preferrably you should use a name instead of the IP number.
Now enter the following commands to test the connection:

  • sudo mkdir /media/nas
  • sudo chmod 777 /media/nas
  • sudo mount -t cifs -o user=guest,password=guest  //192.168.2.8/Music /media/nas

You can now configure Logitech Media Server with the location of the music (/media/nas)

To mount the NAS automatically at boot time do:

  • sudo leafpad /etc/fstab
    Add line:
    //192.168.2.8/Music /media/nas cifs defaults,nofail,user=guest,password=guest,uid=pi,gid=pi,x-systemd.automount 0 0

 

How to configure Spotty plugin

You need Spotify Premium account to get this working.
You can install the Spotty plugin.

But first you have to install (probably not necessary anymore):

  • sudo apt-get install libnet-ssleay-perl
  • sudo apt-get install libio-socket-ssl-perl

 

Spotty search history file location 

To change or reorder the search history: 

sudo leafpad /var/lib/squeezeboxserver/prefs/plugin/spotty.prefs

After modifying: reboot the Raspberry. 

 

How to control Spotify

After installing the Spotty plugin, there are two ways to use Spotify:

  • From your app (e.g. iPeng, Squeezer, Squeeze Ctrl) that you use to control Logitech Media Server.
  • From your Spotify app on your tablet or mobile phone.
    The Spotify app offers more functions.
    It allows you to stream the music to your Logitech Media player.
    You can configure this as follows:
    From any browser: use the IP address of the raspberry followed by ":9000". E.g.: 192.168.2.18:9000
    Click on Settings button (bottom right).
    Select second tab (Music System)
    In the second dropdown box, select: Spotty Spotify for Squeezebox
    Enable the checkbox.

 

How to configure the YouTube plugin

With the YouTube plugin you can play a lot of music without commercials and for free.
You can enter a search string and there is a history of what you have played.
For configuration, using your Google account, you need to get a:

  • YouTube API access key
  • Client ID
  • Client secret password

In the Settings of this plugin it is described how to get these. But it may not be easy.

  • Start Google Chrome and login
  • Goto: https://console.developers.google.com/
  • Create new project (fill any name)
  • Dashboard --> + ENABLE APIS AND SERVICES
  • YouTube Data API v3 --> Enable
  • Credentials
  • Select: YouTube Data API v3
  • Select: Webbrowser (e.g. node.js, Tomcat)
  • Select: Public data
  • Now you will see your API key
  • Done
  • Now for getting Client ID and secret password:
  • Dashboard --> YouTube Data API v3
  • Credentials -->  Credentials in APIs & Services
  • + CREATE CREDENTIALS
  • Create consent screen: external
  • OAUTH CLIENT ID
  • Application type: Web application
  • Create
  • Now the Client ID and secret are shown

 There are (too) many sub menus in this plugin.

You can disable some submenus as follows:

  • sudo leafpad /var/lib/squeezeboxserver/cache/InstalledPlugins/Plugins/YouTube/Plugin.pm

Comment out all lines in method line 151 except "Music Search" and "Recently Played".
You also decide to reorder the menus (e.g. "Recently Played" on top).

 

How to configure Jivelite

JiveLite is a graphical user interface for LMS. It runs on a 7" Raspberry Pi touchscreen.
You can configure the icons by pressing on an icon a bit longer.
In Settings you bring back hidden icons to the main screen.
A Home button is missing unfortunately, but the function is available by pressing long on the backbutton.

When using JiveLite on another Raspberry Pi (not where the LMS is installed), it is probably handy to use PiCorePlayer that has buildin suppport for JiveLite.

sudo apt-get install git libsdl1.2-dev libsdl-ttf2.0-dev libsdl-image1.2-dev libsdl-gfx1.2-dev libexpat1-dev

git clone http://luajit.org/git/luajit-2.0.git
cd luajit-2.0
make
sudo make install
sudo ldconfig

git clone https://github.com/ralph-irving/jivelite
cd jivelite
make
cd ..
sudo mv ./jivelite /opt

cd /opt/jivelite/bin

sudo leafpad ./jivelite.sh

Add contents:
_________________________
#!/bin/bash
export SDL_VIDEO_ALLOW_SCREENSAVER=1
/opt/jivelite/bin/jivelite
_________________________

sudo chmod +x ./jivelite.sh

The latest Raspbian OS uses "mutter" window manager instead of openbox.
With mutter you cannot set an application to fullscreen (at least I could not find out how).
So, change the window manager back to openbox:

  • sudo leafpad /etc/xdg/lxsession/LXDE-pi/desktop.conf
  • window_manager=openbox_lxde_pi

Reboot

In order to create file openbox/lxde-pi-rc.xml, start obconf and change something.

obconf

Modify something in order to create file: openbox/lxde-pi-rc.xml
E.g. Mouse: change Double click time and back.
and press Close button


Information about autostart can be found here:
https://www.sparkfun.com/news/2779#:~:text=The%20easiest%20way%20to%20do,It%20then%20looks%20for%20.

leafpad /home/pi/.config/openbox/lxde-pi-rc.xml

Insert the following section within the "applications" section:
____________________________________

   <application name="jivelite">
    <decor>no</decor>
    <fullscreen>yes</fullscreen>
  </application>
____________________________________

mkdir .config/autostart

leafpad .config/autostart/jivelite.desktop
Add the following text:
________________________
[Desktop Entry]
Type=Application
Name=JiveLite
Exec=/opt/jivelite/bin/jivelite.sh
________________________

When configuring JiveLite, select: grid skin 800x480
You can change the skin in: Settings --> Display --> select skin

Show time when playing stopped:
Settings --> Display > Screensaver --> When stopped > some clock
You can also adjust the delay (default 30 seconds).

By default, a screen saver is enabled in the operating system. 
This can be disabled in the Raspberry Pi Configuration: Display --> disable Screen blanking

 

SqueezeLite-X

From the Microsoft Store, install SqueezeLite-X.
It looks the same as the browser.

 

How to configure a CD player

You can attach a USB DVD player/burner to play audio CD's.
The advantage is that you do not need a preamplifier to switch between the Raspberry and CD player.
We found however that such a PC DVD player is a bit noisy sometimes and not always reliable. But you can give it a try.
The Raspberry is not capable of supplying enough current via the USB port.
So either use an external drive with own power supply (there are a lot of secondhand available) or use a powered USB hub.
Be sure to disable the power connector pin in the USB connector (e.g. by using tape).
I prefer the old drives because they are heavy. Modern lightweight drives have to be operated with two hands.

Before you can use the CDPlayer plugin, you must run the following commands to install the cdda2wav tool in this way:

  • sudo apt-get install icedax
  • sudo ln -s /usr/bin/icedax /usr/bin/cdda2wav
  • sudo adduser squeezeboxserver cdrom
  • File Manager --> Edit --> Preferences --> Volume Management --> uncheck: "Show available options for removable media"

Next you must enable the CDPlayer plugin:
From any browser: use the IP address of the raspberry followed by ":9000". E.g.: 192.168.2.18:9000

  • In the lower right corner you will see the Settting icon.
  • Open the Plugins tab.
  • Check "CDPlayer"

In Settings, you must select the database to use: "Lookup CDs on MusicBrainz".

I found out that the Raspberry did not boot in combination with a Soundblaster USB dongle when the CD drive was powered on.
It did boot when the CD drive was powered off during booting however.

When you want to play the whole CD, you cannot do this by starting the first track.
In order to play the whole CD, click on the + symbol right to the CD title.

Note that the + symbol is not available on Jivelite.
A solution (CDplayer.zip) can be found here:
Announce: CDplayer plugin - Page 61 (slimdevices.com)
File location to patch: /var/lib/squeezeboxserver/cache/InstalledPlugins/Plugins/CDplayer

This solution works if you long press the disc title (mediabrainz result or raw CD) and click "play now". It does not work if you click on the first song.
For some reason, LMS doesn't show a header inside the playlist allowing to play all songs for opml playlists.

 

How to set the volume to maximum?

* sudo apt-get install pimixer

Run pimixer (or alsamixer)

Use arrow up/down or PgUp/PgDn keys to adjust the volume

 

How to control the Logitech Media Server

Apps on Android: "Squeeze Ctrl" (payed app), "Squeeze Controller" (OK and free) and "Squeezer" (OK and free).
Apps for iPhone/iPad: "iPeng" (difficult to configure home screen and a payed app).
From any browser. Use the IP address followed by ":9000". E.g.: 192.168.2.18:9000

 

Use ethernet cable or Wifi?

Using a network cable is preferable above a wifi connection:

  • Uploading music is much faster.
  • More reliable connection (especially important for radio).
  • No network configuration needed.

 

 

How to put your music on the server 

On a Windows PC: 

 

How to synchronize with the music collection on a PC

For reliability reasons it is important to have a copy of your music collection somewhere else.
Suppose you have your master collection on a Windows PC in folder "c:\MyMusic".
And the music on the Rasperry is accessible via share \\RaspberryPi\InternalDisk\Music.
Then you can use the following batch file to make a copy (mirror) of the files from the PC on the Raspberry:

robocopy.exe "c:\MyMusic" "\\RaspberryPi\InternalDisk\Music" /MIR

 

Help: the radio does not work

Sometimes no music is heard when a radio channel is selected (e.g. NPO radio 4).
The reason is that the default format of the stream for the selected radio is not supported by Logitech Media Server.
The solution is to select another stream format. This is how:

  • First, find an URL that works. Search in Google for example for "npo radio 4 url". I found: http://icecast.omroep.nl/radio4-bb-mp3
  • See also: https://www.mp3streams.nl
  • Or look at this nice overview: http://www.hendrikjansen.nl/henk/streaming.html
  • From any browser: use the IP address of the raspberry followed by ":9000". E.g.: 192.168.2.38:9000
  • Goto menu: Radio -> URL
  • Now enter the URL found and press the button next to it.
  • If this URL works, the next step is to add this to the favourites.
  • You can do this by clicking on the M (more) button on the right hand side of the screen (only visible when you hover the mouse over the music item on the right hand side).
  • Now more information for the stream is shown on the left hand side of the screen.
  • Here you can click on the first item: Save to favorites. Nice user interface!
  • Unfortunately, the added title is sometimes cryptic and cannot be changed easily.
  • If you really want to change the title, you can change this with a text editor (as super user) on the server in: /var/lib/squeezeboxserver/prefs/favorites.opml

 This is the list I added for my music server:

  

How to remote shutdown the Raspberry from your smartphone

It is always safer to shutdown the Raspberry Pi than removing the power directly.
This reduces the risk of damaging the SD card.
This can be easily accomplished by installing Node-RED and creating a simple program to shutdown the Raspberry.
With Node-RED it is simple to create a web page with just a shutdown button.
Using the browser on your smartphone you can pin this application to the start screen.

See section: HifiBerry DAC+ DSP filter selection

 

Backup the image

Before you make a backup of the SD card, you may want to shrink it (e.g. to about 7Gb).
This can be done by installing the tool "gparted" on the Raspberry Pi.
You cannot shrink the running SD card.
The SD card must be put in an USB adapter inserted in a USB port.

Creating the image will take some time.
Therefore it is important to backup the image of the SD card to file.
On Windows you can use "Win32DiskImager".
You can also use the exisiting "SD card copier" application (in Accessories) on the Raspberry Pi.

I found that after putting in a copy of the SD card, Logitech Media Server only worked well after rebooting once.

 

Room correction

Better than doing room correction by software is to treat the room. For instance with an acoustic ceiling (e.g. stosilent).

The HifiBerry DAC+ DSP allows you to do room correction. Also you can use the InguzEQ plugin (again).

When you unplug the power of the Raspberry Pi without a proper shutdown, you might get a problem with this card.
I got error message: "10 filters given, but filter bank has only 0.0 slots." The Hifiberry forum shows that that many people have encountered the same issue.
The solution is to:

1. Load dacdsp-default.xml

2. Persist profile to EEPROM

3. Shutdown the Raspberry

4. Unplug power and reconnect power again.

 

For configuration see the next chapter.

 

The Inguz plugin does not work any more because it relies upon an old version of Mono.
Also it works only for FLAC files of your own music collection.
So, it does not work for the other sources (Spotify, radio, CD).
Still you could install it because of the test signals it supplies (see below).

An alternative plugin for Room Correction is: http://drc-fir.sourceforge.net
See also: http://archimago.blogspot.com/2016/03/howto-logitech-media-server-brutefirdrc.html
I
t is faster than Inguz plugin but it is complicated to configure. 

 

HifiBerry DAC+ DSP configuration

For making a DSP profile file I ordered the following hardware for my laptop:
* USB-C DAC Toslink Optical AUX Audio Adapter 192kHz 24bit Headset Amplifier USB Sound Card

* 2M Mini 3.5mm Plug Digital Optical Audio Cable SPDIF Optical Fiber Line To Round Mouth TOSLINK Optical Audio Connector Dropship
* miniDSP UMIK-1 Omni-Directional USB Measurement Calibrated Microphone or Dayton Audio UMM-6 measuring microphone UMM-6

I found some issues during installation and configuration. Answers can be found on the Community pages (strangely enough not in the documentation).


After mounting the board, checkout: https://www.hifiberry.com/docs/data-sheets/datasheet-dac-dsp/

It says that you must modify /boot/config.txt:
* sudo leafpad /boot/config.txt
* add line: 
dtoverlay=hifiberry-dac

The next step is to follow the installation instructions in: https://www.hifiberry.com/docs/software/implementing-room-acoustics-correction-using-rew/
or, on Github: https://github.com/hifiberry/hifiberry-dsp/blob/master/doc/rew-basics.md
Currently there are small differences between these two documents.

Install the dsptoolkit:

* bash <(curl https://raw.githubusercontent.com/hifiberry/hifiberry-dsp/master/install-dsptoolkit)
You will see that the last command fails: mv: failed to preserve ownership for '/boot/config.txt': Operation not permitted
This error message can be ignored and is due to the fact that the boot folder is on a FAT partition.
Check:
* sudo leafpad /boot/config.txt
* Assure that the following line exists: dtparam=spi=on

Reboot the Raspberry Pi.

The DSP is loaded with some profile in the factory.
When you would install a filter right now, you get error message: "15 filters given, but filter bank has only 0 slots".
Therefore you have to install the default profile first: 
* dsptoolkit install-profile https://raw.githubusercontent.com/hifiberry/hifiberry-dsp/master/sample_files/xml/dacdsp-default.xml

I found that sometimes after a power down, I cannot load filters any more. I had to reinstall the profile and reboot the Raspberry Pi!
This command seems to help: dsptoolkit store
The documentation of the dsptoolkit is not very clear about this: 
https://pypi.org/project/hifiberrydsp/0.10/


Note that the colors of the output connectors (red, white) on the DAC board are wrong. They should be reversed. So red is left!

 
This profile has an automute function. This gives a problem if you play the music (or radio) very softly.
This is very annoying. In the Community pages of Hifiberry.com this issue is mentioned and it is advised to load profile dspdac-noautomute.xml.
However, this profile creates a DC offset of 1V at the output. No idea why. This gave me a problem with my amplifier. The profile also does not work.
I made an issue for this. This is there answer: "
We don't work on this profile anymore. The profile is provided as-is. There won't be any further updated from us on this profile."

The next thing to do is to download the program REW and create your profile as described in this documentation.
Note that the DSP supports 16 filters at maximum.
You might prevent REW creating more filters by disabling 5 filters in the Settings menu.
The nice thing is that you can modify the desired curve. You can filters with different slopes and try out what sounds best for you.

For creating your own profile, see this documentation.
Sample profiles can be found here.
Sample profiles projects can be found here.

 

 

And the result in one word: fabulous!

 

HifiBerry DAC+ DSP filter selection

Once you have created one or more room correction filters, you want to be able to select them from your phone or tablet.
This can be easily accomplished by a simple program in Node-RED.

You can follow these steps:

Create a folder for the filter files and export this folder via Samba:

* sudo mkdir /media/internaldisk/roomcorrection
* sudo chmod 777 /media/internaldisk/roomcorrection
* sudo leafpad /etc/samba/smb.conf

Add following section and reboot afterwards:
[RoomCorrection]
 comment=Room correction files
 path=/media/internaldisk/roomcorrection
 browseable=Yes
 writeable=Yes
 only guest=no
 create mask=0777
 directory mask=0777
 public=yes


Install Node-RED:

* sudo apt-get update
* sudo apt-get upgrade
* bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
* sudo systemctl enable nodered.service
* reboot

By adding a setting in settings.js, flow variables are saved automatically every 30 seconds:
* leafpad .node-red/settings.js
Add setting:
    contextStorage: { default: { module:"localfilesystem" }, },

Now it is time to reboot the Raspberry.

Show the editor: launch a web browser and type in the address bar: <ip address raspberry>:1880


Install "Dashboard" plugin: click on the menu button (three horizontal line in upper right corner) and Manage Palette.
Click on "Install" and type "dashboard" in the search bar. Install: node-red-dashboard

Import the program: click on the menu button (three horizontal line in upper right corner), Import and paste the code from this file.

Install the program: click on the Deploy button in the upper right corner.

Show user interface in your browser: launch a web browser and type in the address bar: <ip address raspberry>:1880/ui
Your browser on your phone and tablet has an option to add this page to your start screen. 
Now it behaves as an app. It has three tabs (or pages). One allows you to shutdown/reboot the Raspberry.

Example screenshot

 

HifiBerry DAC+ DSP power supply modification

3D printed case for Raspberry Pi 3B and HifiBerry DAC+ DSP, designed by Alfred Homsma. You can download the 3D files here.

 

 

This DAC supports room correction.


Although the board has a voltage regulator, this does not work well for higher frequencies.
So adding a passive filter before the voltage regulator assures that the noise from the Raspberry doesn't reach the DAC.

Due to the DSP, the power consumption of this model is higher than the DAC+ Pro.
Therefore the resistor of 22 Ohm is not possible here.
The 3.3V input regulator on the board requires an input voltage of at least 4.2 V.
The Raspberry Pi voltage is at least 5.1V.
Therefor the voltage drop over the inductor is about 0.9V.
With an average current consumption of 0.2A, the resistance of the inductor should be no more than 4.5 Ohm.
The pin layout of the Raspberry Pi can be found here.
Do not place the capacitors above the hot electronic devices (voltage regulators)!

First cut the +5V track.
The filter consists of two inductors of 470 uH and two capacitors of 4700 uF/10V (Conrad art.number 422027).

 

 

 

How to configure the Inguz EQ plugin

The Inguz EQ plugin is available again!

I didn't try the new plugin yet.

Inguz EQ is a plugin for supplying equalizer functionality and DRC (Digital Room Correction).
It also supplies test signals like left/right identifier, noise, etc. Very nice!
Those test signals are a good reason to install this plugin anyway!
Once installed, you can find them in menu: Extras --> EQ --> Settings --> Test Signals

But you can configure the plugin (equalizer, room correction) from your app on your phone or tablet.

Create a folder for the room correction files:
sudo mkdir /usr/share/InguzEQ
sudo chmod 777 InguzEQ
sudo mkdir /usr/share/InguzEQ/Impulses

When sharing this folder for everyone, also change the folder permission:
sudo chmod 777 /usr/share/InguzEQ/Impulses

Make a share for the room correction Impulses folder:
sudo leafpad /etc/samba/smb.conf
Add section:
[Impulses]
 comment=Room correction files
 path=/usr/share/InguzEQ/Impulses
 browseable=Yes
 writeable=Yes
 only guest=no
 create mask=0777
 directory mask=0777
 public=yes

 

How to create a DRC correction file for InguzEQ

This can be done using one of the following tools:

  • DrcDesigner: http://www.alanjordan.org/DRCDesigner/DrcDesignerHelp.html
    This tool works nicely.
    One quirk: on the tab "Generate Standard Filters", the button "Generate Selected Filters" becomes active only after reselecting the Sampling Rate.
    The generated correction files can be found in: c:\DRCDesigner\ConvolverFilters

For Inguz EQ plugin, room correction files (44100 hz) must be saved to: /usr/share/InguzEQ/Impulses