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. (Note: this process comes at the end of the second script and throws a lot of error messages — no worries)
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. I’ve included some prebuilt templates with these routings that can be imported into Audour (look in the Recordings folder).
Installation — the terse, three-step recipe:
—- Provision a Linode server with this Community StackScript at Linode
—- SSH into the newly-provisioned server. The script has some work to do after the server has been provisioned. The Stackscript is finished when you see the “create_jacktrip_server.sh” file in the root directory (type “ls” to see those files). Once the file is there…
—- Type ” ~/create_jacktrip_server.sh ” from the command line.
Here’s a copy-and-paste version:
—- Answer “yes” to the prompt in the script
—- Wait about five minutes (and don’t worry about all gibberish or the error messages that flash by – some of us find it fun to watch… once)
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 ”
—– Note: try crazy-wide geometry if you have multiple monitors – eg 3200×900
vncserver -geometry 1600x900
—– A handy way to get rid of the old server before trying a new geometry
vncserver -kill :1
—– 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.
Some form of a message like this will display when the script completes. This is a set of next-step shortcuts. Keep reading for a more detailed explanation.
The server is ready. This is version 1.4 NEXT STEPS: Log out of this session (some of the settings won't appear until the next log in) type: logout Graphical interfaces: GLISH -- Linode's web based interface Log into Glish in Linode type: startxfce4 VNC -- a client/server interface Start the server on the Linode: Log back into the server with a new SSH session in a new terminal window. Here are some useful commands: type: vncpasswd (to set the VNC-session password - only needed the first time, Note: no more than 8 characters will be captured) type: vncserver -geometry 1600x900 (to start the server - needed every time. This example sets screen-dimensions to 1600x900 but try other options) type: vncserver -kill :1 (to stop the server, perhaps to try a different geometry) Start the client on your local machine Here's good client: https://www.realvnc.com/en/connect/download/viewer/ Start a session by connecting to the Linode's IP address on port 5901 (formatted like this: 18.104.22.1686:5901 ) Info/complaints/suggestions page: https://www.haven2.com/index.php/a-pretty-good-jacktrip-toolkit-part-1-installation * * * * * * * * * * * * *
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…
This is the last step of building the server and is a 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 GLISH-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
Help! How do I escape full-screen mode in RealVNC! Been there. I feel your pain. Look **very** closely at the top center of the screen and you will see a hint of the drop down menu that appears when you hover your mouse over that spot. It’ll look like this. Et voila. Note the other handy items hidden in there.
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 stored in Root’s “Recordings” folder will be visible world wide via web browser. I make that the Recordings folder the default file location for Ardour. View those files with a web browser pointed at 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…”