# Online music jam

Online Music Jam is a learning resouces addresses concepts to practice music online when the musicians where not able to meet in person. The learning resource was create in the context of the development of the COVID-19 Workflow Transformations. Learning resources could support cultural live under the epidemiological requirements and constraints.

## Introduction

This learning resource was created in the context of COVID-19 pandemics. Singing and joined music was affected through epidemiological constraints. Support for small bands and choirs in establishing online rehearsal to support joint activities of musicians. To create also an operational environment, where musician can experience online pratice and rehearsal, searching for Open Source software, that supports this concept was the first step. Jamulus was identified as OpenSource software to support the learning resource. On the other hand this learning resource will guide you into bit into the computer science background and the requirements and constraints of an Online rehearsal room.
* What is missing in comparison to gathering of the musicians in a rehearsal room?
* What is possible with such kind of infrastructure?
* What are possible further developments, that could improve online rehearsal and how can these new feature be implemented? (see Open Innovation Ecosystem)

## Learning Objectives

With this learning resource you will
* learn about the underlying principles to facilitat online jaming of musicians.
* You are guided to setup an Open Source Online Rehearsal rooms.
* You will get a basic understanding how to exchange audio and MIDI signals between intruments and hardware and the clients of musicians that are connected to joined server, that distributes the signals to the server.
* Understand the challenges for the latency of signal transmissions to generate almost synchronous perceived audio and MIDI streams and distributed the audio and MIDI streams to the musicians.
The learning resources is build on the Open Community Approach so that performing the learning tasks is possible without the need to buy any software.

## Learning Tasks

* (MIDI / Audio) Decribe the difference between MIDI and audio streams and explain the benefits and drawbacks of the different approaches to encode music in a digital form (Open Innovation Remark - Open Source adaptation required to add a Jamaulus Midi exchange layer to the already available Audio Layer).
** Compare why keyboard, drum kit, bass, digital wind instruments and singing/voice as tracks for jamming online with other musician. Which instruments are appropriate for transmission with a MIDI signal. Which tracks would you transmit with MIDI and which track would you share as audio? Please keep in mind that MIDI exchange is currently not available in the OpenSource software Jamulus.
** What Soundfonts and how do they work in conjunction with a MIDI signal coming from a keyboard, digital drum kit or digital wind instrument?
** Play around with the OpenSource software LMMS and use a MIDI track and create a audio with a Software synthesizer
* (Jamulus) Explore the Open Source Software Jamulus and describe which type of data streams are exchanged between the musicians.
* (Latency) Explain the term latency and describe how latency affects the online practice of musicians. How can latency be reduced on the hardware side and on the software side? (e.g. LAN-Cable instead of Wifi, analyse the limitation of Upstream DSL in comparison to Downstream DSL at router, perform a bottleneck analysis for the client server
* (Artificial Intelligence and Pattern Recognition) Currently the latency in the network is a challenge for practicing jointly over the internet. How can artificial intelligence be used to train e.g. the melody of a solo and explain how the train neural network can be used to fill missing fragments due to latency problems? (Feature not implemented in Jamulus - it is just part of the learning resource)
** (Drum Kit) Start with a digital drum create pattern/rythm and use Hopefield Network to train the pattern. Now provide a Hopefield Network a drum pattern or digital sequence that has missing beats. Explain how the Hopefield Network is able to reconstruct the missing beats pattern in pattern! See also Hydrogen
* (Password Protection Online Session) Why is it important to add a password protection to e.g. Jamulus? What are use cases in which the current Jamulus server access without password protection for the online rehearsal room is useful (e.g. meet with people in open environment)?
* (Combination with Videoconference) Assume we would integrate Jamulus Server with a BigBlueButton open source video conferencing server. What are the benefit of seeing the other musicians and what are drawbacks of such an approach:
** (Benefits - Implementation) Access code for meeting rooms (password protection) is already integrated in BigBlueButton.
** (Benefits - Implementation) Jamulus Server could replace the audio communication framework in BigBlueButton or could be set in the room settings of BigBlueButton to define if the standard audio oder the Jamulus audio will be used for communication.
** (Benefits - User) the users may see each other and interact by gesture. Musicians could interact visually with each other, e.g. providing a gesture with the guitar, that indicates that the solo finished.
** (Drawbacks - Implementation) the integration is not part of Jamulus Server into the OpenSource BigBlueButton does not exist and first it necessary to analyse the programming efforts for an plugin or interface to use Jamulus within BigBlueButton.
** Analyse the room concept BigBlueButton and the Greenlight Front End for BigBlueButton. How can the room management of BigBlueButton be transfered to a Jamulus Server infrastructure to host more than one rehearsal rooms and have also the access management from https://bigbluebutton.org/2018/07/09/greenlight-2-0/ BBB and Greenlight] inherited to the Jamulus Infrastructure.

## Submodules

* Software synthesizer - to understand the MIDI concept in conjunction with audio generation.
* Jamulus Server
* Drum Computer
* Global Metronome