TIDAL Connect Installation

# OPTIONAL: install Tidal Connect For Raspberry PI 4 only,

# for amd64 and odroid platform use an upnp client with Tidal plugin (see upnp renderer tutorial for more info)

# using your DAC to listen music from Tidal

Tidal Connect is a service similar to Spotify Connect. Using the Tidal app to play a song you can easily click the device selector icon (top right) to select the Musiclounge Streamer audio server.

We are going to install it on MusicLounge Audio Server for Raspberry PI 4 as Tidal connect linux binary seems to be only available on arm 32bit (Raspberry PI). This installation is based on https://github.com/shawa github repo.


# if install pkg ends with error:
# “Failed to start The PHP 7.3 FastCGI Process Manager”
# type the cmd below to create the missing directory:

  1. $ sudo mkdir /var/run/php

# add stretch repo to sources list
# we need to temporary add it to install old libavformat.so.57

# add line:

deb http://archive.raspbian.org/raspbian stretch main
  1. $ sudo nano /etc/apt/sources.list

CTRL+X and y to save

# update pkgs list

  1. $ sudo apt update

# install dependencies

  1. $ sudo apt install -y libavformat57 libportaudio2* libflac++6v5*

# edit again /etc/apt/sources.list to disable (place # to comment) debian stretch repo after the installation of the libs

  1. $ sudo nano /etc/apt/sources.list
#deb http://archive.raspbian.org/raspbian stretch main

# CTRL+X and Y to Save


# install other dependencies

  1. $ sudo curl -k -O -L http://security.debian.org/debian-security/pool/updates/main/o/openssl/libssl1.0.0_1.0.1t-1+deb8u12_armhf.deb
  1. $ sudo apt install -y ./libssl1.0.0_1.0.1t-1+deb8u12_armhf.deb
  1. $ sudo curl -k -O -L http://security.debian.org/debian-security/pool/updates/main/c/curl/libcurl3_7.38.0-4+deb8u16_armhf.deb
  1. $ sudo apt install -y ./libcurl3_7.38.0-4+deb8u16_armhf.deb

# create working folder

  1. $ sudo mkdir /usr/ifi

# enter directory

  1. $ cd /usr/ifi

# clone git repo inside the directory

  1. $ sudo git clone https://github.com/shawaj/ifi-tidal-release

# fix file permissions

  1. $ sudo chmod +x /usr/ifi/ifi-tidal-release/play
  1. $ sudo chmod +x /usr/ifi/ifi-tidal-release/bin/tidal_connect_application
  1. $ sudo chmod +x /usr/ifi/ifi-tidal-release/pa_devs/run.sh

# deploy tidal service

  1. $ sudo ./ifi-tidal-release/file-deploy.sh

# get your device name

  1. $ aplay -l

# in this example the USB DAC detected is a Topping D90 MQA on card 1

card 0: Headphones [bcm2835 Headphones], device 0: bcm2835 Headphones [bcm2835 Headphones]
  Subdevices: 8/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
 ...
card 1: MQA [D90 MQA], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

# edit the tidal connect service to update your device name

# change parameter -f and –model-name with Musiclounge Streamer
# if your DAC supports MQA set parameter –codec-mqa and –enable-mqa-passthrough to true
# and change (or add) parameter –playback-device with your USB DAC name followed by “: USB Audio (hw:x,0)”
# x corresponding to the card number: (hw:1,0) for card 1

  1. $ sudo nano /lib/systemd/system/ifi-streamer-tidal-connect.service
[Unit]
Description=RasPi Streamer Tidal Connect Service
[Service]
Restart=on-failure
ExecStart=/usr/ifi/ifi-tidal-release/bin/tidal_connect_application \
                                --tc-certificate-path "/usr/ifi/ifi-tidal-release/id_certificate/IfiAudio_ZenStream.dat" \
                                -f "Musiclounge Streamer" \
                                --codec-mpegh true \
                                --codec-mqa true \
                                --model-name "Musiclounge Streamer" \
                                --disable-app-security false \
                                --disable-web-security false \
                                --enable-mqa-passthrough true \
                                --log-level 3 \
                                --enable-websocket-log "0"
                                --playback-device "D90 MQA: USB Audio (hw:1,0)"

User=root
Group=root
RestartSec=1
KillMode=control-group
[Install]
WantedBy=multi-user.target

# CTRL+X and Y to Save


# start service and check on status

  1. $ sudo systemctl daemon-reload

# enable service at startup

  1. $ sudo systemctl enable ifi-streamer-tidal-connect.service

# start service

  1. $ sudo systemctl start ifi-streamer-tidal-connect.service

# Check the status

# the status is very important to check if the service is enabled and run correctly

# also useful to get the correct name of valid device(s)
# see the instructions above to change the –playback-device parameter

  1. $ sudo systemctl status ifi-streamer-tidal-connect.service