Completely distorted sound (Volumio 1.55 on R-Pi model B)

Hi all,

I’ve been happily using Volumio for over 1,5 years now (even when it was still RaspyFi) and it works great for me. Even with limited knowledge of UNIX it ran straight-out-of-the-box for me. Up until now…
I upgraded to v1.55 last week, and it doesn’t play well on my Raspberry Pi Model B, to say the least. The sound is completely distorted, not even a single musical sound can be made from it anymore.
I know it can gives some pops/cracks during updating of the database, so I waited for a full day to try again (usually update takes about 3 hours, only 110 Gb of music).
The problem occurs for FLAC and MP3 files playback, and also via Airplay.

To illustrate what how distorted/unrecognizable the sound is, I’ve recorded a sample: Sample
Spoiler: it’s supposed to be Art Blakey & The Jazz Messenger, not some weird psycho/electro/underground/whatever.

Set-up: Raspberry Pi Model B, EdiMax wifi adapter, Schiit Modi USB DAC. Pi gets its power from a powered USB hub, to which also the DAC and a harddrive are connected. The USB hub is a generic 4-port hub that I bought from an online store that recommended this one for the Pi. Power supply is the 5V, 2A adapter that goes along with it.
I previously used a Transcend 8 gb Class 10 sd card. I also tried a brand new Kingston 8 Gb Class 10 sd card, as I thought Volumio might not have installed on the older sd card anymore.

Like I said, my knowledge of UNIX is limited (I pick up fast though), and I have no idea where to start. Version 1.5 worked fine soundwise (but would freeze after few hours of idle, that’s why I upgraded), but I don’t have the v1.5 install files anymore. So I’m lost without music at the moment…
Apart from a different SD card, I’ve also tried changing the buffer settings in Volumio, without result unfortunately.

Any help would be greatly appreciated!

Edit: added the specs of the system (sorry, forgot that!)

Found the older versions on SourceForge, so just downgraded it to v1.51. Playback is fine again. Hopefully it will freeze less often than v1.50.
Any ideas to why v1.55 didn’t work on the Pi?

I have a similar problem: with iMix USB and 1.55 on R.Pi B+, the sound has WAY too much bass.
I checked with alsamixer but the selector is to zero.

What could have caused this change?

I’m back to v1.51 now, but playback is laggy. It stops and lags quite often (1-4 times per minute). Somewhat like what one would expect during database update, but that’s already finished.

I’m actually having the same issue. I had been using 1.4 for a few weeks with my Pi B with no issues connected via HD and outputting to my Modi. I got a new B+ and was getting what I call the “robot music” from it. I’ve swapped back and forth between the B and B+ and both only work with 1.4.

My guess is it is an issue with between the new version and the Modi, but I haven’t seen many other threads with this issue. I guess I am going to be trying 1.51 tonight because 1.55 really has been an improvement in functionality over 1.4. No matter what I do, 1.4 gives me library update issues both through NAS and USB.

Thanks Sharkz. I was out for two weeks, so missed your reply.

I completely reinstalled the Pi last night, and while I was at it I also re-thought how everthing was wired. It should be better now (at least it makes more sense to me), but Volumio 1.55 still doesn’t work. Again, the “robot sound” as you call it.
Good to hear that 1.51 works, I’m going to try that one soon because it’s driving me mad that my Pi doesn’t work anymore…

I think it’s strange thought that it would be a problem between the Modi and Volumio. As far as I know, the Modi is about the easiest connectable DAC around; I bet it even works plug 'n play on my Android phone. Indeed, also remarkable that no one else has mentioned this problem.

Hello PaulM

are you able to test the 1.55 version with the following:

edit the file /boot/cmdline.txt (with vi or nano) and add “dwc_otg.fiq_fsm_mask=0x1” to the first line (without the quotes off course). Please be sure that all parameters are on one line and there are spaces in between.

After editing reboot your R-Pi and try to play music via your DAC.

It may be that it will not work straight away. If not try with other variables (e.g. 0x2, 0x3, 0x4, 0x5, 0x6 and 0x7).

Last night I found out that this was the solution I needed for my Audio-GD USB DAC (see also audio-usb-dac-nfb11-not-supported-t2221-10.html). I think/assume that the older Volumio versions are using an older kernel that is less critical than the newer ones. I have done some searching on the Web and read some articles about changes in the way kernel modules are working (especially for the R-Pi). Certain kernel parameters that were there in older kernels are not used anymore and need to be addressed in a different manner.

I hope that this option works for you (and hopefully also other people with USB DACs too)

Great, thanks. Going to try that right away when I get home. I was already preparing for a fresh install of 1.51.

Reading from the other topic, the problem is that the RPi and DAC are not working async. What does this fix do? Does it change the RPi’s internal clock, or does it let them run async again?

you may find more information in this topic: raspberrypi.org/forums/viewt … 28&t=70437

the masks mean:

0x1 = non-periodic split transactions
0x2 = periodic split transactions
0x4 = high-speed isochronous transactions

where 0x7 is the bitwise or of all above. 0x3 means only “non-periodic split transactions” and “periodic split transactions” are enabled and “high-speed isochronous transactions” is disabled.

I’m not a kernel expert myself so not sure what it does (I read the topic, but does not make a lot of sense to me :confused: )

Which mask worked for you in the end?
I’ll dive into tonight, maybe I can make an educated guess on which one to use, given that the RPi and DAC are possibly not async while it should be.

mine works with 0x1. I dit not have the time to check out the other ones.

It would be great if someone is able to “translate” the options and their effect/usage. I’ll do my best to get more information (other than already described in the topic raspberrypi.org/forums/viewt … 28&t=70437)

Sweet, mine works as well wltih 0x1. Finally! :slight_smile:

This website made it a bit clearer for me: beyondlogic.org/usbnutshell/usb4.shtml

The difference between 0x1 and 0x2, and 0x4 is the communication protocol. 0x1 and 0x2 are interrupt, whereas 0x4 is continuous. The isochronous (continuous) is recommended for sensitive data like audio and video. Reason is, as I understand it, that in interrupt protocol, the host (RPi) only checks requests (interrups) for data from the device (DAC) every now and then. This means it might happen that data is not sent in time for the DAC, resulting in delay/latency and even pops/cracks in the music. As the isochronous is a continous connection, this does not happen.

Reading this information about the difference between synchronous, asynchronous and isosynchronous, I would say isochronous (mask 0x4) is the best setting for the RPi to DAC.
For synchronous data transaction, the clocks of both devices have to be synced. This is what probably went wrong before.
In asynchronous, data is transferred non-synchronized. The host (RPi) sends data random intervals and random data rates.
With isochronous, data is transferred at random intervals (like async), but it has to be sent within certain time intervals (like synced). The clocks do not have to be matched for this, but a continuous connection is maintained for the device to request data in time. This website also mentions this method is most commonly used/preferred for audio- and vidio-data transfer.

Long story short: I’m going to set mine to 0x4 tonight and see if it still works :wink:
I hope this makes it a bit clearer for you.

Update: interestingly enough, mask 0x4 gives the completely distorted sound again. 0x2 does work.
Not sure why though, it should work as USB Audio 1.0 (that is wat the Modi uses) supports async isochronous data transfer (see usb.org/developers/docs/devc … udio10.pdf page 19).

Have been listening to it yesterday and today; 0x1 gives occassional pops, especially with FLACs. Set it to 0x2, let’s see if that works better.

0x1 worked for me using the Pi 2 and the original Schitt Modi. Thanks so much! The sound coming through before this fix was completely garbled. Really enjoying my new setup now!

My Schiit Modi works with 0x3 … very interesting this 3d, I’m understanding much more …

I can confirm that the solution from one of the first post works for me to.
I also have a shiit modi usb dac and had the crackling sound as well that a music file was played in secs instead of the normal time.
Putting in the solution given by MSH and rebooted the rpi b and finally i can play music.
Is this maybe an issue with the shiit dacs?

Glad to hear things are working now, ikkeenjij36. I did not “invent” this solution myself, but found information on the Web and when I was playing with another audio streaming tool (PiCorePlayer in combination with Daphile running on anoter PC). With my own USB-DAC I still had some very small “ticks and clicks” after using this solution, but this may be something related to this particular DAC (Audio-GD). I am not using this DAC anymore in combination with my Pi (I use the DigiBerry DAC), so the problem is not occurring anymore.

Happy listening !!! :slight_smile:

The option 0x4 work well for me on 1.55 on pi 2 with USB dac Arcam RDAC for just 1 day. The problem came back again after I shutdown and turn back on one day after.