Sound on Librem5

You do, however, get these questions with PipeWire in its present state. I am optimistic this will improve fairly soon.

How do you mean that? :thinking:

PipeWire is not being used on PureOS right now. But yeah, I also guess we can be optimistic: Fedora 34 will probably (if things went as planned) be the first distribution shipping with PipeWire by default in about 2 ½ months!

This has just reached amber-phone-staging and should migrate into amber-phone in a few days.

7 Likes

How about music quality? Music sounds great through headphones. But through the speaker is OK but not as great. I wonder if one can improve the sound from the speakers somehow? Maybe with some alsa settings? Equalizer? I use lollypop (and try to learn it… :slight_smile:)

Yes, it does.

Have you tried the Purism-supplied ear buds? Or any other ear buds? i.e. as an alternative to the speakers.

Yes. I find the sound very very very good from the supplied earbuds. But not very good from the speakers. Speakers could be better. But from the earbuds I can not see flagship models of other brands offering better sound.

The speaker of the L5 is a good speaker it only need a calibrated stereo output. @dos

That is exactly what I asked before about the speakers. If you can improve the output quality. The defaults are not so good. But the output to the headphones is great. Tried with Audio-Technica X50 headphones and the quality is excellent. If the speakers can be adjusted to produce better quality that would be great.

Trying to improve the sound I tested pulseaudio-equalizer-ladspa, first on my L13. It compiled OK and works great. The sound improved a lot. So I now try to install in in L5, but I can not get the dependencies it needs. (by the way on L13 and other platforms the pulseaudio-equalizer (without the -ladspa) does not work)). So on L5 running meson build I get the error below. What should be installed in order for L5 to find glib-compile-resources? Can someone see if anything else is missing?

I know lollipop has its own equalizer, but I Iove my curseradio-improved at the command line for listening to radio stations and actually works great on L5 !!

[purism@pureos equalizer-master]$ meson build
The Meson build system
Version: 0.51.1
Source dir: /home2/atsol/Downloads/equalizer-master
Build dir: /home2/atsol/Downloads/equalizer-master/build
Build type: native build
Project name: pulseaudio-equalizer-ladspa
Project version: 2.7.2
Build machine cpu family: aarch64
Build machine cpu: aarch64
Program python3 found: YES (/usr/bin/python3)
WARNING: Project targetting ‘>= 0.46.0’ but tried to use feature introduced in e
Configuring pulseaudio-equalizer-gtk using configuration
Configuring pulseaudio-equalizer using configuration
Found pkg-config: /usr/bin/pkg-config (0.29)
WARNING: Could not detect glib version, assuming 2.54. You may get build errors.
Traceback (most recent call last):
File “/usr/lib/python3/dist-packages/mesonbuild/mesonmain.py”, line 127, in rn
return options.run_func(options)
File “/usr/lib/python3/dist-packages/mesonbuild/msetup.py”, line 240, in run
app.generate()
File “/usr/lib/python3/dist-packages/mesonbuild/msetup.py”, line 158, in genee
self._generate(env)
File “/usr/lib/python3/dist-packages/mesonbuild/msetup.py”, line 187, in _gene
intr.run()
File “/usr/lib/python3/dist-packages/mesonbuild/interpreter.py”, line 3917, in
super().run()
File “/usr/lib/python3/dist-packages/mesonbuild/interpreterbase.py”, line 407n
self.evaluate_codeblock(self.ast, start=1)
File “/usr/lib/python3/dist-packages/mesonbuild/interpreterbase.py”, line 431k
raise e
File “/usr/lib/python3/dist-packages/mesonbuild/interpreterbase.py”, line 425k
self.evaluate_statement(cur)
File “/usr/lib/python3/dist-packages/mesonbuild/interpreterbase.py”, line 436t
return self.function_call(cur)
File “/usr/lib/python3/dist-packages/mesonbuild/interpreterbase.py”, line 773l
return func(node, posargs, kwargs)
File “/usr/lib/python3/dist-packages/mesonbuild/interpreterbase.py”, line 285d
return f(*wrapped_args, **wrapped_kwargs)
File “/usr/lib/python3/dist-packages/mesonbuild/interpreterbase.py”, line 174d
return f(*wrapped_args, **wrapped_kwargs)
File “/usr/lib/python3/dist-packages/mesonbuild/interpreter.py”, line 3458, ir
self.evaluate_codeblock(codeblock)
File “/usr/lib/python3/dist-packages/mesonbuild/interpreterbase.py”, line 431k
raise e
File “/usr/lib/python3/dist-packages/mesonbuild/interpreterbase.py”, line 425k
self.evaluate_statement(cur)
File “/usr/lib/python3/dist-packages/mesonbuild/interpreterbase.py”, line 440t
return self.method_call(cur)
File “/usr/lib/python3/dist-packages/mesonbuild/interpreterbase.py”, line 810l
return obj.method_call(method_name, args, kwargs)
File “/usr/lib/python3/dist-packages/mesonbuild/interpreter.py”, line 1708, il
value = fn(state, args, kwargs)
File “/usr/lib/python3/dist-packages/mesonbuild/interpreterbase.py”, line 285d
return f(*wrapped_args, **wrapped_kwargs)
File “/usr/lib/python3/dist-packages/mesonbuild/interpreterbase.py”, line 174d
return f(*wrapped_args, **wrapped_kwargs)
File “/usr/lib/python3/dist-packages/mesonbuild/modules/gnome.py”, line 156, s
state, ifile, source_dirs, dependencies)
File “/usr/lib/python3/dist-packages/mesonbuild/modules/gnome.py”, line 239, s
pc, stdout, stderr = Popen_safe(cmd, cwd=state.environment.get_source_dir())
File “/usr/lib/python3/dist-packages/mesonbuild/mesonlib.py”, line 967, in Poe
stdout=stdout, stderr=stderr, **kwargs)
File “/usr/lib/python3.7/subprocess.py”, line 775, in init
restore_signals, start_new_session)
File “/usr/lib/python3.7/subprocess.py”, line 1522, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: ‘glib-compile-resources’

Does the hardware handle dsd flies?

If you are going to be compiling from source, I’d recommend installing apt-file, it comes in quite useful for determining which, if any, package includes needed files when the the source documentation doesn’t include OS specific dependencies.

:~$ apt-file search glib-compile-resources
libglib2.0-dev-bin: /usr/bin/glib-compile-resources
libglib2.0-dev-bin: /usr/share/man/man1/glib-compile-resources.1.gz
libglib2.0-doc: /usr/share/gtk-doc/html/gio/glib-compile-resources.html

From the output of apt-file you can determine that glib-compile-resources is included within the libglib2.0-dev-bin package.

I’m of the opinion that the internal speaker of the phone is not designed for music playback and it’s only there to support the speaker/handsfree calling feature. For that purpose it is fine, I would think that applying EQ may improve it to some degree, but for listening to music through the internal speaker I expect it’ll will still sound quite poor in the grand scheme of things. Although, audio quality is very much a subjective thing so may be a touch of EQ will do it for you.

1 Like

apt-file looks to be a useful tool. I understand what you say about the speaker. But a little improvement will not hurt. The use of equalizer is useful for the headphones too. It is different to listen to Rock and different to listen to Classical Music.
I will report back if I manage to use the app and it is usable on L5. Thanks.

DONE. The equalizer works with the following two issues: you need to switch to landscape to see the button that enables it. After that you may return to portrait for switching profiles. But it takes about 16 seconds to switch between them.

So if you have something playing, and you switch the profile the music will pause for about 16 seconds and then it will continue with the new profile. I set it to “Club” and I plan to leave it there. This produces the file /home/purism/.config/pulse/equalizerrc

The sound will use this without rerunning the application. Removing the file restores equalizer to “Flat”.

By the way how do you remove an app from the first screen without uninstalling? For example, I installed mpv since it is used by curseradio. But I do not need to have an mpv icon of the first telephone screen with the rest of the apps. How do I remove it without uninstalling it?

1 Like

Maybe you have to delete or move the corresponding *.desktop file but I don’t know the location.

You can (re)move the associated .desktop file. It’s not something I have needed to do on the phone as yet so I can’t say for sure where the file is installed but it should be easy to find, you can either search the system or use either apt-file or dpkg to determine where the file is installed.

Using mpv as an example, you can use…

apt-file list mpv | grep desktop

or

dpkg -L mpv | grep desktop

either of those will return the location of the desktop file and then you can (re)move it.

the .desktop shown in the main screen are in /usr/share/applications

Thanks. I moved mpv.desktop to mpv.desktop-backup and the icon got removed.