Re: Trying to understand pipewire jack emulation better
Wim Taymans <[email protected]> Thu, 18 Jun 2026 18:13:47 +0200
| Newsgroups | gmane.linux.audio.users |
|---|---|
| Message-ID | <CAEza8_6dLsKOEwPPV0kvZ34gw5eKmAR5a4xjdbpN=cLJYoFVJw@mail.gmail.com> |
On Thu, 18 Jun 2026 at 17:26, Chris Caudle <[email protected]> wrote: > > I apologize, I think I forgot to follow up on these additional questions. > > > On May 27 2026, at 5:30 pm, Peter P. <peterparker-97jfqw80gc5Wk0Htik3J/[email protected]> wrote: > > Can native jackd started as described run at the same time as pipewire > and access the same audio cards? > > They cannot access the same audio cards in the sense of sharing access to= the hardware, both pipewire and jackd request exclusive access to the hard= ware so that the buffer size and sample rate can be set, and there is just = one piece of software responsible for buffer management. > > What you can do is run jackd as the lowest level audio server, and then= have pipewire run as a jack client. That is equivalent to the old setup o= f running jackd and having PulseAudio as a jack client, but from what I hav= e read the pipewire server is a much better behaved jack client than pulsea= udio is or was. > > > Are you sure that pavucontrol is able to change pipewire settings? I am > under the impression that it is a GUI mixer for the PulseAudio server. > > This is the relevant entry still in the pipewire FAQ ( https://gitlab.fre= edesktop.org/pipewire/pipewire/-/wikis/FAQ#is-there-a-native-gui-tool-to-co= nfigure-pipewire ): > "To configure Card Profiles, default devices, ports and other settings, w= e recommend to use pavucontrol. Your desktop might also have settings panne= ls to configure aspects of PipeWire (GNOME-Control-Center)." > > > Still not sure though if "quantum" is about midi or audio latency... > > Hmmm...that is a good question, although in jackd all data used the same = buffer settings, so there was not a distinction between MIDI and audio late= ncy settings. My first guess would be that if using the JACK API to transf= er MIDI data then pipewire would behave the same, but if you are not using = the JACK API it might have different latency behavior. That is probably de= ep enough into the internals you would need to ask a pipewire developer to = get a definitively correct answer. quantum is the amount of data that is transfered in one processing cycle of the graph. This is expressed in time units as a combination of the buffer size and samplerate (clock ticks), so a buffer size of 1024 at a samplerate of 48KHz the quantum is 1024/48000 or 21.3ms. Each piece of data is now expressed with a timestamp against this clock (48000 ticks per second). Each cycle of the graph advances the clock with the buffer size and you place the items with the timestamps that fall in the current cycle start/end times into a buffer. For midi, the offset of the timestamp and the current cycle start time is added for timing purposes to reconstruct the midi timestamp. Now, the latency on the input and output needs to be at least one quantum. PipeWire will (like JACK in sync mode) configure the devices with a latency equal to the quantum, this includes midi and audio devices. Hope that helps. Wim > > > -- Chris C