FFADO and PIPEWIRE ISSUES (FIREFACE/PROFIRE 40)

Greetings everyone,

Does anyone know how to switch to FFADO (FireWire Driver) in this new PipeWire world? In Jack/Pulse Audio, I would open QjackCtl setup, then choose “FIREWIRE” instead of ALSA. After this, I would be able to use the FireWire Driver.
Now neither (QJackCtl) is useful under PipeWire, nor qpwgraph offer any controls to choose either ALSA or FFADO (FireWire).
For instance, On Ubuntu/Linux Mint ALSA does not work well with Saffire’s PROFIRE 40 snd_dice chipset. It needs to be blacklisted. But once you do that, the FFADO driver (firewire) it is not available in qpwgraph controls for pipewire. Does anyone know how to deal with it?

Another issue is with the ALSA FIREWIRE driver for RME FIREFACE 800 and Profire40: I can not identify the ADAT ins. All I can see are “inputs” and not ADAT 1: ADAT 2 etc. This is only possible with the FireWire driver.

I have tried to load FFADO Mixer to see if it makes the option available but it does not change anything except to control 48+ and other things

Please let me know your thoughts ok

Thank you in advance

What is your pipewire version (run pipewire --version in a terminal)? Unless you are running the most recent version (1.0.4, released 3 weeks ago, see: 1.0.4 · PipeWire / pipewire · GitLab), it is rather unlikely that firewire devices will work correctly. Fixing FFADO/FireWire support was one of 1.0.4’s main new features/bug fixes, see the release notes from the link above.

1 Like

As for using FFADO instead of ALSA you may need to create a file called 10-ffado.conf in ~/.config/pipewire/pipewire.conf.d/ and populate it with the example from here.

(Info taken from https://www.reddit.com/r/linuxaudio/comments/18byhkr/issues_connecting_firewire_audio_interface_to/ )

1 Like

BlockquoteWhat is your pipewire version (run pipewire --version in a terminal)? Unless you are running the most recent version (1.0.4, released 3 weeks ago, see: 1.0.4 · PipeWire / pipewire · GitLab 6), it is rather unlikely that firewire devices will work correctly. Fixing FFADO/FireWire support was one of 1.0.4’s main new features/bug fixes, see the release notes from the link above.

Blockquote

First of all, thanks for the quick response

The problem is, that I couldn’t load the FireWire Driver in QjackCtl, because under pipewire/jacksimulation, It (QJackCtl) does not work. In the specific case of the Profire 40, it is necessary to blacklist the snd_dice chipset and then load the Firewire (FFADO) driver, and with Jack emulation on, it does not happen.
Today I looked over and over some distributions (XiVA Studio/BigLinux; Manjaro, Open Suse, PopOS, and Ubuntu Studio) and Found out that Ubuntu Studio contains an app called Ubuntu Studio Audio Configuration (USAC). In this APP, I can switch from PipeWire to Pulse Audio/Jack (needs reboot), make adjustments (e.g. SR; Buffer, etc) on Pipewire, and disable Jack Emulation to Jack work properly.
After doing this (disabling Jack Emulation on Pipewire), I rebooted the machine, opened QjackCtl (setup) chose “FireWire” and it worked!! Yay! I could hear the Ardour’s beat and played some recent projects I had recorded previously under Jack/Pulse.

In short, the new Ubuntu Studio (23.10 version) contains an APP called USAC, that allows you to disable JAck Emulation to use QjackCtl properly. I haven’t changed the status of my post to “SOLVED” yet because I did not try to record anything and I was busy between lesson intervals and rehearsals ( I am a bass trombone player/teacher). Tomorrow, I will try to record and test the RME Fireface 800.

I will keep you gentlemen posted. Again thanks for the kind attention.
pactl info output

Glad to read that you found a solution for your issue.

Just a couple of remarks in case you want to to try out pipewire again in the future:

There is a tool similar to QJackCtl called QPwGraph which can be used as a dedicated connection manager on pipewire systems.

As noted already in my first answer, the reason for your FireWire device not working with pipewire in the first place is likely that you are (were?) not running pipewire version 1.0.4, which fixed a couple of issues with the FFADO driver. You didn’t mention your installed version of pipewire, but since pipewire is still fairly new it often makes sense to double check if an issue has been solved in the meantime and update accordingly. Unfortunately Debian based distributions (like Ubuntu Studio) tend to ship older versions of pipewire in their distribution repos.

1 Like

I was not aware that Pipewire was adding FFADO support (previously it relied on the ALSA firewire support), but saw this note in the context of the latest Pipewire shipping in Fedora 40 (in Beta now, should release around the end of April):

Wim spent time fixing Firewire FFADO bugs, so hopefully for our pro-audio community users this makes their Firewire equipment fully usable and performant with PipeWire. Wim did point out when I spoke to him though that the FFADO drivers had obviously never had any other consumer than JACK, so when he tried to allow for more functionality the drivers quickly broke down, so Wim has limited the featureset of the PipeWire FFADO module to be an exact match of how these drivers where being used by JACK. If the upstream kernel maintainer is able to fix the issues found by Wim then we could look at providing a more full feature set.

1 Like

Blockquote
Glad to read that you found a solution for your issue.

Just a couple of remarks in case you want to to try out pipewire again in the future:

There is a tool similar to QJackCtl called QPwGraph which can be used as a dedicated connection manager on pipewire systems.

As noted already in my first answer, the reason for your FireWire device not working with pipewire in the first place is likely that you are (were?) not running pipewire version 1.0.4, which fixed a couple of issues with the FFADO driver. You didn’t mention your installed version of pipewire, but since pipewire is still fairly new it often makes sense to double check if an issue has been solved in the meantime and update accordingly. Unfortunately Debian based distributions (like Ubuntu Studio) tend to ship older versions of pipewire in their distribution repos.

Blockquote

Hi Jmaibaum, thank you for your quick response. I do appreciate it

I have tried the QPwGraph but it does not contain any setup engine like QJaCtl (e.g. Choosing the DRIVER such as FIREWIRE instead of ALSA) that is the main reason why I don’t use it.
I know about QpwGraph because I am in two Brazilian Telegram Groups one of which, contains a Big Linux/XIVA Studio developer. All of them are trying to help me but that’s the point.
Qpwgraph does not contain any setup, as I have mentioned before.
Also to make things clear, when Ubuntu studio gives me the option to be able to use QjackTl, It does not remove PipeWire it is just to remove the Jack EMulation so I can use Jack alongside Pipewire. (As far as I know, it does not bring jack/pulse audio back. Just the ability to use QjackCtl properly. Thats why I uploaded the “pactl info” image. That displays the system is using Pipewire. Server name: “pulseaudio (on Pipewire”

Yes, Tried de version you mentioned but without a command or a GUI like QjackCtl, how can I switch from ALSA to FireWire (FFADO) ?
That’s my point. I did not quit using pipewire. It is just a question that with PipeWire and QPwGraph I can not do that. If I use it the I/Os labels go crazy I don’t know what is ADAT1 (first set) the Analogi ins
FireFace 800 contains 10 analogic ins plus two sets of ADATS, which all Labels are messed up with ALSA in QPwGraph. On the other hand, when I switch to FireWire, I can see ALL the proper labels
I hope I have made clear that’s why Pipewire is not working for me ok. (this is for FIREFACE 800 by RME Hammerfall )

FOr instance, another FireWire interface: Saffire PRO 40. The ALSA driver for it does not work well. I need to blacklist its chipset.
When I do it, how can I choose the FIREWIRE DRIVER (FFADO) if QPwGraph does not offer that?
That’s why I came here and asked for help. QPwGraph needs to offer the same degree of options to switch drivers just like QjackCtl offers.

Again, thank you again for your support, I’m looking forward to see this improvement made

qpwgraph is a free and open source project, so it technically doesn’t need to offer anything.
That said, you could contact Rui and ask if he would consider adding the ability to switching backends.

I don’t know switching has to be done by adding or removing conf files in your pipewire directory (as I suggested here FFADO and PIPEWIRE ISSUES (FIREFACE/PROFIRE 40) - #3 by peder ) and restarting PW or if can be done in a more “ephemeral” way.

So I guess, because I NEVER really used it, I will just keep not using, it
by removing PIPEWIRE and qpwgraph completely, reinstalling PULSE/JACK, and
keep using it because “qpwgraph is a free and open source project, so it
technically doesn’t need to offer anything.” I’ve been using Pulse/Jack
for many years. So I am quite fine with it.
Thank you!

Well, it’s right there in the GPL license info :
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

You are, of course, free to never look at PipeWire until they pry Pulse/JACK from your cold, dead hands, but have you asked Rui for a qpwgraph option to switch between ALSA and FFADO?

He seems to be a nice guy who likes programming so he may very well be “Hey, that’s a great idea that I just forgot about. I’ll have it working in a couple of days”.

I find that Pipewire is a better replacement for Pulse, and by running jackd all of the expected JACK configurations and tools (e.g. qjackctl) work as you expect for audio production use. The latest versions of Pipewire explicitly support using jackd as the lowest layer, with all usual desktop applications using the Pipewire Pulse emulation, JACK aware applications using jackd. The performance should be better than the pulse jack-source.

To use the traditional jackd implementation of JACK server make sure to uninstall pipewire-jack modules from your system, but leave pipewire-pulse modules.

ffado and ffado-mixer w/pipewire work fine for me using a Focusrite Pro40. (fc39)

1 Like

Like it’s been written, you need to add the config file in the right place AND you need to follow this guide to give real time priority rights: Performance tuning · Wiki · PipeWire / pipewire · GitLab

After that, you don’t have to worry about drivers and all that because Pipewire will use FFADO and automatically function as jack, alsa or pulse, no matter what you chose Pipewire will be there for you (unless you have parallel installations, I don’t know anything about that). I’m quite pleasantly surprised as soon as I got it running. I tried updating MX Linux (Debian) to the latest version and it was seemingly impossible from my limited knowledge, but I switched to Arch and it worked flawless to update Pipewire and install the latest FFADO version.

1 Like

Again,

Thank you all for your support and quick response. I will do that

Just a heads up, for some reason updating to Pipewire 1.0.5 broke the FFADO function for me, there’s something with RTKit that’s not working. No one else has reported this so it seems like I’m the only one.

MX 23 comes with PipeWire 1.0.0 but it provides updated versions in its ‘MX Test’ Repo which you can easily access with the MX Package Installer, just go to the MX Test Repo tab.