Best JACK/Ardour configuration for remote operation - netjack? ssh -X?

I have a laptop and a desktop, both running the latest Ubuntu.

Laptop is 2 GHz Pentium M, 2G memory

Desktop is 2.4 GHz Pentium 4, 492M memory (could be expanded to 2G easily enough if I needed to)

The desktop is hooked up to my USB mixer and studio monitors and it acts as a file server, SSH server, etc. (In other words, it was originally going to be headless, but I never ended up removing the $8 thrift store monitor.) The monitor is barely ever turned on. I access it remotely through ssh, ssh -X, NX, or VNC. I run Rhythmbox through ssh -X, for instance, so the sound comes out of the monitors.

I use my laptop for all my daily stuff. It has a better screen (obviously) and is set up more as a desktop system than a dedicated server.

I’d like to control Ardour on the laptop screen, and have sound come out of the monitors. I know of two ways to do this:

  1. ssh -fX desktop ardour2
  2. netjack

I figure the first would be better, but I’m not sure. What do you think? Is there another way? I don’t think netjack is even built into Ubuntu, so that might be especially hard. If I go the ssh -X way, how should I configure JACK for optimal performance? I installed the -rt kernel but it actually seems to be worse; I’m still trying to figure out how to even get that working without xruns (in several years of trying to run Ardour, I have never solved the xrun problem). I don’t know what all these settings in JACK are for… For instance, “Unlock memory for graphics toolkits” seems pretty relevant to option #1, but the cryptic tooltip doesn’t explain what it does. Would unlocking toolkit memory be good or bad?

There’s also the matter of which machine to store the sessions on. I can store them on the laptop, for instance, and use sshfs to open them on the desktop, which would then send the GUI to the laptop over X, which would then play audio on the desktop… :slight_smile:

  1. ssh -X desktop ardour2
  2. netjack
  3. xdmcp

im using the third one of course, and sometimes ssh -X or -Y
if you installed the rt kernel, be sure to be in the audio group and to update your /etc/security/limits.conf
you should have something like this at teh end of the file

@audio - rtprio 100
@audio - nice -10
@audio - memlock 250000 # or “unlimited”.

for the sshfs stuff, i would avoid this and store the sessions on the desktop

Yeah I think I’ll go with ssh -X.

Does anyone know what the “Unlock toolkit memory” option is? Would this help or harm performance with remote X windows?

XDMCP requires logging out and then logging into the other computer full screen, right?

I suppose there’s another option, too:

  1. NX (FreeNX?) Unix --> Custom --> “Run the following command” in floating window mode

That might be faster than ssh -X, though in a LAN situation, network isn’t really the bottleneck; allowing the processor to work on audio without interruptions is. I’m not sure which is better for this. (I have a lot of problems with NX corrupting my GNOME sessions when I do a full NX GNOME session, but when running a single program remotely like this I think it is fine.)

I followed these directions so I just have

# End of file
@audio - rtprio 99
@audio - nice -10

The memlock line was apparently removed from that page for Hardy Heron? Not necessary anymore?

The username I am logging into SSH with is in the audio group, so that should be fine, right? I’m still getting the “cannot lock down memory for RT thread” error, though. Maybe the memlock thing is necessary after all?

I had to add the memlock line to get JACK to work.

NX is more responsive in some ways, but key bindings don’t work, and ssh -X is more responsive in other ways. We’ll see.