Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Beocreate storing sound adjustments fails #85

Open
weschner opened this issue Apr 7, 2020 · 8 comments
Open

Beocreate storing sound adjustments fails #85

weschner opened this issue Apr 7, 2020 · 8 comments

Comments

@weschner
Copy link

weschner commented Apr 7, 2020

Downloaded and booted HiFiBerryOS 20200403 on Beocreate with Pi 4.
Selected "Other Speaker" as Model and wanted to store to board in order to use it without Pi or with 3rd party software.
Storing Sound Adjustments fails repeatedly, also with different speaker model selected.
Thanx for help, Wolfgang

Bildschirmfoto 2020-04-06 um 22 31 15
Bildschirmfoto 2020-04-06 um 22 28 37

@tuomashamalainen
Copy link
Collaborator

Hi Wolfgang,

there might be information in the logs about why this fails. If you just tried to store the adjustments, please go to General -> Diagnostics and collect the information. You can then attach the collected archive here (it contains no personal information, but if you prefer you can send it to me privately to exttpt at bang-olufsen dot dk) and I will have a look at it.

Best,
Tuomas from Bang & Olufsen

@weschner
Copy link
Author

weschner commented Apr 7, 2020

Hi Tuomas, thanks for the quick reply. Have attached teh Diagnostics archive. This is my procedure:

start with fresh HiFiBerryOS SD card, version Pi 4

In initial setup, choose Germany and "Other Speaker"

Perform further setup from right to left:

General
    enable SSH
    check Software update: 20200403 up to date
Network
    enable Wireless
Sources
    enable Optical
Sound
    Other Speaker: already set
    Listening Mode: leave untouched
    Channels, Advanced Mode:
        all channels on Full-Range, leave unchanged
    Leave Chaining, Equalizer, Room Compensation untouched
    DSP Programs, Advanced: store sound adjustments => failed

go back to

General
    Diagnostics: collect information, save as hifiberry-debug_202004071749.zip

hifiberry-debug_202004071749.zip

@tuomashamalainen
Copy link
Collaborator

Thank you Wolfgang, very informative. I will take time to look at your diagnostics tomorrow and get back to you if/when I find something or need anything more from you.

@weschner
Copy link
Author

weschner commented Apr 7, 2020

one small addition: when I try to store from SSH terminal, it says:

dsptoolkit store

can't retrieve XML file from server

which I cannot interpret ...

@tuomashamalainen
Copy link
Collaborator

Hmm, I might have a solution for you already. Did you happen upgrade from another Raspberry Pi hardware version or otherwise do a fresh installation of the operating system (in other words, you have used this particular Beocreate board before with another OS installation)?

If the answer is yes, please select Beocreate Universal from the list of DSP programs (in the same screen as you find the option to store sound adjustments) and Install/Reinstall it. Then reboot the system and try storing sound adjustments again.

Here's why this happens. There is a server running on the Raspberry Pi that talks to the DSP, and other things talk to this server when they want to read/write data to DSP. We use XML files to store the program but also a "map" of where different things in the DSP are stored. Beocreate keeps these files at hand so it has its own map of the DSP, but the server only gets this XML file when you install a DSP program.

On a new board that hasn't been used this happens automatically, but if Beocreate sees that the DSP program that's stored in the board is already one it knows, it won't be installed again. This means that the DSP server will not know which program is stored, which causes certain operations that are not performed by Beocreate but HiFiBerry DSPToolkit to fail – such as this one.

Coincidentally, this is something I was working to fix yesterday and today and will be addressed in the next update.

Let me know if the proposed solution works for you.

Tuomas

@weschner
Copy link
Author

weschner commented Apr 7, 2020

Yeah, it works! Great.
Indeed, I probably left the board yesterday with settings stored from the "DAC+ DSP Universal" program and started today with fresh OS. Reinstalling Beocreate Universal program + reboot & then store sound adjustments did the trick.
I am listening through Volumio right now. Also, pops that I heard yesterday e.g. when changing sample rates seem to be lower in volume.
If you are working on this issue, you might consider to treat volume settings separately when storing sound adjustments. I mean the following: When sound adjustments are stored with a certain volume setting of HiFiBerryOS (as in lower right corner), this seems to be the maximum volume when the board is being restarted without HiFiBerryOS. That maximum volume could instead be set by the values in "Sound>Basics>Volume Limit". Do you get what I mean?
Thanks - Wolfgang

@tuomashamalainen
Copy link
Collaborator

Thanks Wolfgang.

I get what you're saying and I have to think about how this could be implemented in a way that's safe and predictable – the last thing we want is people damaging their ears or equipment because signal is passed through the DSP at maximum volume. Because of this, the default volume of the DSP program (when it is first installed) is relatively low and the set master volume is respected when sound adjustments are stored.

Beocreate 2/HiFiBerryOS adjusts master volume in the DSP for best sound quality, but other operating systems aren't aware of this and will probably use a software mixer – this will then work within the limits of whatever the master volume is set to when sound adjustments are stored. The master volume control is connected in series to the input-specific volume limiters, so if you want to bypass either, right now you need to set that control to maximum before engaging the store feature.

@weschner
Copy link
Author

Thanks Tuomas,
I follow your arguments and agree that it's safer and more predictable to leave things as they are.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants