Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/lucylangenb/jacktrip
Browse files Browse the repository at this point in the history
  • Loading branch information
lucylangenb committed Apr 3, 2021
2 parents 42335b9 + adc40a2 commit e5a9f82
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 8 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Currently, conducting in-person rehearsals is difficult (especially for wind musicians and vocalists). However, conducting these rehearsals over Zoom is also not possible simply due to latency: the time difference between sending and receiving audio is too great in a program like Zoom for rehearsals to be possible without significant delays and a lack of rhythmic unity. A latency of more than 150 ms is noticeable in speech, but playing music has a much lower threshold: any higher than about 25 ms makes playing rhythms accurately and together nearly impossible.

Jack and Jacktrip are two audio routing programs that work together to send audio more directly between computers, no matter the physical distance between them. However, online guides recommend the following:
Jack and JackTrip are two audio routing programs that work together to send audio more directly between computers, no matter the physical distance between them. However, online guides recommend the following:
- An ethernet cable
- This isn't about upload/download speed so much as constant, uninterrupted connection. Even the fastest wireless internet sends and receives data in packets, while ethernet maintains a constant connection. We need this undisrupted connection in order to properly play music virtually.
- Internet speeds of at least 5 Mbps upload/download
Expand All @@ -12,4 +12,4 @@ Check out the following links for more info:
- Michael Dessen is a pioneer in composing and playing telematic music, in which performers appear together virtually and are often hundreds of miles apart. He has a great [guide](https://mdessen.com/portfolio/networked-music-performance-resources/) on how he makes this work.
- John Williamson and Sam Leak put together a (two-hour) [Zoom tutorial](https://www.youtube.com/watch?v=-dWTZTv7bUY&feature=emb_rel_pause) that basically goes over the same things as this repository will.

To get started, navigate to the "Install Jack" page above, or click [here.](https://github.com/lucylangenb/jacktrip/blob/master/installjack.md#installing-jack)
__To get started, navigate to the "Install Jack" page above, or click [here.](https://github.com/lucylangenb/jacktrip/blob/master/installjack.md#installing-jack)__
9 changes: 4 additions & 5 deletions installjack.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,11 @@

Jack is essentially an audio patching software. Think about how a synth box works: you connect input and output sources via wires ("jacks") to create new sounds. Jack works the same way, but within your computer: it can route audio from one program to another.

To download the most recent version of Jack for Windows or OS X, [visit the Jack website.](https://jackaudio.org/downloads/)
(As of 8/21/20, the Windows and OS X software links are no longer available on this site. Check out [this Wayback link](https://web.archive.org/web/20200808125552/https://jackaudio.org/downloads/) for an older version of this page with download links.)
To download the most recent version of Jack, [visit the Jack website.](https://jackaudio.org/downloads/)
- For Windows 7 and newer, download the 64 bit installer. For older computers, you'll want the 32 bit installer.
- For OS X, download the Jack2 Binaries file.
- For OS X Catalina and newer, download the Intel 64 bit installer. For older computers, you'll want the Jack2 Binaries file, which is accessbile through [this Wayback link.](https://web.archive.org/web/20200808125552/https://jackaudio.org/downloads/)

You will need to restart your computer after installation. After you have done so, you will notice that Jack exists as a folder on your computer. JackPilot and qjackctl (Q Jack Control) both function as graphic interfaces for Jack; here, we'll use JackPilot.
You will need to restart your computer after installation. After you have done so, you will notice that Jack exists as a folder on your computer. JackPilot and qjackctl (Q Jack Control) both function as graphic interfaces for Jack; here, we'll use JackPilot (though, this may not work for newer Macs; if JackPilot isn't working for you, click here). Note that, especially if you're using an older version of the download files, you might get an error message that the software isn't up-to-date; ignore this.

Upon opening JackPilot, you'll be navigated to a settings window (you can get here again by selecting __JackPilot → Preferences__ in OS X):

Expand All @@ -20,7 +19,7 @@ Upon opening JackPilot, you'll be navigated to a settings window (you can get he
You'll want to pay attention to a few features:
- __Input/Output Device:__ Especially if you have an external mic that you're using (recommended, but not required), make sure these are correct.
- __Sample Rate:__ This is how often your computer captures the sound you're making and converts it to binary code to be stored or transmitted (measured in samples per second, or Hz). For our purposes, 44100 Hz (44.1 kHz) is fine.
- __Buffer Size:__ This is how long it takes for your computer to process audio. Smaller buffer sizes can result in a loss of quality, but larger buffer sizes can reintroduce latency. Musicians seem to like 128 here (not large enough to experience delays, but not too small that you start hearing glitches in transmitted audio).
- __Buffer Size:__ This is how long it takes for your computer to process audio. Smaller buffer sizes can result in a loss of quality, but larger buffer sizes can reintroduce latency. Musicians seem to like 128 samples here (not large enough to experience delays, but not too small that you start hearing glitches in transmitted audio).
- __Interface Input/Output Channels:__ These should automatically match your input/output device, but it's worth checking to make sure. My Apple headphones have two input and two output channels, for example.
- __Virtual Input/Output Channels:__ Again, these should be correct (and should match the interface in/out channels), but check to make sure.

Expand Down
1 change: 1 addition & 0 deletions installjack_qjackctrl.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

4 changes: 3 additions & 1 deletion run_osx.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,9 @@ If you're having problems:

In JackPilot, hit the "Routing" button to open the Connections Manager. Because you have JackTrip running, you'll see JackTrip as input ("Send Ports") and output ("Receive Ports") options. Try selecting one of your system input options; if you are connected to a server correctly, the corresponding JackTrip output will appear in red.

(image)
<p align="center">
<img width="587" height="435" src="https://github.com/lucylangenb/jacktrip/blob/master/screencaps/jackpilot_connectionswhilerunning.png?raw=true">
</p>

Because I have "capture_1" selected, for example, JackTrip's "send_1" appears in red.

Expand Down
8 changes: 8 additions & 0 deletions server.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,14 @@ These are mostly personal notes for myself. Only one person needs to run the ser

In order for clients to connect to your server, you'll need to have port forwarding turned on. This basically means that other devices can see your public IP address and send packets of information to you. Specifically, JackTrip needs the ports 4464-4485 open.

Configuring port forwarding is, unfortunately, really different for each router. For most routers, you should be able to enter the router IP address into a new browser window to edit router settings. For Apple AirPort, you'll want to open AirPort Utility. Google is a much more helpful resource here than I will be because, again, how you set up port forwarding varies so much between devices.

For my future reference, here are some links I found useful:
- [Port forwarding on an Apple router](https://owlr.uservoice.com/knowledgebase/articles/875730-i-have-an-apple-router-how-do-i-set-up-port-forw)
- [ExpressVPN supports port forwarding - can be useful for hiding your public IP address](https://www.expressvpn.com/support/troubleshooting/router-app-port-forwarding/)

## Starting a server

With Jack running in the background, enter the command `jacktrip -s` in Terminal to enter server mode.

Type the following:
Expand Down

0 comments on commit e5a9f82

Please sign in to comment.