cute70.jpg
CuteStudio Ltd.

SeeDeClip4 on Linux


raspbian.jpg  +  linux_penguin.jpg

SeeDeClip4 is very smooth and fast on Linux, the threading, file and socket/network IO is extremely efficient there which is why Linux is the choice of the internet.

If you are using an older PC you'll notice a speed boost by moving from Windows to Linux, and that means music imports, responsiveness and speed are all improved. Additionally you can run a Linux server for a year or more without it slowing down, running out of memory or crashing, it's an extremely reliable base for SeeDeClip4.

Debian 8 on a i7 makes a formidable server for big music collections accessible for all the family.

SeeDeClip4 headless slave

Turn your Raspberry Pi or other Linux box into a 24bit HiFi source!

Raspbian can support a headless slave that uses the direct ALSA 'aplay' utility to render the audio. This bypasses HTML5 and allows the full 24bit sound to be played to your DAC hooked up to the linux box.

Headless merely means there is no need for a screen or keyboard, just the Raspberry Pi (ideally mounted in a box) can be positioned next to your HiFi and either feed your DAC directly via USB or electrically isolated with a USB/Optical adapter. Any adapter capable of 24bit should be good for the job, the key aim here is to preserve detail and using 16bit here will lose some: it needs to be 24bit.

The slave consists of a script and a program. The script should run on any linux machine, the program provides optional progress bar functionality and should be copied into the same directory as the slave script.

  • Usual browser slave operation involves connecting to your seedeclip4 server from a machine with a web browser like Chrome or Firefox to allow that machine to play the music. The music is played by HTML5 audio and is thus limited in quality to 16bits (Firefox) or resampled via 48kHz (Chrome).
  • This PHP script replaces the browser as a surrogate headless script that talks directly to the Linux ALSA sound system and thus allows the full quality to be achieved. The quality to aim for is 24bit and internally or externally upsampled to 88.2k.
    The hardware to do this is simply a Raspberry Pi Model B with Raspbian installed. You then plug your DAC into one of its USB ports.

Change log


Version Changes
1.02 Log volume for PCM master. Priority lowered for wget.
1.01 Added support for Raspberry Pi (Raspbian)
1.00 Initial version


Headless slave installation

1: System update

You will need to install some utility programs using apt-get. From the command prompt on your linux box type:
  1. sudo apt-get update
  2. sudo apt-get install php5-cli wget alsa-tools alsa-base

2: Download and run the SeeDeClip4 headless slave

To download; right click and 'save link as'.

System Script Helper program
Arm32 (Pi) phpslave.tgz (4.8kB) wav_info (30.1kB)
Linux32 wav_info (46.0kB)
Linux64 wav_info (44.6kB)

Download the php script and the helper program that matches your system. Un-zip the PHP script:
tar xf phpslave.tgz

Make sure the correct wav_info is downloaded and in the same directory. Make sure it can run:
chmod a+x wav_info
./wav_info

Tell Linux you are allowed to use the audio system. This means being added to group audio.
So now add yourself to the audio group (replace xxxx with your login username below):
sudo addgroup xxxx audio
Adding user `xxxx' to group `audio' ...
Adding user xxxx to group audio
Done.


Now logout of the Pi using the exit command
exit


and then log back in again. You need to do this just once in order to use the new group.
You'll now be allowed to use the audio, so type 'groups' to check, audio should be one of your groups listed.
groups
xxxx sudo audio

Then type:
aplay -l

to list the soundcards.
This is aplay -L as in L for List, not the number 1. But use a small case L: l.

If all is well you should now be able to run the headless slave script:: If your SeeDeClip4 server is running on another machine or you need to specify the sound device then start the program with its address. e.g:
./phpslave.php 192.168.0.108

You should now see it talking to the server. On the server (from a browser) go into the 'Remote' page and make sure the slave is selected at the top, if you have just the one slave it probably is already selected. Play a track and check that the slave wakes up and you see a line starting with wget or aplay. If so you can now plug your DAC into the USB of the Raspberry Pi.

Troubleshooting

Troubleshooting
Slave cannot be seen by the Remote pageCheck the server addres you pass to phpslave.php script is correct.
You can find the IP address of the server on the home page.
No sound and the music skips from track to track
Type:
dmesg
to see that your USB device in indeed there. If it is, you may need to select a different card using the command line.
Type (that's a lower case L, not minus one):
aplay -l
And you should see this:
Pi{10} aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
Subdevices: 8/8
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
Subdevice #7: subdevice #7
card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: U2S [PHIREE U2S], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: U2S [PHIREE U2S], device 1: USB Audio [USB Audio #1]
Subdevices: 1/1
Subdevice #0: subdevice #0
Pi{11}

By default phpslave.php uses ALSA card number 1. To use 0 or 2 etc just use it as the 2nd argument on the command line like this:
./phpslave.php <servername> <cardno.>

e.g:

./phpslave.php 192.168.0.67 2

will contact the SeeDeClip4 server at 192.168.0.67 and play the music on ALSA card number 2.
Sometimes a track fails
to restart when unpaused
This is an issue with aplay being interrupted, sometimes it's silent when it continues and needs to be re-paused and re-continued to get the sound out again.

So just wait a second, pause it again and wait a second, then unpause it and it should start.
Perhaps one day it will be more tolerant to being paused, there is no workaround for this problem as the silence is invisible to Linux.


SeeDeClip4 server installation

Installation varies slightly for Linux because it assumes the user has some IT knowledge and is comfortable with the command line.

The Linux download is a small tarfile that you need to expand. Then just install the importers and run the ./seedeclip4 program.
E.g. from the Terminal type in:

  • sudo apt-get update
  • sudo apt-get install flac mpg123 vorbis-tools libav-tools
  • tar -xf LINUX32_SeeDeClipV4.1.10.tgz
  • cd LINUX32_SeeDeClipV4.1.10
  • ./seedeclip4 &

Notes:
  • 'sudo apt-get' is a regular Linux system command and will require your password.
    These 'apt' commands install the up to date file importers for MP3, AAC, FLAC etc.
  • The M4a import (in the Settings page) should be changed to
    m4a,m4r, avconv -i INFILE OUTFILE

The Linux version is a purely text-only program without a Run/Stop - it just sits there and runs, so click here: http://localhost:8000 to access it.

If you restart your Linux machine for any reason you can re-start the SeeDeClip4 by re-typing:
  • cd LINUX32_SeeDeClipV4.1.10
  • ./seedeclip4 &


Downloads

SystemDownload link
Linux (32 bit) LINUX32_SeeDeClipV4.1.10.tgz (316.3kB)
Linux (64 bit) LINUX64_SeeDeClipV4.1.10.tgz (309.5kB)
ARM Linux (32 bit Raspbian) ARM32_SeeDeClipV4.1.10.tgz (295.3kB)

Notes:

  • Debian 8 or Raspbian is the recommended linux, it's fast, easy to install and secure. The Cinnamon desktop is quite nice to use.


Copyright © 2007-2017, CuteStudio Ltd.
Page generated in 0.265s, Powered by Silk V1.2-0 from Cutestudio