Linux+JACK Rack2 performance

Hi,

I had a lot of issues with 2.0.6 and my pipewire setup (which works fine with everything else I tested, using alsa, jack or pulseaudio):

  • if I select alsa, I can’t select my external USB device half of the time, and when it works it gives distorted sound (might be a resampling issue in my system, though)
  • if I select pulseaudio, it says no device available
  • with jack, I have duplicates in the interface list (gets worse if I unplug / replug the device, or restart pipewire). But if I select the right one, I did have sound output, but very bad quality (even changing monitor output volume on the interface wouldn’t be linear, and crack and pop often)

It does get better with 2.1.0, thankfully :slight_smile:

  • with alsa, I can select my card. Still distorted though. Doesn’t matter, I want to use Jack.
  • with Jack, no change: still duplicates of my interface, and bad sound.
  • with pulseaudio, I can see my interface now. And it works fine ! No sound distorsion or probleme with output volume, and I can plug everything I need using qjackctl (thanks to pipewire implementing a jack server).

It’s not super high priority for me now. My builds are functional, just that presets don’t store the port-names.

Out of curiosity, I tried to build your fork from the branch. It does work fine except for the port names, which would be useful. From the code, a few experiments (I’m not a C++ person) and the Rack API doc, the problem seems to be that overriding ModuleWidget::toJson and fromJson can’t work in v2. If using dataToJson and dataFromJson isn’t an option (didn’t go that far), that means this would need to be done by overwriting Module::toJson instead but here I’m far beyond my C++ skills. (Pointers taken from Alternative to overriding Module::fromJson? - #5 by computerscare and To/From JSON Question - #4 by unlessgames)

Anyway, thanks for your work on this @dreamer, and while it’s usable, it’d be great if you (or someone else) find the time and motivation to tackle the porting of Skrylar module, as I don’t think I’ll be able to be useful here :wink:

1 Like