* Using Pipewire for PulseAudio and JACK in Guix
@ 2024-10-28 13:27 Divya Ranjan via Development of GNU Guix and the GNU System distribution.
2024-10-28 13:46 ` Divya Ranjan via Development of GNU Guix and the GNU System distribution.
2024-10-31 18:19 ` Divya
0 siblings, 2 replies; 14+ messages in thread
From: Divya Ranjan via Development of GNU Guix and the GNU System distribution. @ 2024-10-28 13:27 UTC (permalink / raw)
To: guix-devel; +Cc: Ricardo Wurmus
Hello,
I’m having some issues getting a unified audio setup using PipeWire only, i.e., PipeWire alongwith ALSA to route all audio using PulseAudio and JACK emulation. I had such a setup previously on the Arch GNU/Linux distribution, but I have been struggling since I switched to GNU Guix.
I want first of all the applications to be handled through PipeWire’s PulseAudio emulation, such as audio to browser, telegram-desktop etc. I used to have a PipeWire configuration with sources and sinks for each of the major applications, which was then routed using JACK emulation of PipeWire through the help of a patchbay/JACK client such as Carla or qpwgraph/patchage.
I have gone with the barebones configuration of PipeWire that I can find for Guix, to that end, my system configuration includes the following services:
#+begin_src guile
(services
(append (list
(service pam-limits-service-type
(list
(pam-limits-entry "@realtime" 'both 'rtprio 99)
(pam-limits-entry "@realtime" 'both 'memlock 'unlimited)))))
(modify-services %desktop-services
(alsa-service-type config =>
(alsa-configuration
(pulseaudio? #f)))))
#+end_src
So I’ve got the realtime configuration declared here, and I also have:
#+begin_src guile
(groups (cons*
(user-group
(name "realtime")
(system? #t))
%base-groups))
#+end_src
and then realtime is added to `supplementary-groups` in `user-account`.
And, similarly I’ve added the following in my home configuration’s services:
#+begin_src guile
(services (append (list
(service home-pipewire-service-type
(home-pipewire-configuration
(wireplumber wireplumber)
(enable-pulseaudio? #t))))))
#+end_src
After this configuration, I can run JACK through jackd, even though I don’t have jack installed in system or home configuration. Does it get installed through some other package’s dependency?
Furthermore, when I try to use a JACK client through `pw-jack' it doesn’t work. For example, running `pw-jack qjackctl' and starting JACK through it gives the following error in qjackctl’s messages:
13:13:37.600 JACK is starting...
13:13:37.600 /run/current-system/profile/bin/jackd -dalsa -dhw:0
13:13:37.606 JACK was started with PID=4007.
/run/current-system/profile/bin/jackd: symbol lookup error: /run/current-system/profile/bin/jackd: undefined symbol: clock_source
13:13:37.608 JACK was stopped
13:13:39.662 Could not connect to JACK server as client. - Overall operation failed. - Unable to initialize client. Please check the messages window for more info.
When I try `pw-jack carla' as well, the same thing happens, it says libjack.so.0 is loaded successfully but when I start Carla’s engine, it says: “Failed to create new JACK client.”
Now, I don’t know what’s going wrong where, but I want to JACK with PipeWire, unless one can recommend me good reasons to use JACK externally alongside PipeWire. Also, even PipeWire’s pulseaudio seems finicky, sometimes works sometimes doesn’t. Sometimes applications like browser (librewolf, ungoogled-chromium) can’t access microphone or speaker (while permissions are fine), at other times, messing around with pavucontrol makes it work. I am not sure what exactly is making it work and what is failing, any suggestions for how to conduct some debugging would be of help. I need a consistently functioning system of pipewire emulating pulseaudio for applications and jack for routing, that doesn’t fail.
Also, how can I configure my ALSA device cards, and have it reproduce gain? Ipreviously used to have an ~/.config/asound.state that is stored and restored using alsactl. Doing that doesn’t seem to preserve anthing.
I’ve attached my system.scm and home configuration for reference if needed. Also CC’ing Ricardo since he’s the “sound guy” I know for GUIX :)
Regards,
--
Divya Ranjan,
Philosophy, Mathematics, Libre Software.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Using Pipewire for PulseAudio and JACK in Guix
2024-10-28 13:27 Using Pipewire for PulseAudio and JACK in Guix Divya Ranjan via Development of GNU Guix and the GNU System distribution.
@ 2024-10-28 13:46 ` Divya Ranjan via Development of GNU Guix and the GNU System distribution.
2024-11-01 7:31 ` Ricardo Wurmus
2024-10-31 18:19 ` Divya
1 sibling, 1 reply; 14+ messages in thread
From: Divya Ranjan via Development of GNU Guix and the GNU System distribution. @ 2024-10-28 13:46 UTC (permalink / raw)
To: guix-devel
Also, I saw that jack_mixer[0] is missing from the main guix package repository, I’d like to have that added. Since its the most minimal and straightforward JACK mixer I’ve been using over the last 4-5 years. Since its a Python + C application mostly, so one shouldn’t have any major issues packaging it? Any advice would be great.
[0]: https://github.com/jack-mixer/jack_mixer
Regards,
--
Divya Ranjan,
Philosophy, Mathematics, Libre Software.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Using Pipewire for PulseAudio and JACK in Guix
2024-10-28 13:46 ` Divya Ranjan via Development of GNU Guix and the GNU System distribution.
@ 2024-11-01 7:31 ` Ricardo Wurmus
2024-11-02 13:36 ` Divya Ranjan via Development of GNU Guix and the GNU System distribution.
0 siblings, 1 reply; 14+ messages in thread
From: Ricardo Wurmus @ 2024-11-01 7:31 UTC (permalink / raw)
To: Divya Ranjan via Development of GNU Guix and the GNU System distribution.
Cc: Divya Ranjan
Hi,
> Also, I saw that jack_mixer[0] is missing from the main guix package
> repository, I’d like to have that added. Since its the most minimal
> and straightforward JACK mixer I’ve been using over the last 4-5
> years. Since its a Python + C application mostly, so one shouldn’t
> have any major issues packaging it? Any advice would be great.
>
> [0]: https://github.com/jack-mixer/jack_mixer
have you attempted to package it yet? I can help with review and
testing.
--
Ricardo
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Using Pipewire for PulseAudio and JACK in Guix
2024-11-01 7:31 ` Ricardo Wurmus
@ 2024-11-02 13:36 ` Divya Ranjan via Development of GNU Guix and the GNU System distribution.
2024-11-02 16:08 ` Kaelyn via Development of GNU Guix and the GNU System distribution.
0 siblings, 1 reply; 14+ messages in thread
From: Divya Ranjan via Development of GNU Guix and the GNU System distribution. @ 2024-11-02 13:36 UTC (permalink / raw)
To: guix-devel
[-- Attachment #1: Type: text/plain, Size: 2165 bytes --]
Hello Ricardo,
Ricardo Wurmus <rekado@elephly.net> writes:
> Hi,
>
>> Also, I saw that jack_mixer[0] is missing from the main guix package
>> repository, I’d like to have that added. Since its the most minimal
>> and straightforward JACK mixer I’ve been using over the last 4-5
>> years. Since its a Python + C application mostly, so one shouldn’t
>> have any major issues packaging it? Any advice would be great.
>>
>> [0]: https://github.com/jack-mixer/jack_mixer
>
> have you attempted to package it yet? I can help with review and
> testing.
Indeed, I have. A package definition can be found at my repository[0], currently most things seem to be working, but I get this error while doing `guix package --install-from-file=audio.scm`:
#+begin_src shell
$ guix package --install-from-file=/home/divya/.config/guix/packages/audio.scm
The following package will be installed:
jack-mixer 19
substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
The following derivation will be built:
/gnu/store/1cnsydazihgzs0wv6l6mh4cmm894q2l1-jack-mixer-19.drv
65.4 MB will be downloaded
python-pygobject-3.47.0 239KiB 311KiB/s 00:01 ▕██████████████████▏ 100.0%
gcc-11.4.0 28.2MiB 4.2MiB/s 00:07 ▕██████████████████▏ 100.0%
gcc-toolchain-11.4.0 6KiB 68KiB/s 00:00 ▕██████████████████▏ 100.0%
building /gnu/store/1cnsydazihgzs0wv6l6mh4cmm894q2l1-jack-mixer-19.drv...
0% 'install' ▕ ▏builder for `/gnu/store/1cnsydazihgzs0wv6l6mh4cmm894q2l1-jack-mixer-19.drv' failed with exit code 1
build of /gnu/store/1cnsydazihgzs0wv6l6mh4cmm894q2l1-jack-mixer-19.drv failed
View build log at '/var/log/guix/drvs/1c/nsydazihgzs0wv6l6mh4cmm894q2l1-jack-mixer-19.drv.gz'.
guix package: error: build of `/gnu/store/1cnsydazihgzs0wv6l6mh4cmm894q2l1-jack-mixer-19.drv' failed
#+end_src
I’ve attached the build logs, let me know if you have an idee about what’s failing and maybe test the package definition yourself.
[-- Attachment #2: nsydazihgzs0wv6l6mh4cmm894q2l1-jack-mixer-19.drv.gz --]
[-- Type: application/octet-stream, Size: 5553 bytes --]
[-- Attachment #3: Type: text/plain, Size: 246 bytes --]
Also, do I need to take the discussion of this package in a separate thread?
[0]: https://codeberg.org/divyaranjan/dotfiles/src/branch/master/.config/guix/packages/audio.scm
Regards,
--
Divya Ranjan,
Philosophy, Mathematics, Libre Software.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Using Pipewire for PulseAudio and JACK in Guix
2024-11-02 13:36 ` Divya Ranjan via Development of GNU Guix and the GNU System distribution.
@ 2024-11-02 16:08 ` Kaelyn via Development of GNU Guix and the GNU System distribution.
2024-11-02 17:18 ` Divya
0 siblings, 1 reply; 14+ messages in thread
From: Kaelyn via Development of GNU Guix and the GNU System distribution. @ 2024-11-02 16:08 UTC (permalink / raw)
To: Divya Ranjan; +Cc: guix-devel
On Saturday, November 2nd, 2024 at 6:36 AM, Divya Ranjan via "Development of GNU Guix and the GNU System distribution." <guix-devel@gnu.org> wrote:
>
>
> Hello Ricardo,
>
> Ricardo Wurmus rekado@elephly.net writes:
>
> > Hi,
> >
> > > Also, I saw that jack_mixer0 is missing from the main guix package
> > > repository, I’d like to have that added. Since its the most minimal
> > > and straightforward JACK mixer I’ve been using over the last 4-5
> > > years. Since its a Python + C application mostly, so one shouldn’t
> > > have any major issues packaging it? Any advice would be great.
> >
> > have you attempted to package it yet? I can help with review and
> > testing.
>
>
> Indeed, I have. A package definition can be found at my repository0, currently most things seem to be working, but I get this error while doing `guix package --install-from-file=audio.scm`:
>
> #+begin_src shell
> $ guix package --install-from-file=/home/divya/.config/guix/packages/audio.scm
> The following package will be installed:
> jack-mixer 19
>
> substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 100.0%
> substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
> The following derivation will be built:
> /gnu/store/1cnsydazihgzs0wv6l6mh4cmm894q2l1-jack-mixer-19.drv
>
> 65.4 MB will be downloaded
> python-pygobject-3.47.0 239KiB 311KiB/s 00:01 ▕██████████████████▏ 100.0%
> gcc-11.4.0 28.2MiB 4.2MiB/s 00:07 ▕██████████████████▏ 100.0%
> gcc-toolchain-11.4.0 6KiB 68KiB/s 00:00 ▕██████████████████▏ 100.0%
> building /gnu/store/1cnsydazihgzs0wv6l6mh4cmm894q2l1-jack-mixer-19.drv...
> 0% 'install' ▕ ▏builder for `/gnu/store/1cnsydazihgzs0wv6l6mh4cmm894q2l1-jack-mixer-19.drv' failed with exit code 1 build of /gnu/store/1cnsydazihgzs0wv6l6mh4cmm894q2l1-jack-mixer-19.drv failed View build log at '/var/log/guix/drvs/1c/nsydazihgzs0wv6l6mh4cmm894q2l1-jack-mixer-19.drv.gz'. guix package: error: build of` /gnu/store/1cnsydazihgzs0wv6l6mh4cmm894q2l1-jack-mixer-19.drv' failed
> #+end_src
>
> I’ve attached the build logs, let me know if you have an idee about what’s failing and maybe test the package definition yourself.
Hi,
I just glanced at the build log you attached. The first thing I saw was meson erroring from an unhandled Python error, and scrolling up quickly revealed the error. It looks like your install phase is failing because it is trying to write outside of the store:
PermissionError: [Errno 13] Permission denied: '/etc/xdg'
It looks like that project's meson.build hard-codes a reference to a path under /etc/xdg at https://github.com/jack-mixer/jack_mixer/blob/main/meson.build#L49
Cheers,
Kaelyn
>
>
> Also, do I need to take the discussion of this package in a separate thread?
>
> 0: https://codeberg.org/divyaranjan/dotfiles/src/branch/master/.config/guix/packages/audio.scm
>
> Regards,
>
> --
> Divya Ranjan,
> Philosophy, Mathematics, Libre Software.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Using Pipewire for PulseAudio and JACK in Guix
2024-11-02 16:08 ` Kaelyn via Development of GNU Guix and the GNU System distribution.
@ 2024-11-02 17:18 ` Divya
2024-11-02 23:00 ` Ricardo Wurmus
0 siblings, 1 reply; 14+ messages in thread
From: Divya @ 2024-11-02 17:18 UTC (permalink / raw)
To: Kaelyn; +Cc: guix-devel
[-- Attachment #1: Type: text/plain, Size: 3470 bytes --]
On 2 November 2024 16:08:32 GMT, Kaelyn <kaelyn.alexi@protonmail.com> wrote:
>
>
>
>
>
>On Saturday, November 2nd, 2024 at 6:36 AM, Divya Ranjan via "Development of GNU Guix and the GNU System distribution." <guix-devel@gnu.org> wrote:
>
>>
>>
>> Hello Ricardo,
>>
>> Ricardo Wurmus rekado@elephly.net writes:
>>
>> > Hi,
>> >
>> > > Also, I saw that jack_mixer0 is missing from the main guix package
>> > > repository, I’d like to have that added. Since its the most minimal
>> > > and straightforward JACK mixer I’ve been using over the last 4-5
>> > > years. Since its a Python + C application mostly, so one shouldn’t
>> > > have any major issues packaging it? Any advice would be great.
>> >
>> > have you attempted to package it yet? I can help with review and
>> > testing.
>>
>>
>> Indeed, I have. A package definition can be found at my repository0, currently most things seem to be working, but I get this error while doing `guix package --install-from-file=audio.scm`:
>>
>> #+begin_src shell
>> $ guix package --install-from-file=/home/divya/.config/guix/packages/audio.scm
>> The following package will be installed:
>> jack-mixer 19
>>
>> substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 100.0%
>> substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
>> The following derivation will be built:
>> /gnu/store/1cnsydazihgzs0wv6l6mh4cmm894q2l1-jack-mixer-19.drv
>>
>> 65.4 MB will be downloaded
>> python-pygobject-3.47.0 239KiB 311KiB/s 00:01 ▕██████████████████▏ 100.0%
>> gcc-11.4.0 28.2MiB 4.2MiB/s 00:07 ▕██████████████████▏ 100.0%
>> gcc-toolchain-11.4.0 6KiB 68KiB/s 00:00 ▕██████████████████▏ 100.0%
>> building /gnu/store/1cnsydazihgzs0wv6l6mh4cmm894q2l1-jack-mixer-19.drv...
>> 0% 'install' ▕ ▏builder for `/gnu/store/1cnsydazihgzs0wv6l6mh4cmm894q2l1-jack-mixer-19.drv' failed with exit code 1 build of /gnu/store/1cnsydazihgzs0wv6l6mh4cmm894q2l1-jack-mixer-19.drv failed View build log at '/var/log/guix/drvs/1c/nsydazihgzs0wv6l6mh4cmm894q2l1-jack-mixer-19.drv.gz'. guix package: error: build of` /gnu/store/1cnsydazihgzs0wv6l6mh4cmm894q2l1-jack-mixer-19.drv' failed
>> #+end_src
>>
>> I’ve attached the build logs, let me know if you have an idee about what’s failing and maybe test the package definition yourself.
>
>Hi,
>
>I just glanced at the build log you attached. The first thing I saw was meson erroring from an unhandled Python error, and scrolling up quickly revealed the error. It looks like your install phase is failing because it is trying to write outside of the store:
>
> PermissionError: [Errno 13] Permission denied: '/etc/xdg'
>
>It looks like that project's meson.build hard-codes a reference to a path under /etc/xdg at https://github.com/jack-mixer/jack_mixer/blob/main/meson.build#L49
>
>Cheers,
>Kaelyn
>
>>
>>
>> Also, do I need to take the discussion of this package in a separate thread?
>>
>> 0: https://codeberg.org/divyaranjan/dotfiles/src/branch/master/.config/guix/packages/audio.scm
>>
>> Regards,
>>
>> --
>> Divya Ranjan,
>> Philosophy, Mathematics, Libre Software.
Hello Kaelyn,
Thanks for pointing it out, indeed its trying to write into /etc/xdg.
How does one handle such a case when packaging in Guix?
Regards,
Divya Ranjan
[-- Attachment #2: Type: text/html, Size: 4620 bytes --]
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Using Pipewire for PulseAudio and JACK in Guix
2024-11-02 17:18 ` Divya
@ 2024-11-02 23:00 ` Ricardo Wurmus
2024-11-03 6:18 ` Divya Ranjan via Development of GNU Guix and the GNU System distribution.
2024-11-07 9:41 ` Divya Ranjan via Development of GNU Guix and the GNU System distribution.
0 siblings, 2 replies; 14+ messages in thread
From: Ricardo Wurmus @ 2024-11-02 23:00 UTC (permalink / raw)
To: Divya; +Cc: Kaelyn, guix-devel
Divya <divya@subvertising.org> writes:
> Thanks for pointing it out, indeed its trying to write into
> /etc/xdg.
> How does one handle such a case when packaging in Guix?
We'd patch the build system files to make it write to
$output/etc/xdg
instead.
--
Ricardo
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Using Pipewire for PulseAudio and JACK in Guix
2024-11-02 23:00 ` Ricardo Wurmus
@ 2024-11-03 6:18 ` Divya Ranjan via Development of GNU Guix and the GNU System distribution.
2024-11-03 11:50 ` Ricardo Wurmus
2024-11-07 9:41 ` Divya Ranjan via Development of GNU Guix and the GNU System distribution.
1 sibling, 1 reply; 14+ messages in thread
From: Divya Ranjan via Development of GNU Guix and the GNU System distribution. @ 2024-11-03 6:18 UTC (permalink / raw)
To: guix-devel
Ricardo Wurmus <rekado@elephly.net> writes:
> Divya <divya@subvertising.org> writes:
>
>> Thanks for pointing it out, indeed its trying to write into
>> /etc/xdg.
>> How does one handle such a case when packaging in Guix?
>
> We'd patch the build system files to make it write to $output/etc/xdg
> instead.
But wouldn’t that break with updates? Or, does one need to update the build system files everytime with a release? Do you think one should send a patch for this to the source tree, to make it compatible with both Guix and Non-Guix GNU/Linux distributions?
--
Divya Ranjan,
Philosophy, Mathematics, Libre Software.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Using Pipewire for PulseAudio and JACK in Guix
2024-11-03 6:18 ` Divya Ranjan via Development of GNU Guix and the GNU System distribution.
@ 2024-11-03 11:50 ` Ricardo Wurmus
2024-11-13 13:10 ` divya
0 siblings, 1 reply; 14+ messages in thread
From: Ricardo Wurmus @ 2024-11-03 11:50 UTC (permalink / raw)
To: Divya Ranjan via Development of GNU Guix and the GNU System distribution.
Cc: Divya Ranjan
Divya Ranjan via "Development of GNU Guix and the GNU System
distribution." <guix-devel@gnu.org> writes:
> Ricardo Wurmus <rekado@elephly.net> writes:
>
>> Divya <divya@subvertising.org> writes:
>>
>>> Thanks for pointing it out, indeed its trying to write into
>>> /etc/xdg.
>>> How does one handle such a case when packaging in Guix?
>>
>> We'd patch the build system files to make it write to
>> $output/etc/xdg
>> instead.
>
> But wouldn’t that break with updates? Or, does one need to
> update the
> build system files everytime with a release?
No, you'd use a G-expression and refer to #$output in the build
phase.
#$output will always have the value of the output directory.
> Do you think one should
> send a patch for this to the source tree, to make it compatible
> with
> both Guix and Non-Guix GNU/Linux distributions?
No need. Just patch it in a custom build phase.
--
Ricardo
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Using Pipewire for PulseAudio and JACK in Guix
2024-11-03 11:50 ` Ricardo Wurmus
@ 2024-11-13 13:10 ` divya
0 siblings, 0 replies; 14+ messages in thread
From: divya @ 2024-11-13 13:10 UTC (permalink / raw)
To: guix-devel; +Cc: Ricardo Wurmus
On 2024-11-03 11:50, Ricardo Wurmus wrote:
> Divya Ranjan via "Development of GNU Guix and the GNU System
> distribution." <guix-devel@gnu.org> writes:
>
>> Ricardo Wurmus <rekado@elephly.net> writes:
>>
>>> Divya <divya@subvertising.org> writes:
>>>
>>>> Thanks for pointing it out, indeed its trying to write into
>>>> /etc/xdg.
>>>> How does one handle such a case when packaging in Guix?
>>>
>>> We'd patch the build system files to make it write to $output/etc/xdg
>>> instead.
>>
>> But wouldn’t that break with updates? Or, does one need to update the
>> build system files everytime with a release?
>
> No, you'd use a G-expression and refer to #$output in the build phase.
> #$output will always have the value of the output directory.
>
>> Do you think one should
>> send a patch for this to the source tree, to make it compatible with
>> both Guix and Non-Guix GNU/Linux distributions?
>
> No need. Just patch it in a custom build phase.
Just for the record, jack-mixer has been added to the repository:
https://git.qa.guix.gnu.org/guix-patches/commit/gnu/packages?h=issue-74251&id=bf62681bf2fe7a61a07aa0ef05262a6dd39819c6
Regards,
Divya Ranjan
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Using Pipewire for PulseAudio and JACK in Guix
2024-11-02 23:00 ` Ricardo Wurmus
2024-11-03 6:18 ` Divya Ranjan via Development of GNU Guix and the GNU System distribution.
@ 2024-11-07 9:41 ` Divya Ranjan via Development of GNU Guix and the GNU System distribution.
1 sibling, 0 replies; 14+ messages in thread
From: Divya Ranjan via Development of GNU Guix and the GNU System distribution. @ 2024-11-07 9:41 UTC (permalink / raw)
To: guix-devel
Ricardo Wurmus <rekado@elephly.net> writes:
> Divya <divya@subvertising.org> writes:
>
>> Thanks for pointing it out, indeed its trying to write into
>> /etc/xdg.
>> How does one handle such a case when packaging in Guix?
>
> We'd patch the build system files to make it write to $output/etc/xdg
> instead.
Thanks Ricardo, I did that and finally the package builds and installs fine, but for some reason running jack_mixer gives the following error:
[divya@lambda divya]$ jack_mixer
Traceback (most recent call last):
File "/home/divya/.guix-profile/bin/jack_mixer", line 5, in <module>
from jack_mixer.app import main
ModuleNotFoundError: No module named 'jack_mixer'
Is this also a path issue?
The package definition can be found here[0] and the source of the package here[1], I think the package is almost ready, just fix this and I’ll send a patch.
[0]: https://codeberg.org/divyaranjan/dotfiles/blame/branch/master/.config/guix/packages/audio.scm
[1]: https://github.com/jack-mixer/jack_mixer
Regards,
--
Divya Ranjan,
Philosophy, Mathematics, Libre Software.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Using Pipewire for PulseAudio and JACK in Guix
2024-10-28 13:27 Using Pipewire for PulseAudio and JACK in Guix Divya Ranjan via Development of GNU Guix and the GNU System distribution.
2024-10-28 13:46 ` Divya Ranjan via Development of GNU Guix and the GNU System distribution.
@ 2024-10-31 18:19 ` Divya
1 sibling, 0 replies; 14+ messages in thread
From: Divya @ 2024-10-31 18:19 UTC (permalink / raw)
To: guix-devel
[-- Attachment #1: Type: text/plain, Size: 4406 bytes --]
On 28 October 2024 13:27:44 GMT, "Divya Ranjan via Development of GNU Guix and the GNU System distribution." <guix-devel@gnu.org> wrote:
>Hello,
>
>I’m having some issues getting a unified audio setup using PipeWire only, i.e., PipeWire alongwith ALSA to route all audio using PulseAudio and JACK emulation. I had such a setup previously on the Arch GNU/Linux distribution, but I have been struggling since I switched to GNU Guix.
>
>I want first of all the applications to be handled through PipeWire’s PulseAudio emulation, such as audio to browser, telegram-desktop etc. I used to have a PipeWire configuration with sources and sinks for each of the major applications, which was then routed using JACK emulation of PipeWire through the help of a patchbay/JACK client such as Carla or qpwgraph/patchage.
>
>I have gone with the barebones configuration of PipeWire that I can find for Guix, to that end, my system configuration includes the following services:
>
>#+begin_src guile
>(services
> (append (list
>
> (service pam-limits-service-type
> (list
> (pam-limits-entry "@realtime" 'both 'rtprio 99)
> (pam-limits-entry "@realtime" 'both 'memlock 'unlimited)))))
> (modify-services %desktop-services
> (alsa-service-type config =>
> (alsa-configuration
> (pulseaudio? #f)))))
>#+end_src
>
>So I’ve got the realtime configuration declared here, and I also have:
>
>#+begin_src guile
>(groups (cons*
> (user-group
> (name "realtime")
> (system? #t))
> %base-groups))
>#+end_src
>
>and then realtime is added to `supplementary-groups` in `user-account`.
>
>And, similarly I’ve added the following in my home configuration’s services:
>
>#+begin_src guile
>(services (append (list
> (service home-pipewire-service-type
> (home-pipewire-configuration
> (wireplumber wireplumber)
> (enable-pulseaudio? #t))))))
>#+end_src
>
>After this configuration, I can run JACK through jackd, even though I don’t have jack installed in system or home configuration. Does it get installed through some other package’s dependency?
>
>Furthermore, when I try to use a JACK client through `pw-jack' it doesn’t work. For example, running `pw-jack qjackctl' and starting JACK through it gives the following error in qjackctl’s messages:
>
>13:13:37.600 JACK is starting...
>13:13:37.600 /run/current-system/profile/bin/jackd -dalsa -dhw:0
>13:13:37.606 JACK was started with PID=4007.
>/run/current-system/profile/bin/jackd: symbol lookup error: /run/current-system/profile/bin/jackd: undefined symbol: clock_source
>13:13:37.608 JACK was stopped
>13:13:39.662 Could not connect to JACK server as client. - Overall operation failed. - Unable to initialize client. Please check the messages window for more info.
>
>When I try `pw-jack carla' as well, the same thing happens, it says libjack.so.0 is loaded successfully but when I start Carla’s engine, it says: “Failed to create new JACK client.”
>
>Now, I don’t know what’s going wrong where, but I want to JACK with PipeWire, unless one can recommend me good reasons to use JACK externally alongside PipeWire. Also, even PipeWire’s pulseaudio seems finicky, sometimes works sometimes doesn’t. Sometimes applications like browser (librewolf, ungoogled-chromium) can’t access microphone or speaker (while permissions are fine), at other times, messing around with pavucontrol makes it work. I am not sure what exactly is making it work and what is failing, any suggestions for how to conduct some debugging would be of help. I need a consistently functioning system of pipewire emulating pulseaudio for applications and jack for routing, that doesn’t fail.
>
>Also, how can I configure my ALSA device cards, and have it reproduce gain? Ipreviously used to have an ~/.config/asound.state that is stored and restored using alsactl. Doing that doesn’t seem to preserve anthing.
>
>I’ve attached my system.scm and home configuration for reference if needed. Also CC’ing Ricardo since he’s the “sound guy” I know for GUIX :)
>
>Regards,
>--
>Divya Ranjan,
>Philosophy, Mathematics, Libre Software.
>
>
Ping
[-- Attachment #2: Type: text/html, Size: 4726 bytes --]
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Using Pipewire for PulseAudio and JACK in Guix
@ 2024-11-01 13:11 Noé Lopez via Development of GNU Guix and the GNU System distribution.
2024-11-03 6:21 ` Divya Ranjan via Development of GNU Guix and the GNU System distribution.
0 siblings, 1 reply; 14+ messages in thread
From: Noé Lopez via Development of GNU Guix and the GNU System distribution. @ 2024-11-01 13:11 UTC (permalink / raw)
To: guix-devel; +Cc: Divya
Hi,
I don’t really understand the problematics of your issue, but in my
config I just delete pulseaudio from %desktop-services and add pipewire
in my home-services.
pw-jack and pulseaudio apps work fine for me this way.
config.scm:
(modify-services %desktop-services
(delete pulseaudio-service-type)
(delete alsa-service-type))
home-configuration.scm:
(service home-pipewire-service-type)
Specifically, I don’t understand why you try to start jackd through
pw-jack, you just need to start your app directly like the example in
the manual:
pw-jack mpv -ao=jack sound-file.wav
In hope that helps,
Noé
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Using Pipewire for PulseAudio and JACK in Guix
2024-11-01 13:11 Noé Lopez via Development of GNU Guix and the GNU System distribution.
@ 2024-11-03 6:21 ` Divya Ranjan via Development of GNU Guix and the GNU System distribution.
0 siblings, 0 replies; 14+ messages in thread
From: Divya Ranjan via Development of GNU Guix and the GNU System distribution. @ 2024-11-03 6:21 UTC (permalink / raw)
To: guix-devel
Hello Noé,
Noé Lopez via "Development of GNU Guix and the GNU System distribution." <guix-devel@gnu.org> writes:
> Specifically, I don’t understand why you try to start jackd through
> pw-jack, you just need to start your app directly like the example in
> the manual:
> pw-jack mpv -ao=jack sound-file.wav
>
> In hope that helps,
> Noé
Even if I don’t try to open jackd, doing pw-jack approach also fails. pw-jack carla leads to an error that it can’t start jack, pw-jack is supposed to work with all jack clients, but to me it doesn’t seem to work with any.
--
Divya Ranjan,
Philosophy, Mathematics, Libre Software.
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2024-11-22 19:39 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-28 13:27 Using Pipewire for PulseAudio and JACK in Guix Divya Ranjan via Development of GNU Guix and the GNU System distribution.
2024-10-28 13:46 ` Divya Ranjan via Development of GNU Guix and the GNU System distribution.
2024-11-01 7:31 ` Ricardo Wurmus
2024-11-02 13:36 ` Divya Ranjan via Development of GNU Guix and the GNU System distribution.
2024-11-02 16:08 ` Kaelyn via Development of GNU Guix and the GNU System distribution.
2024-11-02 17:18 ` Divya
2024-11-02 23:00 ` Ricardo Wurmus
2024-11-03 6:18 ` Divya Ranjan via Development of GNU Guix and the GNU System distribution.
2024-11-03 11:50 ` Ricardo Wurmus
2024-11-13 13:10 ` divya
2024-11-07 9:41 ` Divya Ranjan via Development of GNU Guix and the GNU System distribution.
2024-10-31 18:19 ` Divya
-- strict thread matches above, loose matches on Subject: below --
2024-11-01 13:11 Noé Lopez via Development of GNU Guix and the GNU System distribution.
2024-11-03 6:21 ` Divya Ranjan via Development of GNU Guix and the GNU System distribution.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.