Moode Audio Player for Raspberry Pi

Hello
I am looking for advice in designing the next steps of an audio system. Basically I am looking for a system able to drive full range speakers assisted by bass speakers so dual stereo outputs. As source, files or web resource and a toslink. One of the required features is the possibility of filtering (I had a look to quasi optimal filters which need also some delay control) and FIR filter at least on the full range. Additional remote control of the volume is also part of the specification (a main analog volume with some possible adjustment to lower it or mute is a possibility).
Coming to this thread, Moode with Camilla DSP seems offer part of these features.
As I am more hardware oriented than software, I have difficulties from my different readings to figure out the architecture of such a system which seems quite basic... Which kind of DAC (usb multiway because of the toslink requirement?)
Can somebody help to go to the next steps from hardware and software point of view?
Thank you
Christian
 
Hi
just wondering if anyone had issues connecting the denafrips ares ii via usb?

I have been using moode 8.0.0 on RBPi4 to connect to MS6I internal Dac without issues. Yesterday I tried to connect a newly bought Denafrips Ares II Dac. After plugging in, moode player automatically recognised and changed the output device to Denafrips USB Audio V3.14. And surprisingly I did not need to change any other settings and everything played just fine. So far so good.

However, this morning tried to some music the same way as yesterday and no sound output at all. I tried restarted the DAC, the Pi etc. None worked. It still recognised the denafrips DAC. When playing, it seems playing no issue but just no sound output. Switched back to the MS6I intenal DAC, worked perfectly. I have also used my windows laptop to connect to the Denafrips dac via the same USB input, no problem. So it confirmed the Denafrips DAC has no problem for the USB input. So at this stage, I am assuming Moode player audio config settings. Is there any setting I should look for when there is no sound output to a USB dac?

Felix
 
Hi Felix,
I think that it is better if you ask the question in the moode Forum. (Much more people on moode and much more experiences)
However I have read that somebody else had simile issue and revolved powering on the rpi after the DAC is already on.
Try and let us know.
Best regards,
Francesco
 
Hi Felix,
I think that it is better if you ask the question in the moode Forum. (Much more people on moode and much more experiences)
However I have read that somebody else had simile issue and revolved powering on the rpi after the DAC is already on.
Try and let us know.
Best regards,
Francesco
Francesco,
Thanks for the reply. I am waiting for Moode to create a user account for me. By the way, I have done power on/off, hard/soft reset etc with the DAC on. No luck. the weird thing is that it once DID work yesterday for a couple of hours. But switched to MS6I internal dac, just plug-and-play and worked. I assume some setup setting between moode and Denafrips is not right as the Denafrips had no issue accepting USB signal from PC.

Felix
 
Francesco,
Thanks for the reply. I am waiting for Moode to create a user account for me. By the way, I have done power on/off, hard/soft reset etc with the DAC on. No luck. the weird thing is that it once DID work yesterday for a couple of hours. But switched to MS6I internal dac, just plug-and-play and worked. I assume some setup setting between moode and Denafrips is not right as the Denafrips had no issue accepting USB signal from PC.

Felix
Hi Felixh,

Mine is also an R2R DAC, Musician Pegasus works fine under moOde 8.01.

In addition, as long as you save the file after modification in MPD settings-->Edit and restart, everything should be normal.
I switched between the Topping DX7Pro and the Musician Pegasus and it automatically found the DAC to play correctly.

Eric Lee
 
Hi Felixh,

Mine is also an R2R DAC, Musician Pegasus works fine under moOde 8.01.

In addition, as long as you save the file after modification in MPD settings-->Edit and restart, everything should be normal.
I switched between the Topping DX7Pro and the Musician Pegasus and it automatically found the DAC to play correctly.

Eric Lee
All my MPD settings remain as default as I don't do anything special.
 
I think I have fixed the issue. Here is the sign/clue before the fix that I was aware of.

On the Audio Config page, the output device was set to Denafrips USB audio which is right. But if I switched off the DAC, it changed to MS6i the previous DAC even though it is no longer connected to that old DAC. Which means somewhere is the system - there was still cache for the previous DAC.

Also the ALSA Options - Max volume (%), the value was nothing as opposed to 100. And the value cannot be manually changed.

So here is the accidental fix. The volume type was "Fixed (0db output)" which was correct. What I did was to change it to "Null (External control)" and SET. Tried the sound and it did not work. Then changed it back to "Fixed (0db output)" and SET. I then noticed that Max volume(%) was then set to 100 as the value. Tried the sound, haha sound is back, much louder than before. And if I switch off the DAC now, the output device stays as "Denafrips USB".

I think changing the volume type to other type then changing back helped reset the volume related cache in the system. The power on/off was not able to achieve that. I was planning to reinstall Moode and try again. That would certainly work but it will be a much longer shot.
 
  • Like
Reactions: 1 user
There's no capability in moOde to hot-swap-configure USB audio devices. Looking at the code I would suggest setting Output device = Pi-HDMI 1, Volume type = Hardware before switching to a different USB audio device.

Let me know if that works.
thanks Tim. Will try that. Changing DAC is not that frequent anyway unless we need to change back and forth for listening comparison. I am happy that it worked for the new DAC for now.
 
Trying to update from 7.6 to 8.02 version i cannot have my music nfs shares mounted.
At manual setup time when i input the network shares path Moode freezes and becomes no more responding.
Even coping the moodecfg.ini, obtained from 7.6.1 version settings backup, in /boot directory of 8.02 version, no way.
Reboot does not solve the problem, moode does not start anymore, only the ssh session is possible. I need to reinstall moode imgfile on sdcard.
Logs do not provide suggestions about how to solve the problem, kernel messages neither.
My shares are on an old Qnap nas, all is right with moode 7.6.1 version, hardware Pi 3b. What could cause the mount fail?
Anyone did experimented this problem? What could i check for clearing what's happening?
Thanks in advance.
 
Last edited:
Hello.
I like Moodeaudio, but i got in last Time every 5 Minutes This Message:
Failed to open "ALSA Default" (alsa); Error opening ALSA device "_audioout"; snd_pcm_hw_params() failed: Broken pipe

I got the Audioquest Dragonfly 1.2, Raspi 4B with 8GB RAM and also Raspi 4B with 2GB RAM
I do not know what can i do to solve this issue.
Things i have done:
  • Reinstall Moode on other Stick
  • Other Files (it is also on Radio)
  • Different USB-Ports
  • Volume Type: Fixed, SW, HW
  • Output mode: Default (plughw), Direct (hw)

can anyone help me with this?
 
My 2 cents it's power supply issue to the USB device, the device re-connecting randomly. You would see more info in dmesg output after the problem occurs (or dmesg -w to monitor the log permanently).
I don't think so, because on all other devices i got no problem with the Dragonfly (Linux, Windows, Smartphone), but i will look at the Smartphone. I also tried another Power Supply for the Pi.... i have 2 differents Pi's and it is on both, i tested with a USB-Hub with external Power Supply, because i thought it can be not enough power for HDD, Boot-Stick and Dragonfly, all the same Error....
 
20220601 232251 worker: --
20220601 232251 worker: -- Start moOde 8 series
20220601 232251 worker: --
20220601 232251 worker: Successfully daemonized
20220601 232559 worker: File check (OK)
20220601 232600 worker: Session vacuumed
20220601 232600 worker: Session loaded
20220601 232600 worker: Debug logging (OFF)
20220601 232600 worker: --
20220601 232600 worker: -- Audio debug
20220601 232600 worker: --
20220601 232600 worker: ALSA cards: (0:b1 | 1:Headphones | 2:DragonFly | 3:empty
20220601 232600 worker: MPD config: (2:AudioQuest DragonFly | mixer:(PCM) | card:2)
20220601 232600 worker: ALSA mixer actual (PCM)
20220601 232600 worker: ALSA PCM volume set to (0%)
20220601 232600 worker: --
20220601 232600 worker: -- System
20220601 232600 worker: --
20220601 232602 worker: Host (moode)
20220601 232602 worker: moOde (8.0.2 2022-03-25)
20220601 232602 worker: RaspiOS (11.2)
20220601 232602 worker: Kernel (5.15.28-v7l+ #1532)
20220601 232602 worker: Platform (Pi-4B 1.1 4GB)
20220601 232602 worker: ARM arch (armv7l, 32-bit)
20220601 232602 worker: MPD ver (0.23.5)
20220601 232602 worker: CPU gov (ondemand)
20220601 232602 worker: USB boot (enabled)
20220601 232602 worker: File sys (expanded)
20220601 232602 worker: HDMI port (On)
20220601 232602 worker: Sys LED0 (On)
20220601 232602 worker: Sys LED1 (On)
20220601 232602 worker: --
20220601 232602 worker: -- Network
20220601 232602 worker: --
20220601 232602 worker: eth0 adapter exists
20220601 232602 worker: eth0 wait for address (No)
20220601 232602 worker: eth0 address not assigned
20220601 232602 worker: wlan0 adapter exists
20220601 232602 worker: wlan0 country (AT)
20220601 232602 worker: wlan0 trying SSID (Eulenspiegel)
20220601 232602 worker: IP addr (192.168.13.47)
20220601 232602 worker: Netmask (255.255.255.0)
20220601 232602 worker: Gateway (192.168.13.37)
20220601 232602 worker: Pri DNS (192.168.13.37)
20220601 232602 worker: Domain ()
20220601 232602 worker: wlan0 power save disabled
20220601 232602 worker: --
20220601 232602 worker: -- Audio config
20220601 232602 worker: --
20220601 232602 worker: MPD conf update skipped (USB device)
20220601 232602 worker: ALSA card number (2)
20220601 232602 worker: MPD audio output (AudioQuest DragonFly)
20220601 232602 worker: Audio formats (S24_3LE)
20220601 232603 worker: ALSA mixer name (PCM)
20220601 232603 worker: MPD mixer type (fixed 0dB)
20220601 232603 worker: Hdwr volume controller exists
20220601 232603 worker: Max ALSA volume (100%)
20220601 232603 worker: ALSA output mode (Direct: hw)
20220601 232603 worker: ALSA loopback (Off)
20220601 232603 worker: Reset renderer active flags
20220601 232603 moode.php: MPD connect failed: cmd=(playlist)
20220601 232603 worker: CamillaDSP (off)
20220601 232603 worker: --
20220601 232603 worker: -- MPD startup
20220601 232603 worker: --
20220601 232603 worker: MPD started
20220601 232603 worker: MPD accepting connections
20220601 232604 worker: MPD output 1 ALSA Default (on)
20220601 232604 worker: MPD output 2 ALSA Bluetooth (off)
20220601 232604 worker: MPD output 3 HTTP Server (off)
20220601 232604 worker: MPD crossfade (off)
20220601 232604 worker: MPD ignore CUE files (yes)
20220601 232604 worker: --
20220601 232604 worker: -- Feature availability
20220601 232604 worker: --
20220601 232604 worker: Source select (available)
20220601 232604 worker: Source select (source: MPD)
20220601 232604 worker: Source select (output: AudioQuest DragonFly)
20220601 232604 worker: Bluetooth (available)
20220601 232604 worker: Airplay renderer (available)
20220601 232604 worker: Spotify renderer (available)
20220601 232604 worker: Squeezelite (available)
20220601 232604 worker: RoonBridge renderer (not installed)
20220601 232604 worker: Multiroom sender (available)
20220601 232604 worker: Multiroom receiver (available)
20220601 232604 worker: UPnP renderer (available)
20220601 232604 worker: DLNA server (available)
20220601 232604 worker: UPnP browser (available)
20220601 232604 worker: GPIO button handler (available)
20220601 232604 worker: Stream recorder (n/a)
20220601 232604 worker: --
20220601 232604 worker: -- Music sources
20220601 232604 worker: --
20220601 232604 worker: USB source (Mugge)
20220601 232604 worker: NAS and UPnP sources (none configured)
20220601 232604 worker: --
20220601 232604 worker: -- Other
20220601 232604 worker: --
20220601 232604 worker: USB volume knob (Off)
20220601 232604 worker: USB auto-mounter (udisks-glue)
20220601 232604 worker: Saved MPD vol level (0)
20220601 232604 worker: Preamp volume level (0)
20220601 232604 worker: MPD volume level (0) restored
20220601 232604 worker: ALSA PCM volume (100%)
20220601 232604 worker: Auto-play (On)
20220601 232604 worker: Auto-playing id (7)
20220601 232604 worker: Maintenance interval (120 minutes)
20220601 232604 worker: Screen saver activation (Never)
20220601 232604 worker: Session permissions (OK)
20220601 232604 worker: Watchdog started
20220601 232604 worker: Ready

dmesg output Pastebin: https://pastebin.com/VpASAQDF
 
It could be some type of compatibility issue between MPD/ALSA/moOde config and the audio format for this device. it looks like it only supports S24_3LE from ALSA's point of view.

20220601 232602 worker: Audio formats (S24_3LE)

Couple things to try:

1. Open MPD config and set SoX resampling to Bit depth = 24.
2. Also while in MPD config set Logging to Verbose and then examine the MPD log

cat /var/log/mpd/log
 
I
Hi Tim. Thanks for your work on such an awesome piece of software!

I've been trying to get an invite to the Moode forum, but so far... However, I might as well get into my success and issue here as some users might find this useful/interesting:

I've made a USB Consumer Control Device using a Raspberry Pi Pico and CircuitPython that includes buttons for various purposes (right now set up for KEY_NEXTSONG, KEY_PREVIOUSSONG, KEY_PLAYPAUSE, KEY_CDSTOP, and KEY_MUTE), a rotary encoder for volume control (KEY_VOLUMEUP, KEY_VOLUMEDOWN), and an IR receiver that can do all of the above. It's very easy to change the functionality to anything you want, though. The device is tested on Windows and works on Moode 8.0.0 (no other versions tested).

One slight thing... It doesn't work when Moode reboots. I have to unplug/replug the usb device and sudo systemctl restart triggerhappy manually. My troubleshooting looks something like this:

1. Reboot/powerup with device plugged in. thd --dump /dev/input/event* gives me nothing. Obviously the controls don't work either. A triggerhappy restart does nothing.

2. Reboot/powerup with device plugged in. Unplug/replug the USB device. A thd dump gives me the expected codes but the controls still don't work, that requires a restart of triggerhappy.

3. Reboot/powerup with device not plugged in. Plug in device after full boot. A thd dump gives me the expected codes but the controls don't work. Restarting triggerhappy fixes it.


Thinking about it just now maybe I'm booting too fast (?!) My setup looks like this:

RPi 4B 8GB
USB 3.0 to mSATA 32GB (boots fast! I have a 512GB on the way. Upgrade soon.)
5" MIPI/DSI local display
RPi Pico USB Consumer Control Device
Amp hat based on MA12070P (not the official Infineon hat, in fact I have very little info on it. Picked it up on Taobao)
24V 5A power brick (powers the whole system through the amp hat)

Thanks,
Nathan

PS -- if you're interested in the Pico software, let me know. Just doing a quick cleanup/comment session of it now.
I truly want it but with some more button and maybe two encoders and ir

I would not mind making a PCB and sharing it.
 
There is an XHCI (i.e. the VL805 USB3 controller) error message at 443 secs (7.5 minutes) after boot. But the dump looks a bit weird:

Code:
[  443.801326] xhci_hcd 0000:01:00.0: ERROR Transfer event
[ 443.801348] xhci_hcd 0000:01:00.0: @000000042ad16140 00000000 00000000 0e000000 04028001

Source code for rpi kernel 5.15 does not contain any "Transfer event"-only string, only strings with extended error information:

Code:
pavel@precision:~/work/rpi-gadget/linux$ rgrep "Transfer event" *
drivers/usb/host/xhci.h:/* Transfer event TRB length bit mask */
drivers/usb/host/xhci-ring.c:        xhci_err(xhci, "ERROR Invalid Transfer event\n");
drivers/usb/host/xhci-ring.c:             "ERROR Transfer event for disabled endpoint slot %u ep %u\n",
drivers/usb/host/xhci-ring.c:            xhci_err(xhci, "ERROR Transfer event for unknown stream ring slot %u ep %u\n",
drivers/usb/host/xhci-ring.c:                    "ERROR Transfer event TRB DMA ptr not "
drivers/usb/cdns3/cdnsp-ring.c:                    "ERROR Transfer event TRB DMA ptr not "
drivers/usb/cdns3/cdnsp-gadget.h:/* Transfer event TRB length bit mask. */

The formatting in the next line of your dump is corrupted - missing space character in the time block - look at the alignment

The full dump is appended with another fragment of the dump.

Could perhaps the dump you uploaded have been edited/incomplete?