Working with JACK Audio server in Pipewire KLV's

Moderator: Forum moderators

User avatar
rockedge
Site Admin
Posts: 6551
Joined: Mon Dec 02, 2019 1:38 am
Location: Connecticut,U.S.A.
Has thanked: 2757 times
Been thanked: 2628 times
Contact:

Working with JACK Audio server in Pipewire KLV's

Post by rockedge »

Starting to experiment with adding a JACK server to the audio components of KLV-Spectr and possibly KLV-Airedale.

So far I have it installed on a KLV-Airedale-sr2 to begin with a setup that has Easy Effects and Qpwgraph installed and audio is working nicely.

ADDENDUM:

The original direction of this topic began with attempts to install the native Jack Audio Server and Jack applications in a KLV using Pipewire audio.

As we worked with native Jack, it became apparent that we were missing the obvious strengths of pipewire, most importantly the fact that Pipewire completely eliminates the need for native Jack Audio Server altogether. Pipewire supplies the necessary api to run jack applications like Ardour and Carla.

If you want to run jack applications in KLV's running pipewire, you don't need install the Jack Server.
Instead install:
libjack-pipewire (the jack replacement pipewire library)

the KLV-airedale-RT15 also needed a terminal modprobe to access midi hardware, which looked like this:

Code: Select all

 modprobe snd-seq

By all means feel free to read this entire topic, with its twist and turns. The clear takeaway is that pipewire performs equal to jack server running jack applications (with the added flexibility of routing all audio producing applications and hardware whether jack compatible or pulse compatible)

geo_c
Posts: 2881
Joined: Fri Jul 31, 2020 3:37 am
Has thanked: 2205 times
Been thanked: 878 times

Re: Working with JACK Audio server in Pipewire KLV's

Post by geo_c »

rockedge wrote: Sun Jan 14, 2024 5:36 pm

Starting to experiment with adding a JACK server to the audio components of KLV-Spectr and possibly KLV-Airedale.

So far I have it installed on a KLV-Airedale-sr2 to begin with a setup that has Easy Effects and Qpwgraph installed and audio is working nicely.

I installed jack on KLV-airedale-RT15 (w/ 6.1.38 kernel) pipewire version and it seems to be running well. Ardour is the only jack app installed so far but it showed up in qjackcontrol and worked fine. First go-round found here: viewtopic.php?p=108650#p108650

But I also booted earlier this morning and did some more testing.

Below shows pulse with the USB Presonus Studio24c as the pulse fallback, and pipewire routed audio there through the pulse volume control as shown in the qpwgraph.
Image

LibreWolf also playing through the pulse volume control routed by pipewire. As far as I can tell everything is functioning the way it should. But as expected, jack doesn't start if pulseaudo is using the same sound card. and jack apps don't show up in qpwgraph.

Summary, everything looks good so far!
And what I will do next is install some more jack apps to see how well they perform.

Now if we are expecting pipewire to handle the jack apps and show them in qpwgraph, then I guess everything isn't working up to spec, but I'm not sure if that's a benchmark. Having them function side by side, running independently, and not simultaneously, is a good arrangment in a lot of respects. It may be that if pulse fallback is a different device than jack's default, then audio will work simultaneously through the different cards. I will check it out.
Image

geo_c
Old School Hipster, and Such

geo_c
Posts: 2881
Joined: Fri Jul 31, 2020 3:37 am
Has thanked: 2205 times
Been thanked: 878 times

Re: Working with JACK Audio server in Pipewire KLV's

Post by geo_c »

@rockedge, the one thing that is not working for me in KLV-airedale-JackPipe is midi. It's not able to load the seq driver, so I installed: a2jmidid to see if that would do it, and it's not so far. Might try a reboot.

Reboot didn't do it, and now I realize by looking at qpwgraph that there is no midi device showing up there either. So my audio interface shows up, and it has built-in midi in/out ports, but they aren't showing up in qjackctrl or qpwgraph.

Now I've got to wonder if pipewire needs a lua script to search the midi ports. I've looked at all the wireplumber lua scripts, and I don't know really know what to make of them. I think the wireplumber config just needs to include the correct lua script.

Let me see what happens when I use timidity to play a midi file. I hadn't tried that yet. Did that but it just plays audio out through pulse fallback. Duh it doesn't need midi ports. Timidity doesn't show up as a stream in qpwgraph however.

Wait a minute! Yes timidity does show up as a stream in qpwgraph, but only after pavucontrol is opened. Weird.

Yeah that's kind of buggy. I checked it by shutting off pavucontrol, started timidity playing a file again, and timidity showed up in qpwgraph for a filcker of a second and disappeared, but it did play. It looks like since the outputs of timidity are connected to pavucontrol, pavucontrol has to be open for the stream to show up in the qpwgraph, since it's connected to pavucontrol.

That's a digression, yet informative.

The total packages I installed to get jack audio working are (the python pulled in as dependencies):

a2jmidid
python3-dbus-1.3.2_2
jack-1.9.22_1
jack-devel-1.9.22_1
python3-xdg-0.28_4
jack_mixer-17_3
libjack-pipewire-1.0.1_1
libspa-jack-1.0.1_1
mpg123-jack-1.32.3_1
qjackctl-0.9.9_1

Any advice on the midi driver? There are a couple other packages I'm considering like:

alsa-plugins (not sure this one is a good idea)
alsa-plugins-jack

Guess I'll just back up the upper_changes and give alsa-plugins-jack a try first.

Last edited by geo_c on Mon Jan 15, 2024 4:26 pm, edited 1 time in total.

geo_c
Old School Hipster, and Such

geo_c
Posts: 2881
Joined: Fri Jul 31, 2020 3:37 am
Has thanked: 2205 times
Been thanked: 878 times

Re: Working with JACK Audio server in Pipewire KLV's

Post by geo_c »

@rockedge I can tell you're busy working with the wayland OS's, but I'll keep posting my adventures with jack and pipewire here.

So I'm having pretty smooth results. Here's a screenshot of Carla Rack running the zynsubfx virtual instrument with it's virtual keyboard, while all my pulseaudio audio is still heard through the laptop built-in soundcard, jack is running simultaneously and pumping audio through a presonus USB interface:

Once I get an external midi keyboard in the mix, it's pretty much all there.

Image

geo_c
Old School Hipster, and Such

geo_c
Posts: 2881
Joined: Fri Jul 31, 2020 3:37 am
Has thanked: 2205 times
Been thanked: 878 times

Re: Working with JACK Audio server in Pipewire KLV's

Post by geo_c »

And pictured in these two screenshots is Ardour with a midi track routing midi events to zynsubfx virtual instrument using the carla rack and playing audio to the USB interface. All working smoothly. And still not interfering with any applications playing audio through pipewire-pulse to a soundcard not being used by jack.

With that working I can route the audio out of the virtual instrument back into ardour, or jack capture or any other jack tool. add as many virtual instruments in the carla rack as desired, and route them anywhere.

Image

Image

geo_c
Old School Hipster, and Such

User avatar
rockedge
Site Admin
Posts: 6551
Joined: Mon Dec 02, 2019 1:38 am
Location: Connecticut,U.S.A.
Has thanked: 2757 times
Been thanked: 2628 times
Contact:

Re: Working with JACK Audio server in Pipewire KLV's

Post by rockedge »

@geo_c Some strangness going on....this link is not in the orginal post you made...yet it's there

Screenshot(91).jpg
Screenshot(91).jpg (51.5 KiB) Viewed 3624 times
geo_c
Posts: 2881
Joined: Fri Jul 31, 2020 3:37 am
Has thanked: 2205 times
Been thanked: 878 times

Re: Working with JACK Audio server in Pipewire KLV's

Post by geo_c »

Here's the first test project on KLV-airedale-RT-Jackpipe using the jack/pulse-pipewire arrangement. Ardour playing a midi file routed to Carla rack loaded with ZynSubFx virtual instrument playing audio routed back into Ardour capturing the audio, mixed down and exported from Ardour8.

the file JackPipeTest_range1.wav:
https://mega.nz/file/GLYVCDDJ#0_qbnQGXs ... vmEDdWZOW4

Image

Last edited by geo_c on Mon Jan 15, 2024 5:38 pm, edited 3 times in total.

geo_c
Old School Hipster, and Such

geo_c
Posts: 2881
Joined: Fri Jul 31, 2020 3:37 am
Has thanked: 2205 times
Been thanked: 878 times

Re: Working with JACK Audio server in Pipewire KLV's

Post by geo_c »

rockedge wrote: Mon Jan 15, 2024 4:31 pm

@geo_c Some strangness going on....this link is not in the orginal post you made...yet it's there
Screenshot(91).jpg

I deleted that url. The site post.img adds occassional advertisement url's, when I catch them I eliiminate them.

See above post for results of audio testing. Later I'll go to the studio and work with this more. Again the only piece missing is external midi device input.

Running really well. I have this KLV-airedale loaded with keyboard short cuts like Super+F, Super+S to change cpu scaling.

as far as midi goes, I installed a2jmidid, but it looks like I might need to start it, as I'm reading here: https://github.com/jackaudio/a2jmidid

but I don't know which approach to take, if any. In particular I don't know about Dbus and how that could affect other things.

geo_c
Old School Hipster, and Such

User avatar
rockedge
Site Admin
Posts: 6551
Joined: Mon Dec 02, 2019 1:38 am
Location: Connecticut,U.S.A.
Has thanked: 2757 times
Been thanked: 2628 times
Contact:

Re: Working with JACK Audio server in Pipewire KLV's

Post by rockedge »

the file JackPipeTest_range1.wav:

Really cool. Getting the JACK components working in KLV-Airedale and KLV-Spectr RT versions is an important goal. Really rounds out the audio capabilities.

My fooling around, JACK is not started.
Playing JackPipeTest_range1.wav

Screenshot_2024-01-15_14-54-49.jpg
Screenshot_2024-01-15_14-54-49.jpg (31.55 KiB) Viewed 3576 times

Looking at the ways to start up

geo_c
Posts: 2881
Joined: Fri Jul 31, 2020 3:37 am
Has thanked: 2205 times
Been thanked: 878 times

Re: Working with JACK Audio server in Pipewire KLV's

Post by geo_c »

rockedge wrote: Mon Jan 15, 2024 8:08 pm

the file JackPipeTest_range1.wav:

Really cool. Getting the JACK components working in KLV-Airedale and KLV-Spectr RT versions is an important goal. Really rounds out the audio capabilities.

My fooling around, JACK is not started.
Playing JackPipeTest_range1.wav
Screenshot_2024-01-15_14-54-49.jpg

Looking at the ways to start up

Well I can't read any of the text on your graph. Too low rez, but first of all you have to make sure that pavucontrol is not using the same soundcard as you're trying to use with jack.

So if possible, set the pavucontrol fallback output/input device to something else. and then on qjackcontrol go to jack setup, and on the front menu choose the audio device you want to use to set as default. The way this arrangement wortks jack and pipewire pulse coexist, but don't work together using the same audio hardware. That may be a deal break for normal users, but it's a plus for pro audio in my case. I can still pump browser/player software through the built-in audio while having jack compatible software pumping audio through the pro interfaces, simultaneously without conflict.

Just got to the studio, copied my OS work from home onto this machine attached to a 14 channel Soundraft MTK-12 (nice sounding board BTW) and it's all working. Opened up the Ardour project I did at home and the Carla rack with the saved routing connections, and it plays as expected.

Jack setup window with interface choice highlighted:
Image

Here you can see a dual monitor screenshot of the same project running on the studio computer with a 14 channel board in place of the stereo "system" in out that the previous screenshots showed.

Image

geo_c
Old School Hipster, and Such

geo_c
Posts: 2881
Joined: Fri Jul 31, 2020 3:37 am
Has thanked: 2205 times
Been thanked: 878 times

Re: Working with JACK Audio server in Pipewire KLV's

Post by geo_c »

And so my last hurdle to running jack thoroughly in KLVs with pipewire/pulse seems to be midi hardware.

Basically none is being found, and I'm not sure if it's the jack/alsa side of things or the pulse/pipewire side. To access midi ports jack gets them from alsa, and alsa uses alsa_seq, which I don't know how to locate, whether it's installed on this system, or if it's part of the basic alsa libs.

a2jmidid is a bridge between alsa and jack, so I installed it. The command aj2midid -e command is explained here https://freeshell.de/~murks/posts/ALSA_ ... _dummies)/:

Most important is a2jmidid. It dynamically creates JACK MIDI ports for all your ALSA MIDI ports. By default it does so only for software ports, but with the -e option it exposes the hardware ports too, so a2jmidid -e is equal to JACK started with -Xseq. The next two programs create a static pair of ports to translate between ALSA and JACK MIDI, so a2jmidibridge creates an input port for ALSA MIDI and a corresponding output port for JACK MIDI, with j2amidibridge it's the other way around. It's as accurate as a2jmidid, but just a single static port you can use to translate between the two.

The output I get when running a2jmidid -e in the terminal is:

Code: Select all

root# a2jmidid -e
JACK MIDI <-> ALSA sequencer MIDI bridge, version 9 built on Wed Dec 31 19:00:00 1969
Copyright 2006,2007 Dmitry S. Baikov
Copyright 2007,2008,2009,2011,2012 Nedko Arnaudov

Bridge starting...
Using JACK server 'default'
Hardware ports will be exported.
ALSA lib seq_hw.c:529:(snd_seq_hw_open) open /dev/snd/seq failed: No such file or directory
ERROR: a2j_new: failed to open alsa seq
ERROR: a2j_start: a2j_new() failed.
root# 

So something seems to be missing, and I'm not sure if it's an ALSA library, or if it has to do with wireplumber.

And I'm wondering, since alsa_seq is a driver, if it might be included in alsa-firmware which isn't installed. Here it is listed in the void repo:

Image

Last edited by geo_c on Mon Jan 15, 2024 9:27 pm, edited 1 time in total.

geo_c
Old School Hipster, and Such

User avatar
rockedge
Site Admin
Posts: 6551
Joined: Mon Dec 02, 2019 1:38 am
Location: Connecticut,U.S.A.
Has thanked: 2757 times
Been thanked: 2628 times
Contact:

Re: Working with JACK Audio server in Pipewire KLV's

Post by rockedge »

I see this error as well from a setting I made somewhere then fixed it by unchecking a box enabling an ALSA sequencer. :ugeek:

Yes it might be the ALSA firmware package

geo_c
Posts: 2881
Joined: Fri Jul 31, 2020 3:37 am
Has thanked: 2205 times
Been thanked: 878 times

Re: Working with JACK Audio server in Pipewire KLV's

Post by geo_c »

rockedge wrote: Mon Jan 15, 2024 9:27 pm

I see this error as well from a setting I made somewhere then fixed it by unchecking a box enabling a ALSA sequencer. :ugeek:

see my edit above about alsa_seq

geo_c
Old School Hipster, and Such

geo_c
Posts: 2881
Joined: Fri Jul 31, 2020 3:37 am
Has thanked: 2205 times
Been thanked: 878 times

Re: Working with JACK Audio server in Pipewire KLV's

Post by geo_c »

@rockedge I'm happy to say: SUCCESS!

The akai25 pictured here is a midi keyboard controller and it's now showing up and working and playing instruments in the carla rack.

So this was the final piece of the puzzle. And I believe it was adding the alsa-firmware package, but note that I'm using the raw driver. And there seems to be zero latency!

Image

I built this OS in upper_changes on top of your original RT15 root filesystem. So I could maybe do the same thing, without all of my added packages others would not want, and create a layer simply to be added after 07rootfs.

geo_c
Old School Hipster, and Such

User avatar
rockedge
Site Admin
Posts: 6551
Joined: Mon Dec 02, 2019 1:38 am
Location: Connecticut,U.S.A.
Has thanked: 2757 times
Been thanked: 2628 times
Contact:

Re: Working with JACK Audio server in Pipewire KLV's

Post by rockedge »

create a layer simply to be after 07rootfs.

probably the most awesome way to add the feature. For the full audio work environment and optional for the other uses of the real time capabilities.

geo_c
Posts: 2881
Joined: Fri Jul 31, 2020 3:37 am
Has thanked: 2205 times
Been thanked: 878 times

Re: Working with JACK Audio server in Pipewire KLV's

Post by geo_c »

rockedge wrote: Mon Jan 15, 2024 10:32 pm

create a layer simply to be after 07rootfs.

probably the most awesome way to add the feature. For the full audio work environment and optional for the other uses of the real time capabilities.

After playing around with it a little more, I'll do it again from the ground up and try and put together an 08KLV-JackPipe.sfs

There aren't a ton of jack applications in the Void repo, however some of the most important ones are there.

I also have libraries of lv2 plugins and virtual instruments, and a huge library of samples, too big to download in it's entirety, 39GB of multi-sample instruments, sf2 soundfonts, and loop samples, etc.

geo_c
Old School Hipster, and Such

geo_c
Posts: 2881
Joined: Fri Jul 31, 2020 3:37 am
Has thanked: 2205 times
Been thanked: 878 times

Re: Working with JACK Audio server in Pipewire KLV's

Post by geo_c »

@rockedge
One final note on KLV-Airedale-JackPipe

I used @fredx181's restore-sys script and backed up the upper_changes at the studio, then copied them to my computer at home, and the only adjustment needed to get up and running on the new machine is to choose the new audio devices in jack-setup.

@fredx181 has essentially given us a pupsave backup for kennel-linux, and this is extremely handy.

The finall note however is this: The alsa_seq midi driver still is not available, but choosing the raw midi driver in jack-setup gets the midi devices working. Whether the raw driver is considered most desirable or not, I can't say. I have read posts on linux forum of people who prefer it. I personally don't mind, but I certainly would prefer to understand why one works and the other doesn't, and whether this has anything at all to do with the overall setup of alsa-jack-pipewire-pulse, or whether it's something else. So there are a few holes in my own knowldge to plug.

I can say that this setup is working well, on two machines with completely different hardware and midi controllers.

Here's the home setup showing Carla rack loaded with 3 virtual instruments all playable from a small USB Akai-LPK25. The Presonus Studio24c's midi ports are also listed, but nothing is plugged into them at the moment.

qjackcontrol graph window:
Image

carla rack, jack-graph, jack-setup, jack-messages, qjackctrl:
Image

The Akai-LPK25 is unlike the big performance grade Akai-MAX25 I was using at the studio. On both setups the latency is extremely good, very slightly and barely noticeable when playing rhythmic percussion, and way noticeably better than how the setup ran under jackalpup, and extremely better than virtual instruments on my son's Win10 machine, though that's a dual core, so it's pretty old. USB ports make a difference, but my studio computer is only using USB2.0. So this is outstanding results compared to any OS I've used so far. On my laptop with USB-3 ports I don't think I'm going to notice any latency at all.

So maybe this a lot of final thoughts. Probably more to come.

I am extremely pleased with this development. I should be able to replicate it on Spectr, Bspwm, Awesome, and hopefully the Wayland variants you are working with. The realtime 6.1.38 kernel is running fantastically well for me, and these KLV-pipewire systems are very fast all around. On the studio computer I was running Ardour with virtual instruments and recording in cpu powersave mode most of the time, and there are no audio pops, drops, or x-runs of any kind. In cpu performance scheduling it's even better.

Last edited by geo_c on Tue Jan 16, 2024 2:00 pm, edited 3 times in total.

geo_c
Old School Hipster, and Such

geo_c
Posts: 2881
Joined: Fri Jul 31, 2020 3:37 am
Has thanked: 2205 times
Been thanked: 878 times

Re: Working with JACK Audio server in Pipewire KLV's

Post by geo_c »

After some reading the pipewire and jack entries in the arch-wiki, I think I have a better picture of how it's working now.

I think this system is working correctly. Alsa-sequencer support option must be unchecked in jack-setup, and if we were using jack2 only, the midi driver would be set to none, and a2jmidid started by command in the jack-setup. However since we're using piperwire, my guess is that now pipewire handles the timing between alsa and jack applications, so the midi driver needs to be set to raw in jack as if it were connecting directly to midi devices through the hardware port, and the alsa-sequencer support option turned off. All midi devices show up in jack connection graph, and timing is handled by pipewire and not a2jmidid or alsa_seq. So in essence choosing the raw driver is allowing pipewire to do what a2jmidid would have done.

Does that sound right @rockedge?

geo_c
Old School Hipster, and Such

User avatar
rockedge
Site Admin
Posts: 6551
Joined: Mon Dec 02, 2019 1:38 am
Location: Connecticut,U.S.A.
Has thanked: 2757 times
Been thanked: 2628 times
Contact:

Re: Working with JACK Audio server in Pipewire KLV's

Post by rockedge »

@geo_c It does sound right :thumbup2:

geo_c
Posts: 2881
Joined: Fri Jul 31, 2020 3:37 am
Has thanked: 2205 times
Been thanked: 878 times

Re: Working with JACK Audio server in Pipewire KLV's

Post by geo_c »

rockedge wrote: Tue Jan 16, 2024 5:48 am

@geo_c It does sound right :thumbup2:

BUT...now thinking about it this morning I wonder.

If pipewire-jack is handling timing between the alsa midi ports and jack applications, then it seems these midi ports should show up in qpwgraph, which they are not doing at the moment.

So now I'm unsure about my conculsion. Is it possible that pipewire-jack is handling those midi streams, but wireplumber is not configured to use them or display them in qpwgraph? Or is pipewire-jack simply bypassing wireplumber and passing jack alsa raw data? Or third, is jack bypassing pipewire and grabbing alsa raw midi?

more reading and searching is needed.

All of this stuff confounds me especially since I don't understand anything about dbus, which may or may not come into play.

geo_c
Old School Hipster, and Such

User avatar
rockedge
Site Admin
Posts: 6551
Joined: Mon Dec 02, 2019 1:38 am
Location: Connecticut,U.S.A.
Has thanked: 2757 times
Been thanked: 2628 times
Contact:

Re: Working with JACK Audio server in Pipewire KLV's

Post by rockedge »

@geo_c pouring over a lot of talk and information about exactly these questions.

Have you checked this info? https://github.com/mikeroyal/PipeWire-Guide

I am just looking it over. I ran into a thread of a discussion the Linux Musician Forum which was going in the same exact direction......then I had to fix the handle on my snowblower and I can't find it again. :?

It looks like we're close though to getting it under control.....

geo_c
Posts: 2881
Joined: Fri Jul 31, 2020 3:37 am
Has thanked: 2205 times
Been thanked: 878 times

Re: Working with JACK Audio server in Pipewire KLV's

Post by geo_c »

rockedge wrote: Tue Jan 16, 2024 3:44 pm

@geo_c pouring over a lot of talk and information about exactly these questions.

Have you checked this info? https://github.com/mikeroyal/PipeWire-Guide

I am just looking it over. I ran into a thread of a discussion the Linux Musician Forum which was going in the same exact direction......then I had to fix the handle on my snowblower and I can't find it again. :?

It looks like we're close though to getting it under control.....

WAIT a MINUTE!

I think I have a way to test this. Because it just occurred to me that streams don't show up in qpwgraph until an application starts one. Even though the audio ports are showing up, and I assumed the midi ports should also be displayed, they might not. Let me find a non-jack midi app to use and see if I run it with a midi controller attached, if the ports show up in qpwgraph.........

geo_c
Old School Hipster, and Such

User avatar
rockedge
Site Admin
Posts: 6551
Joined: Mon Dec 02, 2019 1:38 am
Location: Connecticut,U.S.A.
Has thanked: 2757 times
Been thanked: 2628 times
Contact:

Re: Working with JACK Audio server in Pipewire KLV's

Post by rockedge »

geo_c wrote:

it just occurred to me that streams don't show up in qpwgraph until an application starts one

yes, totally noticed this fact when I start or stop Easy Effects and Parole Media Player. Threw me off a couple of times.

geo_c
Posts: 2881
Joined: Fri Jul 31, 2020 3:37 am
Has thanked: 2205 times
Been thanked: 878 times

Re: Working with JACK Audio server in Pipewire KLV's

Post by geo_c »

rockedge wrote: Tue Jan 16, 2024 5:14 pm
geo_c wrote:

it just occurred to me that streams don't show up in qpwgraph until an application starts one

yes, totally noticed this fact when I start or stop Easy Effects and Parole Media Player. Threw me off a couple of times.

I've got the github guide open and am checking it out.

Without jack started, the first thing I tried is musescore4 because it takes midi keyboard input. It's not seeing any devices audio or midi. It does however play audio and has a choice available for default system audio. Of course keyboard midi input is not working. Let's see if I can use another app, but I'm not hopeful that midi ports are going to show up without using jack. I'll boot up the system fresh without a jack install and work with midi also and see what I find. My thought is that one of those wireplumber lua scripts needs to be included in the wireplumber config:

Image

geo_c
Old School Hipster, and Such

geo_c
Posts: 2881
Joined: Fri Jul 31, 2020 3:37 am
Has thanked: 2205 times
Been thanked: 878 times

Re: Working with JACK Audio server in Pipewire KLV's

Post by geo_c »

rockedge wrote: Tue Jan 16, 2024 3:44 pm

Have you checked this info? https://github.com/mikeroyal/PipeWire-Guide

Wow, cool stuff on that page. I've got try RaySession. Carla will kind of do the same thing, but I'm not sure about starting all the apps with their respective project files loaded.

And Presonus Studio One is the best DAW out there in my opinion. They've got the linux version our now, which requires Wayland to run. So when we get a good wayland Kennel-linux going I'll be looking into that. Studio One was the only reason I kept Windows on a machine as long as I did, which was up until late 2019 when I found jackalpup. Studio One is nice though, it's very powerful and really user friendly. It will set up a project with audio tracks and 4 or 5 virtual instrument tracks of different types automaticallly from built-in templates. And it ran great on Windows10, really low latency. It seems to allocate memory and cpu very efficiently.


WOW, I just booted up REAPER. Their releases are now basically portable, just run the executable from it's folder. I used to use reaper in Puppy-Studio/Studio4

geo_c
Old School Hipster, and Such

geo_c
Posts: 2881
Joined: Fri Jul 31, 2020 3:37 am
Has thanked: 2205 times
Been thanked: 878 times

Re: Working with JACK Audio server in Pipewire KLV's

Post by geo_c »

Okay @rockedge Thanks for the link!

Reaper answers the important question, is pipewire-pulse midi-port-input capable on KLV-airedale-JackPipe and the answer is YES.

Without jack running I set pulse devices to my Presonus Interface and fired up Reaper with pulse audio as the driver. The midi keyboard Akai-LPK25 and Presonus midi ports are present in reaper, can be activated in Reaper preferences, chosen on individual tracks and the keyboard is working to play the virtual instruments in REAPER like ZynSubFX.

Image

I'm buying Reaper, I always liked it. It's cheap, portable, and they don't use subscription structure. And it's reliable.

Image

So now my Airedale-JackPipe can do audio/midi applications using Jack or Pulse-Pipewire. Sweet.

The question remains why midi doesn't show up in qpwgraph. I think I'll try Helvium which is gtk based and see if that makes a difference. I'm guessing it's going to be an application specific type of issue in the big picture, that is accessing midi devices through pipewire pulse.

And one important quick observation! Latency is pretty bad using Reaper virtual instrument with pulse drivers. I'm going to switch to jack and see if Reaper does better that way, because Reaper can use either.

geo_c
Old School Hipster, and Such

Clarity
Posts: 3842
Joined: Fri Jul 24, 2020 10:59 pm
Has thanked: 1632 times
Been thanked: 526 times

Re: Working with JACK Audio server in Pipewire KLV's

Post by Clarity »

@geo_c and @rockedge , is this forum helpful?

And there may be other forums around where we can route questions on qpwgraph. Or, maybe use GIT to post questions to the authors.

I think as these 2 products, namely Wayland and Pipewire, increase in visibility in the LInux-Puppyland world, forums for visual understanding is going to be increasingly important across the board; no matter if user is normal user, musician, video product use, gamer, etc. Multimedia is where the world is, right now, and moving forward among our young. Thus, having a Linux distro(s) as the ones Puppyland is starting to produce will increase users attractions, participations, and assistances.

IN Puppyland, we will need topic areas for the 2 products; and in addition we will need areas for WirePlumber, qpwgraph, and Helvum as these will be across the board for Puppyland distros (or minimally we will need links to forums for these offerings to reduce and assist Puppyland developer workloads).

User avatar
rockedge
Site Admin
Posts: 6551
Joined: Mon Dec 02, 2019 1:38 am
Location: Connecticut,U.S.A.
Has thanked: 2757 times
Been thanked: 2628 times
Contact:

Re: Working with JACK Audio server in Pipewire KLV's

Post by rockedge »

Latency is pretty bad using Reaper virtual instrument with pulse drivers. I'm going to switch to jack and see if Reaper does better that way, because Reaper can use either.

Definitely interested in knowing how that went. I am wondering why the latency is there with Reaper?

geo_c
Posts: 2881
Joined: Fri Jul 31, 2020 3:37 am
Has thanked: 2205 times
Been thanked: 878 times

Re: Working with JACK Audio server in Pipewire KLV's

Post by geo_c »

Clarity wrote: Tue Jan 16, 2024 8:34 pm

@geo_c and @rockedge , is this forum helpful?

Unfortunately @Clarity, that forum is not helpful. (that graph application is for jack, and I have multiple functioning and nice looking jack graphs that display midi in this KLV-airedale-JackPipe.)

Helvum looks a helvum lot better than qpwgraph, but it has zero functionality except for routing, and that's kind of goofy the way it makes disconnections. If given a choice I'd have to go qpwgraph. But the young folk you speak of won't like the look of it, they'll like helvum a helvum lot better. And that's what's most important. Which is why people use macs. Mac users often say to me after I explain all the downsides, "yes, but it's so beautiful. Just look at it! It has a nice looking apple on it, and is very thin with very few ports."

Fire both of these graphs up in one of the KLVs/pipewire @Clarity and see what you can discover. They are both the simplest install in the world. No need to keep mentioning including in the build, because that's easy, you just add xbps-install qpwgraph helvum in the plug. And they work. Nothing needs to be done.

The bigger issue is why they don't display midi devices in Airedale. And that probably doesn't have to do with them in particular, or they just don't have that capability, but I think they should. You can research their specs for me so I can test more hardware/software combinations. If you read my above post, you'll notice that Reaper has no trouble with the midi devices under pipewire-pulse, so that means pipewire is giving us functioning midi ports and jack is also able to utilize and display them just fine. That's good news. In fact it's all I personally need, because when I use midi, I'll use jack, and when I'm just putzing around the net, I'll use pulse. But before a final build is done, all these little details on how they all interact should be figured out as best as possible so the configs are all there. A cursory read of online discussions will show that very few people have it completely figured out.

side by side comparison of helvum and qpwgraph:
Image

Last edited by geo_c on Wed Jan 17, 2024 4:55 am, edited 7 times in total.

geo_c
Old School Hipster, and Such

geo_c
Posts: 2881
Joined: Fri Jul 31, 2020 3:37 am
Has thanked: 2205 times
Been thanked: 878 times

Re: Working with JACK Audio server in Pipewire KLV's

Post by geo_c »

rockedge wrote: Tue Jan 16, 2024 10:14 pm

Latency is pretty bad using Reaper virtual instrument with pulse drivers. I'm going to switch to jack and see if Reaper does better that way, because Reaper can use either.

Definitely interested in knowing how that went. I am wondering why the latency is there with Reaper?

Well all in all Reaper running under Jack is great on latency! Didn't notice any at all. It was a little goofy setting up the midi devices though because they weren't labeled properly. The two I need were at the bottom labeled 'system', and one of them was the midi keyboard. And there were two at the top labeled 'not found' which I checked off the option to ignore. So once I figured it out, it works extremely well, a lot less overhead than say Ardour. Reaper still looks like Windows 98.

So the takeaway is that Reaper finds and plays midi hardware with proper labels and everything using the pulse driver, but the latency is actually to the point of unusable (though simple soft synths did better than resource heavy multi sample sfz instrument)
AND
Reaper performs with remakable responsiveness using virtual instruments under jack, but the midi hardware devices don't display names as clearly, and setting them up is a little more hit or miss. But regardless they show in qjackgraph with proper names and all, and they are connected automatically by reaper in both pulse and jack scenarios.

Image

Image

Image

geo_c
Old School Hipster, and Such

Post Reply

Return to “KL-Dev_Work”