Moode Audio Player for Raspberry Pi

lol.

It needs to be tested with DAC's that don't have hardware volume for example Mamboberry LS or other ES9023 based DAC.

If someone wants to try this please post results.

-Tim

I have a Mamboberry but get this errors when I try:
Loading Spotify library...
Traceback (most recent call last):
File "loader.py", line 3, in <module>
File "runpy.py", line 180, in run_module
File "runpy.py", line 72, in _run_code
File "/home/pi/spotify-connect-web/main.py", line 14, in <module>
from connect import Connect
File "/home/pi/spotify-connect-web/connect.py", line 9, in <module>
from console_callbacks import audio_arg_parser, mixer, error_callback, connection_callbacks, debug_callbacks, playback_callbacks, playback_setup
File "/home/pi/spotify-connect-web/console_callbacks.py", line 24, in <module>
audio_arg_parser.add_argument('--mixer', '-m', help='alsa mixer name for volume control', default=alsa.mixers()[0])
IndexError: list index out of range
Failed to execute script loader
 
Lazerharp, that is telling you that you need to pass a valid mixer value. What command did you use to execute the spotify-web-connect script? Are you running from source or downloaded the compiled version?

Interested in a skype call so we can maybe sort out things together?

Best regards,
Rafa.

Thanks Rafa for the fast reply.

I followed your instructions from here:
https://github.com/RafaPolit/moode-spotify-connect-web/blob/master/README.md

I got --playback_device from running Aplay -L

default:CARD=Mamboberry
Mamboberry,
Default Audio Device
sysdefault:CARD=Mamboberry
Mamboberry,
Default Audio Device
dmix:CARD=Mamboberry,DEV=0
Mamboberry,
Direct sample mixing device
dsnoop:CARD=Mamboberry,DEV=0
Mamboberry,
Direct sample snooping device
hw:CARD=Mamboberry,DEV=0
Mamboberry,
Direct hardware device without any conversions
plughw:CARD=Mamboberry,DEV=0
Mamboberry,
Hardware device with all software conversions


Then I got --mixer_device_index running Alsamixer then F6 to get Soundcard 0 Mamboberry

Then I tested with:
./spotify-connect-web --playback_device default:CARD=Mamboberry --mixer_device_index 0 --bitrate 320 --name "moOde Connect" --key spotify_appkey.key
 
The -m or --mixer command is actually DIFFERENT from the --mixer_device_index.

For external DAC, you could try a "-m PCM" argument on that command. For DACs that don't support Hardware Volume, theres a different approach we were discussing of creating a new 'virtual' mixer. All this is to allow volume control.

So, first, attempt this command line:
./spotify-connect-web --playback_device default:CARD=Mamboberry --bitrate 320 --name "moOde Connect" --key spotify_appkey.key

This should work without volume control! (Also, this requires that you launched the avahi zero-conf script prior to running this command, or you will get a missing username and password error).

Rafa.
edit: Im an idiot, I edited the command line.
 
Last edited:
For volume control, this is exactly the setup we needed to test it up. Can you post the result of the command:
amixer controls

This should give us an overview of what mixers you have available.

Rafa.

Still dosen´t work when I run:
./spotify-connect-web --playback_device default:CARD=Mamboberry --bitrate 320 --name "moOde Connect" --key spotify_appkey.key

When I run amixer controls I get nothing :confused:
 
What is the error of spotify-connect-web script without -mixer_device_index?

./spotify-connect-web --playback_device default:CARD=Mamboberry --bitrate 320 --name "moOde Connect" --key spotify_appkey.key
Loading Spotify library...
Traceback (most recent call last):
File "loader.py", line 3, in <module>
File "runpy.py", line 180, in run_module
File "runpy.py", line 72, in _run_code
File "/home/pi/spotify-connect-web/main.py", line 14, in <module>
from connect import Connect
File "/home/pi/spotify-connect-web/connect.py", line 9, in <module>
from console_callbacks import audio_arg_parser, mixer, error_callback, connection_callbacks, debug_callbacks, playback_callbacks, playback_setup
File "/home/pi/spotify-connect-web/console_callbacks.py", line 24, in <module>
audio_arg_parser.add_argument('--mixer', '-m', help='alsa mixer name for volume control', default=alsa.mixers()[0])
IndexError: list index out of range
Failed to execute script loader
 
Ok, great, you are the perfect candidate for this actualy! :) This is what (I believe) Tim was expecting. A setup that provides actually NO hardware option at all.

The steps are going to be a bit longer for you:
Create a file inside /etc/ named asound.conf (you will need to use sudo and the editor of your picking).

The content of the file should be:
Code:
pcm.softvol {
type softvol
slave {
pcm "hw:0"
}
control {
name "Master"
card 0
}
}

After this, the amixer controls command should give you an entry for "Master".

Now run everything with:
./spotify-connect-web --playback_device softvol -m Master --bitrate 320 --name "moOde Connect" --key spotify_appkey.key

There is slight chance that the hw:0 wont work. If that happens, please post the result of:
aplay -l
(lower case L)

Rafa.
 
Still dosen´t work when I run:
./spotify-connect-web --playback_device default:CARD=Mamboberry --bitrate 320 --name "moOde Connect" --key spotify_appkey.key

When I run amixer controls I get nothing :confused:

Hi,

--playback_device hw:0

./spotify-connect-web --playback_device hw:0 --bitrate 320 --name "moOde Connect" --key spotify_appkey.key

and/or try Rafa's 'softvol' approach in previous post

-Tim
 
Last edited:
Hi,

--playback_device hw:0

./spotify-connect-web --playback_device hw:0 --bitrate 320 --name "moOde Connect" --key spotify_appkey.key

and/or try Rafa's 'softvol' approach in previous post

-Tim

Unfortunately same error:
Loading Spotify library...
Traceback (most recent call last):
File "loader.py", line 3, in <module>
File "runpy.py", line 180, in run_module
File "runpy.py", line 72, in _run_code
File "/home/pi/spotify-connect-web/main.py", line 14, in <module>
from connect import Connect
File "/home/pi/spotify-connect-web/connect.py", line 9, in <module>
from console_callbacks import audio_arg_parser, mixer, error_callback, connection_callbacks, debug_callbacks, playback_callbacks, playback_setup
File "/home/pi/spotify-connect-web/console_callbacks.py", line 24, in <module>
audio_arg_parser.add_argument('--mixer', '-m', help='alsa mixer name for volume control', default=alsa.mixers()[0])
IndexError: list index out of range
Failed to execute script loader
 
The file should go in /etc/.

So:
Code:
sudo touch /etc/asound.conf

should create the file. Then you can sudo nano, or sudo vim into it to edit it, however you prefer to edit your files. It doesn't need to be started.

After that amixer controls should hold at least one value, and then the command:
Code:
./spotify-connect-web --playback_device softvol -m Master --bitrate 320 --name "moOde Connect" --key spotify_appkey.key

should start the server with software volume enabled.

If not, please post the aplay -l results.

Rafa.
 
Last edited:
The file should go in /etc/.

So:
Code:
sudo touch /etc/asound.conf
should create the file. Then you can sudo nano, or sudo vim into it to edit it, however you prefer to edit your files. It doesn't need to be started.

After that amixer controls should hold at least one value, and then the command:
Code:
./spotify-connect-web --playback_device softvol -m Master --bitrate 320 --name "moOde Connect" --key spotify_appkey.key
should start the server with software volume enabled.

If not, please post the aplay -l results.

Rafa.

Sorry, still same errors.

aplay -l gives:
**** List of PLAYBACK Hardware Devices ****
card 0: Mamboberry [Mamboberry], device 0: Mamboberry DAC HiFi es9023-hifi-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0

amixer controls gives nothing
 
Sorry, still same errors.

aplay -l gives:
**** List of PLAYBACK Hardware Devices ****
card 0: Mamboberry [Mamboberry], device 0: Mamboberry DAC HiFi es9023-hifi-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0

amixer controls gives nothing

Hi,

Looking at the Python code there is no default for coded for mixer-device so apparently the param has to be specified.

So try adding --mixer_device_index 0 to the cmd string

-Tim