This is a walk through of a graphic-interface Jacktrip virtual server that can be used either as a HUB server for musicians, a teaching aid or as a testbed for experimentation. It’s a Linode StackScript based on this post by Michael Desson and Bonnie Kwong.
All credit where credit is due. My pal Ralph Jenson did the heavy lifting on writing the script.
About the StackScript
This StackScript builds Jacktrip from the main Github repository. So version 1.3.0 as of this writing.
The script also installs audio apps (Qjackctl, Ardour and Jmess), some easier-to-use utility apps (Kate – a graphical text editor, and Nautilus – a graphical file-manager) and virtual-desktop servers (a web-based one used by Linode’s GLISH interface, and a VNC server).
Here’s Ardour, getting the Jack dummy-interface server going
Here’s the first half of a Jacktrip mixing session layout (hidden to the right are mix-minus and self-monitoring channels for participants — more about that in a new post that I’ll link to when it’s done)
Here’s the window of the server containing the command-line and Qjackctl interfaces. Notes: start Ardour before Qjackctl, so it can start Jack. Launch Jacktrip with the “-p 5” option so it doesn’t attempt to figure out the routing. Jmess just works. Note the tricky “mix-minus” routing tangle in the Qjackctl Connections window. Those routings are MUCH easier to set up and understand in Ardour.
Installation — the terse, three-step recipe:
—- Provision a Linode server with this Community StackScript at Linode
—- SSH into the server and type ” ~/create_jacktrip_server.sh ” from the command line
—- Answer “yes” to the prompt in the script
That’s it — the server is running and provisioned.
Accessing the desktop GUI once the server is running
– Through a web browser:
—– Log into the new server through Linode’s GLISH interface
—– Launch the desktop server by typing ” startxfce4 ” on the command line
– Through a VNC client on a local computer (more stable/responsive)
—– SSH into the new server
—– First time: set VNC password with ” vncpasswd ” command
—– Launch the desktop server by typing ” vncserver -geometry 1600×900 ”
—– Launch a VNC client on a local computer (get one from RealVNC)
—– Connect to [the server IP address] on port 5901 – eg ” nnn.nnn.nnn.nnn:5901 ”
Installation — the detailed step by step version, with screenshots (click on them to embiggen):
Provision a server – log into Linode and provision a server with this StackScript (A Pretty Good Jacktrip Toolkit). Select a region that is the best geographic compromise between participants. Select a server based on use — the lowest level server works fine for experimentation, higher levels (more cores/memory) may work better during performances. Provide a password for the Root account.
Here is what the server looks like once it’s provisioned.
“A” is the IP address of the server (to be used in jacktrip command strings, etc.) and “B” is the string to log into it from the terminal. “C”, logging into the LISH Console, is coming up in a step or two.
SSH into server and run: ~/create_jacktrip_server.sh
I prefer to log into the server from the terminal on my local computer. One advantage is that I will have a complete log of what happens, in case something goes wrong. Copy and paste the ~/create_jacktrip_server.sh string in to run the script. Type it in by hand as a last resort to overcome “command not found” errors.
– Answer “yes” to the prompt in the script
This will come fairly early in the script. Use the left-arrow key to select “yes” and hit Return/Enter to resume/finish the script. The script will take about 5 minutes to complete.
Once the script completes, the Toolkit server is complete and running. Here are the steps to log into the graphical interface.
– Option 1: Log into Glish and run: startxfce4
Return to the StackScript screen and click “Launch LISH Console”
Click the “Glish” tab, and…
… log into the server (look at the picture below). Once logged in, type in…
(yes, “type” — no copy/paste into this screen, unfortunately). This the last step and is the way to enter the graphic interface of the server whenever it is used.
– Option 2: Log in with a VNC client on your local computer
First time the server is started, set a password for the VNC session (maximum 8 characters long) with ” vncpasswd ” at the command line. It will prompt for the password and a confirmation.
Log into the server from your local computer and type ” vncserver -geometry 1600×900 ” to launch the VNC process on the Linode server. Note that typing ” vncserver ” alone without the geometry parameter is fine — I prefer to make the desktop dimensions a little bigger than the default.
Log into the server with a VNC client app on your computer. Here’s an example using the viewer from RealVNC. Note that the port ( “:5901” ) must be included in the IP address.
Here’s what appears in either case (GLISH or VNC). Select the default config. The server is ready.
This is an excellent time to create a “Basecamp” image of the server. It’s built, but absolutely nothing has been changed or configured. A great starting point for new projects, or rebuilding projects that have gone wrong. Go to the “Images” tab on Linode to create the image.
The screen is blank in GLISH. Toggle back and forth between the Lish and Glish tabs a few times. If that doesn’t work, close and reopen the Glish window. The server is fine and the jacktrip session will continue without trouble, the window-gizmo is a little flaky. That flakiness is the main reason I added the more-reliable VNC server to the script.
Search for files. Use the Nautilus file-manager — Applications/Accessories –> Files
Graphical text-editor. Use the Kate text-editor — Applications/Accessories -> Kate
Change the size of the desktop.
If using GLISH web interface:
—– Applications/Settings/Settings Manager –> Display
If using the VNC server:
—– Save your work and disconnect the VNC session
—– Kill the VNC server from your local desktop ( type ” vncserver -kill :1 ” at the command line)
—– Restart the VNC server with new geometry settings (” vncserver -geometry nnnnXnnnn “)
—– Restart the VNC session
Where can I get a VNC client app? A good option is RealVNC
Apps are cluttered. Spread them out between Workspaces (the four boxes in the upper right)
Format of jacktrip and Jmess commands. Normal — “jacktrip” and “jmess” in a terminal window
Where does Jmess store it’s settings files? In the Root home directory by default.
Where are QjackCtl and Ardour? Applications/Multimedia
QjackCtl error! “Could not open ALSA seqencer as a client” What now? This is something I’m working on. It’s harmless, and happens because we’re using the Dummy driver, not the ALSA driver. I’m trying to figure out how to avoid it. For now, close the warnings and carry on.
Where is Audacity? Audacity does not play well with Jack and is excluded for that reason. Use Ardour for recording. If you want to install Audacity, you can type ” sudo apt install audacity ” in a terminal window.
How do I share/download recordings and other files. Anything published in Root’s “Recordings” folder will be visible by visiting this link via web browser. http://[server’s IP address]/Recordings
Ardour track recordings. The files are located several layers down the project folder. Here’s the path: Recordings/[Project Name]/interchange/[Project Name]/audiofiles. They’re stored as individual files, which makes them tedious to download. Consider using the Nautilus file-manager to zip them into an archive: select them all, right-click and select “Compress…”