When is enough, enough..?

Completely and utterly unrelated.

Moderators: raboof, MattKingUSA, khz

j_e_f_f_g
Established Member
Posts: 2032
Joined: Fri Aug 10, 2012 10:48 pm
Been thanked: 357 times

Re: When is enough, enough..?

Post by j_e_f_f_g »

sysrqer wrote:

the majority of people <will not> use this but it's an option.

This is a common mistake hobbyist programmers (ie a significant percentage of OSS devs) make. They add too much stuff which isn't needed, nor even likely to be used. This is bad because it needlessly makes the code more complex, which in turn often results in more points of failure (ie, more bugs), makes it harder for new/other devs to understand and work with the code, and requires even more documentation (when typically OSS code is already too poorly documented, even about more important, frequently used features).

If pipewire was going to be designed to run on top of jack, then there was no need for it to replace jack. Or vice versa.

Author of BackupBand at https://sourceforge.net/projects/backupband/files/
My fans show their support by mentioning my name in their signature.

folderol
Established Member
Posts: 2069
Joined: Mon Sep 28, 2015 8:06 pm
Location: Here, of course!
Has thanked: 224 times
Been thanked: 400 times
Contact:

Re: When is enough, enough..?

Post by folderol »

The problem is people, not software. People have this annoying habit of being different, wanting different things, and even actually looking different :shock:
But you know what? I'm rather glad that's the case :lol:

The Yoshimi guy {apparently now an 'elderly'}
User avatar
sysrqer
Established Member
Posts: 2519
Joined: Thu Nov 14, 2013 11:47 pm
Has thanked: 319 times
Been thanked: 148 times
Contact:

Re: When is enough, enough..?

Post by sysrqer »

j_e_f_f_g wrote: Sat Apr 08, 2023 8:20 am

If pipewire was going to be designed to run on top of jack, then there was no need for it to replace jack. Or vice versa.

I don't know, I think there are two distinct use cases being talked about here. I would imagine most people are more than happy to replace both pulseaudio and jack with pipewire. Then there are others who want to keep jack for whatever reason and want pulseaudio functionality but don't want pulseaudio. For the latter, pipewire would be a great replacement for pulseaudio. I'm not sure I would call this unnecessarily complex or unneeded functionality, seems like it would be very useful and flexible and fairly central to its design.

User avatar
Impostor
Established Member
Posts: 1332
Joined: Wed Aug 17, 2022 1:55 pm
Has thanked: 138 times
Been thanked: 344 times

Re: When is enough, enough..?

Post by Impostor »

sysrqer wrote: Sat Apr 08, 2023 7:13 am
Impostor wrote: Fri Apr 07, 2023 5:12 pm
revoxs wrote: Fri Apr 07, 2023 12:33 pm

And I thought that Pipewire was to make audio on Linux simpler, not more complex. Instead of Pulse and Jack running in parallel on top of Alsa, we get Pipewire replacing Pulse AND running on top of Jack on top of Alsa?

I think the important part of the original message was 'can'.

Yes, that didn't go unnoticed, but if Pipewire is developed to be a replacement for Jack+Pulse, it shouldn't be necessary to take into account the possibility that some users may want to use Jack or Pulse simultaneously with Pipewire, for whatever reason, in whatever circumstance. Because if such circumstances exist, then Pipewire is apparently not necessarily a viable replacement after all, and to get the functionality or performance of Jack it may still be necessary to use Jack instead of/in combination with Pipewire. And then we have the same "complexity" as with PulseAudio and Jack today.

Instead, Pipewire should i.m.o. focus on giving full functionality and performance on par with that of Jack and Pulseaudio, and make them superfluous/obsolete at the same time.

folderol
Established Member
Posts: 2069
Joined: Mon Sep 28, 2015 8:06 pm
Location: Here, of course!
Has thanked: 224 times
Been thanked: 400 times
Contact:

Re: When is enough, enough..?

Post by folderol »

Well I don't know about pipewire but pulse gets some things seriously wrong! One of which can make Yoshimi lockup, when Yoshimi's actions were perfectly correct.
When pulse gives way to Jack it releases ALSA for the particular soundcard jack is connected to, but not any others, yet at the same time indicates they are free, so Yoshimi sees Jack is running while it (Yoshimi) is configured for ALSA, so searches for any other card, on finding one it initialises (pulse hasn't marked it as in use) but when trying to actually send data the callback never returns :evil:

Remove the pulse server, and Yoshimi has no problems at all.

The Yoshimi guy {apparently now an 'elderly'}
j_e_f_f_g
Established Member
Posts: 2032
Joined: Fri Aug 10, 2012 10:48 pm
Been thanked: 357 times

Re: When is enough, enough..?

Post by j_e_f_f_g »

Imposter just made the exact same point I was about to make. Pipewire doesn't seem to have a well-defined purpose.

On the one hand, it seems to project itself as a low-latency, high-throughput audio system (like ALSA or JACK). It seems to think so because it replaces jack to the point that you can't have both running. So someone apparently thinks that Pipewire is going to be so comparable to jack that musicians (ie, jack's target users) aren't going to use "real" jack anymore. In order to do that, you have to lazer-focus on audio features only, with the minimum amount of code (ie, no extra, unnecessary features that aren't needed specifically by audio apps). I'm quite familiar with the jack code base, and it's all about audio.

On the other hand, Pipewire also seems to think it's not an audio-only system, as evidenced by its video considerations, and device management. In fact, it doesn't even seem to be concerned with latency/performance and high quality audio as evidenced by its bit and rate interpolation on-the-fly, and allowing apps to have different buffering, (neither of which jack does because that really tanks speed and audio quality). So someone apparently thinks that Pipewire is a generic audio system comparable to PulseAudio, to be used by non-music productivity apps for generic sound I/O.

This bipolar focus strongly suggests to me that the folks who are "waiting for Pipewire to mature, and then all its current limitations will be fixed" are going to be waiting a long time (like forever). There's no way Pipewire is going to ever be two entirely different audio systems. If that were easy to accomplish, Microsoft and Steinberg would have long ago replaced their two audio APIs with one API that did what both ASIO does for music apps, and what the Wave API (including PlaySound) does for generic apps. That never happened because it would be impossible to come up with something that worked as well for both use cases, as the two separate APIs do.

Frankly, I suspect that what you're currently seeing from Pipewire in terms of performance, compatibility, reliability, and most other considerations today, will remain much the same throughout the lifetime of the code. I don't expect it to miraculously overcome the discrepancies between a very focused, performance-prioritized API, and a very generic, feature-prioritized API. No amount of "maturity" is going to overcome the implications of software design.

I predict that Pipewire will be another PulseAudio, used by lots of generic linux apps instead of PulseAudio (but as is so typical, the latter's legacy will survive just enough to be a PITA to people configuring linux audio... to which Pipewire will be a further shot in the foot). Musicians will get tired of struggling to get Pipewire to perform as well as jack, and dealing with various piddling little incompatibilites. They'll go back to trying to get real Jack and Pipewire to peacefully co-exist (and work) on the same system so that audio works both for apps like Ardour, as well as their browser. And it will be just as much of a hassle as getting PulseAudio to peacefully coexist with Jack, except you'll have that app which still uses PulseAudio, so now you'll have to get PulseAudio to peacefully co-exist with both Pipewire and Jack. And if you're trying to run everything through Jack (so you don't need to "patch your audio" everytime you switch apps), it will be a nightmare figuring out what needs to be disabled in Pipewire and PulseAudio, and what needs to be "bridged" in jack, so that these 3 wanna-be-head-chefs don't prevent each other from even getting into the kitchen.

Author of BackupBand at https://sourceforge.net/projects/backupband/files/
My fans show their support by mentioning my name in their signature.

folderol
Established Member
Posts: 2069
Joined: Mon Sep 28, 2015 8:06 pm
Location: Here, of course!
Has thanked: 224 times
Been thanked: 400 times
Contact:

Re: When is enough, enough..?

Post by folderol »

Or, you can do what I do. Have one computer dedicated to music making with nothing except ALSA and Jack, and a different machine for all the junk.

The Yoshimi guy {apparently now an 'elderly'}
User avatar
Babarosa
Established Member
Posts: 52
Joined: Sun Feb 23, 2014 10:16 pm
Has thanked: 3 times
Been thanked: 18 times

Re: When is enough, enough..?

Post by Babarosa »

folderol wrote: Sat Apr 08, 2023 7:15 pm

Or, you can do what I do. Have one computer dedicated to music making with nothing except ALSA and Jack, and a different machine for all the junk.

+1 @ folderol
I install Debian 11 from a netinstall iso image and build up a complete audio workstation using only ALSA and in my case Jackd2. Softwares installed/compiled are a2jmidid, QJackCtl, QSynth, Fluida, two x42-plugins, Rosegarden, Reaper, Shuriken, Polyphone, Audacity, JJazzLab, Flowblade - no Pulseaudio nor Pipewire needed.

EDIT:
On the machines where I have Pulseaudio installed, it works without any problems, e.g. using sound on various active softwares at the same time like firefox and audio apps

Last edited by Babarosa on Tue Apr 18, 2023 9:05 am, edited 1 time in total.

Debian 12 - MOTU M4, ESI Maya22 USB - Rosegarden, Reaper

j_e_f_f_g
Established Member
Posts: 2032
Joined: Fri Aug 10, 2012 10:48 pm
Been thanked: 357 times

Re: When is enough, enough..?

Post by j_e_f_f_g »

folderol,

PulseAudio has a DBus interface where you can send a message telling Pulse to release its hold on some card. Are you using that? if not, I can post my C code implementation for doing that, if you want to investigate whether this helps you avoid problems with Pulse.

Author of BackupBand at https://sourceforge.net/projects/backupband/files/
My fans show their support by mentioning my name in their signature.

folderol
Established Member
Posts: 2069
Joined: Mon Sep 28, 2015 8:06 pm
Location: Here, of course!
Has thanked: 224 times
Been thanked: 400 times
Contact:

Re: When is enough, enough..?

Post by folderol »

j_e_f_f_g wrote: Sat Apr 08, 2023 8:44 pm

folderol,

PulseAudio has a DBus interface where you can send a message telling Pulse to release its hold on some card. Are you using that? if not, I can post my C code implementation for doing that, if you want to investigate whether this helps you avoid problems with Pulse.

Thanks for the suggestion. No I hadn't thought of that. I'd certainly find it interesting. Our current 'sledgehammer' workround is to check for jack running, and if it is, not attempt to run ALSA at all.

The Yoshimi guy {apparently now an 'elderly'}
tseaver
Established Member
Posts: 398
Joined: Mon Mar 13, 2017 6:07 am
Has thanked: 11 times
Been thanked: 98 times

Re: When is enough, enough..?

Post by tseaver »

@j_e_f_f_g

Jack Transport is not anything to do with MIDI.

ISTM that the intersection is precisely at the transport layer. Trying to record a mix of "organic" audio, recorded from mics or DI jacks, alongside "virtual" instruments (played in via a MIDI keyboard), while keeping the "musical clock" synchronized across all the bits of software involved is a "wicked problem." One might want to drive the process from multiple separate points in the system: one of perhaps many MIDI controllers / keyboards attached to the system, or the transport UI of a DAW or other sequencing / sound generating software.

Starting the play / record stream, or seeking forward or back some number of beats or measures, each require coordination between multiple processes ("agents"? maybe need a term which doesn't imply a PID?). Some of these entities may be purely audio (e.g., recording from microphones / DI ports, or YouTube audio), some may transform MIDI to audio (e.g. virtual instruments), and some might transform MIDI to MIDI (arpeggiators?).

The Ardour team wants (understandably) everybody to just do their work inside Ardour, so that its notion of the "musical time" is the One Ring(TM). I'd like to be able to record into Ardour from e.g., Guitarix, or Pianoteq, running outside Ardour itself. I find it more convenient / useful to have a properly configured JACK system, where one of the entities is configured to control the "musical time."

AFAIK, the pipewire project provides no improvement along this axis over such a correctly-configured JACK system.

Ubuntu, Mixbus32C; acoustic blues / country / jazz
User avatar
GMaq
Established Member
Posts: 2774
Joined: Fri Sep 25, 2009 1:42 pm
Has thanked: 520 times
Been thanked: 555 times

Re: When is enough, enough..?

Post by GMaq »

folderol wrote: Sat Apr 08, 2023 7:15 pm

Or, you can do what I do. Have one computer dedicated to music making with nothing except ALSA and Jack, and a different machine for all the junk.

Hi Will!

That is absolutely true on the individual level and that is the level where so-called FLOSS 'freedom' shines.. The context of the original thread was about how all this stuff (PipeWire being only one piece of the shrapnel) greatly complicates preparing a Pro Audio platform for others to use since PipeWire is perceived as the new and improved successor but for what many of us are doing here it offers only more complexity and at best equal, and more likely a decrease in performance..

asbak
Established Member
Posts: 897
Joined: Thu Sep 11, 2014 3:04 pm
Has thanked: 71 times
Been thanked: 64 times

Re: When is enough, enough..?

Post by asbak »

Or do what I do. Set up an all-singing and all-dancing laptop with a simple menuitem that can flip between Jack & Pipewire. Need one or the other? Just flip it over and done. Start to finish it takes between 5 to 10 seconds.

Next on the todo list: Add Pulseaudio as another potential option to pipe pulse into jack.

Yes it's a bit lame having to flip between different audio systems, not to mention having to apply loads of additional tuning to reduce xruns for audio production but thankfully it can mostly be automated to the point that one just selects a suitable option and leave the details up to the scripts running in the background.

folderol wrote: Sat Apr 08, 2023 7:15 pm

Or, you can do what I do. Have one computer dedicated to music making with nothing except ALSA and Jack, and a different machine for all the junk.

Some Focal / 20.04 audio packages and resources https://midistudio.groups.io/g/linuxaudio
User avatar
mrz80
Established Member
Posts: 13
Joined: Mon Mar 18, 2019 3:36 pm
Location: Gator Country
Has thanked: 13 times
Been thanked: 3 times
Contact:

Re: When is enough, enough..?

Post by mrz80 »

Gps wrote: Mon Mar 20, 2023 1:55 pm

I rarely start my windows 10, but every time I do, I get instantly reminded of why I went to Linux.
Microsoft seems to think they own my pc.

And that impression is 100x stronger looking at Windows 11. And of course Apple doesn't think they own your computer; Apple thinks they own your soul. :D

Network geek with a strong predilection for turning every scrap of wood into Telecasters and Les Pauls
User avatar
MattKingUSA
Moderation Services Senior Administrator
Posts: 795
Joined: Fri Mar 21, 2008 4:01 pm
Location: United States
Has thanked: 52 times
Been thanked: 38 times
Contact:

Re: When is enough, enough..?

Post by MattKingUSA »

I agree, windows is not a good system. Linux has a lot more going for it in general. But ChromeOS and android are no better out of the box. The only good that ChromeOS/android and windows have is the option to use the Linux terminal and WSL. But android isn't rooted by default either. So it's not a good system in my opinion.

-Matt :D

Locked