<<

Jamulus Workshop 28th August 2020 Dr Patrick Early

https://youtu.be/ymwBwhvEeS8 Sound travels at 1,125 ft per second in 20°C Jamulus If

Sound travels at 1,125 ft per second in 20°C Then a 30ms Delay would equate to being about 33ft from the person you are playing music with This picture was taken about 30 feet away from the players. From hear you hear the sound 30ms after it is made. The 30ms echo was mingled with longer echo's as the sound came back from the walls of nearby buildings.

Abby Road rooftop recording session 1969 the Beatles over the internet produces exactly the same echoed sound as was heard from buildings that are further away and can become a distracting influence when playing online.

We are trying to minimise this effect therefor at every stage of the – the equivalent to being as close to the player as is acoustically possible. Ironically effects pedals try to deliberately create the ‘Rooftop’ or outdoor effect. 30 ms Demo

https://youtu.be/-3jTSw0grXg

30ms as an effect A delay over 5Oms becomes problematic

A delay over 100ms becomes unworkable for string players, as the meter becomes ambiguous without the help of accurate visual direction- the conductor Case Study: Performing Band Rehearsals on the Internet With Jamulus

Volker Fischer

Abstract The author of this paper is a member of a rock cover band performing weekly rehearsals on the internet over a period of three years. During that time a lot of practical experience with real time jamming was gained. In this paper the author shares these experiences and gives an overview of the Jamulus software which was used to jam online discussing the most important facts for a successful setup.

1 Introduction Since the quality and speed of internet connec- tions have improved tremendously in the past years, performing distant online jamming in real time is possible now. There are near real time Figure 1: Jamulus software on a typical jam solutions like Ninjam [Incorporated, 2015] avail- session able with a synchronization mechanism based on musical form. It provides a way for musicians ing narrow band networks like a Digital Sub- to improvise together but real songs cannot scriber Line (DSL) or a Cable Modem (CM). be played with this system. Jamulus [Fischer, There is one server running the Jamulus server 2015] is a similar software like LDAS [Saebø and software which collects the audio data from each Svensson, 2006], Soundjack [Carot et al., 2006] Jamulus client, mixes the audio data and sends or eJamming [Blythe and Sewell, 2011] for ac- the mix back to each client. Jamulus is Open tual real time networked music performance. It Source software (GPL, GNU General Public Li- enables musicians to rehearse songs like they cense) hosted at SourceForge and runs under would if they were in the same room together. , Windows and MacOS. It is based on the Online jamming has many advantages, e.g. framework and uses the audio codec musicians get the possibility to jam with oth- [Valin et al., 2012]. A screen shot of Jamulus is ers residing too far away, where they would not shown in Figure 1. have a chance to practice in a traditional way. The initial release on SourceForge was in 2006 Another advantage is that no rehearsal room were Linux was the only supported operating must be rented and no instruments need to be system using a native ALSA audio interface and transported. The virtual rehearsal room is ba- a simple ADPCM audio coding. In the most re- sically moved to the home. cent version, Jamulus is a multi-platform, easy In this paper the long time experience with to use software utilizing the JACK audio in- online jamming is presented. In the first part of terface and a high quality audio coding library. the paper the Jamulus software is introduced. Private jam servers can be registered at the cen- In the second part the online band experience tral server so that they show up in a list on the is shared. Jamulus client server menu. The simplified core structure of Jamulus is 2 The Jamulus Software shown in Figure 2 and starts with a callback The Jamulus software enables musicians to per- based audio interface which captures audio sam- form real-time jam sessions on the internet us- ple blocks. These blocks are compressed with ‘For the concept of online jamming with various different musicians it is indispensable that the servers are crowded. Therefore Jamulus must be intended for end users and it has to be user friendly. With a straightforward GUI design and an auto detection of the buffer size, Jamulus tries hard to get to this goal’. Fischer (2015) Unfortunately for the software to work correctly, a lot of other things have to be setup correctly. It starts with the analog audio setup, i.e. an instrument and/or a microphone has to be mixed and connected to the sound card of the PC. The PC hardware must be prepared for real time processing, i.e. no CPU or network demanding software may be run in parallel to Jamulus and things like energy saving techniques of lap- top processors have to be turned off. Correct audio drivers must be installed and the parameters like the buffer period size must be set to a small value to get the lowest latency possible. The internet connection must provide not less than the minimum required bandwidth and, at least equally important, must have a low ping time to the server. If even one of these requirements are not fulfilled, the performance is bad or Jamulus does not work at all’. Fischer (2015) Remote%20Live%20Help%20C4%20Site.webarchive Remote%20Live%20Help%20C4%20Site.webarchive https://jimamsden.wordpress.com/2020/04/04/remote- jamming-with-helix-and-jamulus/ Typical Jamulus Window Typical Connection Options A Minimalist Control Setup Minimalist Settings Window

How to change internal microphone volume in Windows 10 https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=w eb&cd=&cad=rja&uact=8&ved=2ahUKEwjFudSi1_fpAhUHSxUIH TrgBYAQwqsBMAB6BAgKEAQ&url=https%3A%2F%2Fwww.yout ube.com%2Fwatch%3Fv%3DmmunTzfs5gY&usg=AOvVaw1dJUD EAlJ9dpWhAQIl6jdS A server is set up in the vicinity of the players to handle all of the signal processing.

Failing this, all participants should connect to the nearest (lowest latency) server. These are mandatory Requirements for all participants without exception, to reduce overall latency to a tolerable level for everyone in the rehearsal

Jamulus software downloaded and installed. Ethernet connection direct to your computer A good internet connection A set of regular headphones. A quality instrument microphone An audio interface Requirements Jamulus software downloaded and installed. Ethernet connection direct to your computer A good internet connection A set of regular headphones. A quality instrument microphone An audio interface

Requirements Jamulus software downloaded and installed. Ethernet connection direct to your computer A good internet connection A set of regular headphones. A quality instrument microphone An audio interface

Wi Fi is unacceptable

Use a dongle if there is no Ethernet connection on your computer Requirements Jamulus software downloaded and installed. Ethernet connection direct to your computer A good internet connection A set of regular headphones. A quality instrument microphone An audio interface

A relatively small speed requirement is specified in kbps by Sourceforge Given the low kb speed requirement, a more accurate way of measuring the quality of your internet connection for the purposes of using Jamulus therefor is to assess if there are points along its path to and from the server, where delay variation is taking place - jitter

Packets of data which carry the audio information get interrupted by variation. This has the effect for the listener that you would experience if buildings were popping up out of nowhere during an outdoor performance, producing random distracting echo’s of your playing (altering your perception of distance from the other players as it were).

Traceroute helps to identify the existence of these blocks by registering variation in round trip times for ‘pings’ in ms

Wider ping time variation indicates a less satisfactory internet service and is the main cause of the audio flow being compromised

Requirements Jamulus software downloaded and installed. Ethernet connection direct to your computer A good internet connection A set of regular headphones. A quality instrument microphone An audio interface

Blue tooth and wi-fi will increase the overall delay Use headphones with a cable and single stereo jack

Requirements Jamulus software downloaded and installed. Ethernet connection direct to your computer A good internet connection A set of regular headphones. A quality instrument microphone An audio interface You have to tailor your investment to your circumstances Requirements Jamulus software downloaded and installed. Ethernet connection direct to your computer A good internet connection A set of regular headphones. A quality instrument microphone An audio interface

Jitter is the variation in the time between data packets arriving, caused by network congestion, or route changes. The longer data packets take to transmit, the more jitter affects audio quality.

Standard jitter measurement is in ms A jitter buffer is a temporary storage buffer used to capture incoming data packets. It is used in packet-based networks to ensure the continuity of audio streams by smoothing out packet arrival times during periods of network congestion. ‘Crackling’ is due to lost packets. What we've done in choir to reduce this is to switch the auto-buffer off and manually increase it a bit from the auto-set setting. O’Reilly (2020) You can try to optimize the latency vs. audio dropouts yourself by turning Jitter Buffer Auto off and following this simple algorithm: 1. While not playing, set the local jitter buffer for the client to balance latency with dropouts of the mixed signal you’re hearing coming from the server. 2. Then play and set the server jitter buffer to balance latency and dropouts of your own signal sent to the server. Do this after you have set the local jitter buffer as these two are cumulative. 3. Reduce the jitter buffer size (reducing latency) until dropouts become unacceptable, then increase the buffer size a little to account for network timing variation.

This algorithm attempts to achieve a balance between delay and audio dropouts.’ Amsden (2020) On Muting the Return Sound

‘To play synchronized with the others, one must only listen to the audio mix coming back from the server.’ Fischer (2015) ‘It makes sense to mute yourself during the session, but when preparing, leave yourself unmuted.’ Mountford (2020) ‘The word in the jamuls circles and from the developer is to not mute your return signal and "train" yourself to play to the slight delay. The reasoning behind this is, everyone else is hearing the return signal at the same time’ O’Reilly (2020) Accommodating Latecomers Windows

Audio Stream Input/Output (ASIO) is a computer sound card driver protocol for digital audio providing a low-latency and high fidelity interface between a software application and a computer's sound card - needed to get Jamulus to work on Windows

ASIOFORALL https://www.sweetwater.com/sweetcare/articles/installing-and-using- asio4all-for-windows/ How to setup a Jamulus Server What is the server for? This is the service that will allow you and your musician friends to participate in your own Jamulus session. Where does the server run? It runs on an Amazon machine , so you don’t’ have to be concerned with its maintenance. It can be running all the time so you or anyone from your group can setup a session at any time. I am suggesting the Amazon service simply because it is inexpensive and there is a an excellent guide available on Facebook for you to follow. How do I set it up? Here is the link for the guide: https://www.facebook.com/notes/jamulus-online-musicianssingers-jamming/howto-idiots- guide-to-installing-jamulus-server-on-amazon-aws-lightsail-ubuntu-i/507719749802976/

Note that each step must be followed exactly as is in the guide. The guide has screenshots at each stage to help you. The next section in this document has isolated all the commands that you enter at the Setting up your Server section in the facebook guide – shown in the screenshot here:

Checklist Everyone joining the rehearsal must adhere to criteria and test their settings beforehand, otherwise it doesn't work for the other participants also.

1. Jamulus software downloaded and installed. 2. Ethernet connection plugged directly to your computer 3. A good internet connection - (>500kb upload/download speed) (<40ms ping average round trip) 4. A set of regular headphones with cable. 5. A quality instrument microphone ideally attached to the instrument 6. An audio interface Things to observe when running the test

Switch off other applications on your computer

Connect to a public server with lowest ms latency at the top of your connect options

Run the test beforehand by listening to and tweaking your own return sound.

Large variations in ping time predict a poor quality sound experience more than your internet speed

Exclusive use of internet during rehearsal to avoid demands on data flow and processing power

Power saving options on the computer should be disabled

Keep your overall delay to less than 50 ms

Tweak jitter buffer settings to obtain best sound quality

Set new client level in settings to 0 to minimise latecomer distractions

Obtain private server address from session organisers for rehearsal Jamulus Choral Festival

https://youtu.be/m811fZiPyaQ?t=572 Questions and Discussion