User Tools

Site Tools


raspberry-pi:music_player

This is an old revision of the document!


Music Player

Hardware

System installation

Download Raspberry OS lite (Buster)
https://www.raspberrypi.org/downloads/raspberry-pi-os
Then flash using Balena Etcher or similar
https://www.balena.io/etcher/

Note: /etc/init.d/resize2fs_once is triggered on first boot, then removes itself.

WIFI config:
create wpa_supplicant.conf in /boot

/boot/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=<Insert 2 letter ISO 3166-1 country code here>

network={
 ssid="<Name of your wireless LAN>"
 psk="<Password for your wireless LAN>"
}

Enable SSH Server:
create empty file ssh in boot folder

/boot/config.txt

/boot/config.txt
#Set GPU memory to lowest value
gpu_mem=16

#Disable boot splash screen
disable_splash=1

#Configure Pimoroni Pirate audio DAC
dtoverlay=hifiberry-dac
gpio=25=op,dh

#Enable SPI for display of Pimoroni Pirate Audio
dtparam=spi=on

#Switch off onboard audio
dtparam=audio=off

# Turn off HDMI?
#hdmi_blanking=0 # HDMI Output will be blank when DPMS is triggered
#hdmi_blanking=1 # HDMI Output will be disabled when DPMS is triggered
hdmi_blanking=2 # HDMI Output will be disabled on boot and can be enabled using the above listed commands.

[pi0]
# Disable the ACT LED on the Pi Zero only
dtparam=act_led_trigger=none
dtparam=act_led_activelow=on

Disable HDMI port on boot (power saving during headless operation)
/usr/bin/tvservice -o (-p to re-enable)
Add the line to /etc/rc.local to disable HDMI on boot.

Now insert the SD-Card into the Pi and power it up. Then connect to it via SSH.

Security. Default user pi with password raspberry
https://www.raspberrypi.org/documentation/configuration/security.md

Mopidy Installation

Install git if not already installed:

sudo apt-get install git

# https://learn.pimoroni.com/tutorial/sandyj/getting-started-with-pirate-audio

#This will install python3 pip,wheel and pirate audio modules
#Then add mopidy apt sources and install mopidy including mopidy-spotify
#Then install mopidy-iris web interface and Pirate Audio plugins
#And create system service to autostart mopidy

cd /usr/src
sudo git clone https://github.com/pimoroni/pirate-audio
cd pirate-audio/mopidy
sudo ./install.sh

Additional web interfaces can be installed:
https://github.com/pimusicbox/mopidy-musicbox-webclient

sudo python3 -m pip install Mopidy-MusicBox-Webclient

https://github.com/tkem/mopidy-mobile

sudo python3 -m pip install Mopidy-Mobile

#Removing mopidy spotify plugin and bluetooth support

sudo apt-get purge mopidy-spotify
sudo apt-get purge bluez bluez-firmware
sudo apt autoremove

Install mopidy-local extension backend (local+sqlite combined) to build local index for search and increased performance.
https://github.com/mopidy/mopidy-local

sudo python3 -m pip install Mopidy-Local

#Display will show ip and default mopidy port :6680 for web interface. Iris web client needs to be selected

#Edit Mopidy config
sudo vi /etc/mopidy/mopidy.conf

#disable file extension
[file]
enabled = false

#enable local with sqlite extension
[local]
enabled = true
media_dir = /media/network
scan_timeout = 5000
scan_flush_threshold = 50
album_art_files =
  cover.*
  folder.*
directories =
  Albums                  local:directory?type=album
  Artists                 local:directory?type=artist
  Composers               local:directory?type=artist&role=composer
  Genres                  local:directory?type=genre
  Performers              local:directory?type=artist&role=performer
  Release Years           local:directory?type=date&format=%25Y
  Tracks                  local:directory?type=track
  Last Week's Updates     local:directory?max-age=604800
  Last Month's Updates    local:directory?max-age=2592000
timeout = 10


#add to http section to enable web server for web front-ends
enabled = true
#port = 80 #issue with mopidy user and ports <1024
zeroconf = Mopidy HTTP server on $hostname:$port
# Set to iris, mobile or musicbox_webclient, depending on which is installed
default_app = iris

#change in audio section
mixer_volume = 20

When using Iris webclient:

#add iris section:
[iris]
enabled = true
country = GB
locale = en_GB

When using MusicBox Webclient:

[musicbox_webclient]
enabled = true
musicbox = false #when on Pi MusicBox, adds system control/config options
websocket_host =
websocket_port =
on_track_click = PLAY_ALL
# on_track_click: The action performed when clicking on a track. Valid options are: PLAY_ALL (default), PLAY_NOW, PLAY_NEXT, ADD_THIS_BOTTOM, ADD_ALL_BOTTOM, and DYNAMIC (repeats last action).
sudo mkdir /media/network
sudo mkdir /media/music
sudo apt-get upgrade

SMB mount the manual way (/etc/rc.local or /etc/fstab):
#Note experiment with rsize=61440 option and/or use nounix mount option

sudo mount -t cifs -o ro,username=media,password=media,uid=1000,gid=1000,vers=1.0,cache=none //192.168.1.6/music/beets2 "/home/mopidy/FOO/"

sudo vi /etc/fstab
#add

//192.168.1.6/music	/media/music/beets2	cifs	username=media,password=media,ro,vers=1.0,cache=none,iocharset=utf8,noperm,file_mode=0644,dir_mode=0755,users	0	0
mount /media/network
sudo reboot

Trigger scan of media directories (when mopidy runs as service):

sudo mopidyctl local scan

or when running from terminal as logged in user:

mopidy local scan

Note the default configuration files mopidy is looking for are in ~/.config/mopidy/mopidy.conf or /usr/share/mopidy/conf.d whereas the default service loads /usr/share/mopidy/conf.d and /etc/mopidy/mopidy.conf
The service file using the mopidy user is:
/etc/systemd/system/multi-user.target.wants/mopidy.service

Mopidy MPD

https://github.com/mopidy/mopidy-mpd

sudo python3 -m pip install Mopidy-MPD
[mpd]
hostname = 0.0.0.0

Edit the volume button's sensibility

Default volume button step is 5%. Adding

step = x

to the [raspberry-gpio] section of /etc/mopidy/mopidy.conf adjusts it. The total volume range is 0-100.

Other music player projects

raspberry-pi/music_player.1683668350.txt.gz · Last modified: 2023/05/29 11:53 (external edit)