diff --git a/_posts/2020-03-28-Server-Rpi.md b/_posts/2020-03-28-Server-Rpi.md new file mode 100644 index 000000000..5da045373 --- /dev/null +++ b/_posts/2020-03-28-Server-Rpi.md @@ -0,0 +1,55 @@ +--- +layout: post +title: "Server Installation – Raspberry Pi" +heading: "Install Jamulus Server on a Raspberry Pi" +author: "fredsiva" +lang: "en" +--- + +This guide shows you how to install Jamulus on a Raspberry Pi. + + +## Server Installation - Raspberry Pi + +**_Please ensure you have read the [server overview](/wiki/Running-a-Server)_** + +_Jamulus has been tested on a Raspberry Pi 4 2Gb by Jamulus user [SIVA Frédéric](https://sourceforge.net/u/fredsiva/profile/)_ + +1. Install Raspbian Buster (allow [VNC](https://www.raspberrypi.org/documentation/remote-access/vnc/) and [SSH](https://www.raspberrypi.org/documentation/remote-access/ssh/README.md) for comfort, but will ultimately run without VNC for higher speed) + +1. Edit [config.txt](https://www.raspberrypi.org/documentation/configuration/config-txt/) to enable boot without HDMI by adding `hdmi_force_hotplug=0` + +1. [Get the sources](/wiki/Installation-for-Linux#get-jamulus-sources), install the [dependent packages](/wiki/Installation-for-Linux#install-dependencies) according to the Linux client install guide **but do NOT install JACK package(s)** - you don't need them on a [headless server](/wiki/Server-Linux#running-a-headless-server). To run a client, install all listed dependencies. + +1. Compile the source code for a server as per [these instructions](/wiki/Server-Linux#compile-sources-create-a-user). Compile a client using the [default instructions](/wiki/Installation-for-Linux#compile-this-bad-boy). + +This will build Jamulus and put it in `/usr/local/bin/Jamulus` + +Connect Raspberry Pi with Ethernet cable to your router. + +If you are running a server, test by starting with the `--server` option, and watch GUI on VNC (or HDMI). When running as a client, you should see the GUI start. + +`Jamulus -s` + +If all is well, run in your chosen [server mode](/wiki/Choosing-a-Server-Type) as follows (or use systemd unit script provided in the [Linux guide](/wiki/Server-Linux#create-a-start-script)), for example a public server: + +`sudo chrt 99 ionice -c1 nice -n -20 Jamulus -s -n -e [yourCentralServer] -o "yourServerName;yourCity;[country ID]"&` + +**Please also see this [important note on Central Servers](/wiki/Central-Servers).** + +See also [Command Line Options](/wiki/Command-Line-Options) for other parameters you can set. + +### To upgrade Jamulus + +Stop the server and simply repeat step 3 for obtaining the sources and installing above. + +If you want to install a specific release, you can do the following using git (where `[RELEASE]` is a release ID such as r3_5_8). See the [official tagged releases](https://github.com/jamulussoftware/jamulus/releases). + +First, `cd` inside the directory in which the Jamulus sources were unpacked/downloaded, then use the following commands: + +~~~ +git pull +git checkout [RELEASE] +~~~ + +Then compile the sources as per a new install. Start Jamulus back up. diff --git a/_posts/2020-09-20-Linux-Install-Script.md b/_posts/2020-09-20-Linux-Install-Script.md new file mode 100644 index 000000000..9b1204f74 --- /dev/null +++ b/_posts/2020-09-20-Linux-Install-Script.md @@ -0,0 +1,144 @@ +--- +layout: post +title: "Linux Bash Installation Script" +heading: "Bash Installation Script" +author: "niebert" +lang: "en" +--- + +Thanks to [niebert](https://github.com/niebert), if you plan to install Jamulus on many Linux machines, you can try this script. + + +The following example was tested on Linux Mint and combines all the commands to install Jamulus on Linux into one script (currently for Ubuntu/Linux Mint). + +## How it works + +To incorporate the different commands for different Linux distributions, variables define the distribution and the release for which the installation script should be performed. The following focuses on Ubuntu with release 18.04 as example. So the suggested script name for the release is e.g. `install4ubuntu18_4.sh`. The script commands are generic so that the installation could also be modified so that they work on other Linux distributions. + +### Installation dependent on Linux Distribution +The following script calls different installation commands depending on the Linux distribution. +The variable `DISTRO` defines which commands are executed. Set the variable depending on the Linux distribution you are using. +* `DISTRO="Ubuntu"` for a Ubuntu or Linux Mint +* `DISTRO="Debian"` for a Debian or Raspbian Linux +* `DISTRO="Fedora"` for a Fedora Linux +Furthermore if the installation is dependent of the release the variable `LINVERSION` is introduced but is currently not used. In the Ubuntu `if` statement there is an example how version depending installation calls can be performed. +```bash +if [ "$LINVERSION" = "18.4" ] +then + echo "Perform Installation Specifics for $DISTRO Version $DISTRO" +fi +``` +The variable `LINVERSION` is currently not used in the following script but it is just a demo how to use the version specific installation commands. + +### Adaptation of the Installation Script +If you want to create an installation script for Debian just copy the script `install4ubuntu18_4.sh` to `install4debian10_6.sh` and modify the distro variables to +```bash +#!/bin/sh +# set DISTRO either to "Ubuntu", "Debian" or "Fedora" +DISTRO="Debian" +LINVERSION="10.6" +``` +After that, test the installation on Debian and modify the commands so that the installation script works on Debian. You can share working scripts, if you like. **Edit by Jamulus-Website maintainers:** You should contact [niebert](https://github.com/niebert) if you want to share scripts. + +### The Installation Script +Copy the following installation script into a file and save it to the filename `install4ubuntu18_4.sh`. After saving the file e.g. in your `Download` directory change to the directory and call the following script with `sh install4ubuntu18_4.sh`. +```bash +#!/bin/sh +# set DISTRO either to "Ubuntu", "Debian" or "Fedora" +DISTRO="Ubuntu" +LINVERSION="18.04" + +# Get Jamulus Release Name with "curl" and "grep" +R=`curl -s https://api.github.com/repos/jamulussoftware/jamulus/releases/latest | grep -oP '"tag_name": "\K(.*)(?=")'` +echo "Jamulus Installation Script for $DISTRO $LINVERSION" +echo "Release: $R" +INSTALLJAMULUS="no" +while true; do + read -p "Do you wish to install Jamulus on $DISTRO $LINVERSION? (y/n) " yn + case $yn in + [Yy]* ) + echo "Start Installation $DISTRO $LINVERSION" + echo "(1) Fetch Release $R from GitHub" + wget https://github.com/corrados/jamulus/archive/$R.tar.gz + echo "(2) Extract Source Code for Jamulus Release $R from GitHub" + tar -xvf $R.tar.gz + echo "(3) Delete ${R}.tar.gz from GitHub" + rm $R.tar.gz + echo "(4) Update Repository" + sudo apt-get update + INSTALLJAMULUS="yes" + break;; + [Nn]* ) + echo "Cancelled Jamulus Installation on $DISTRO $LINVERSION" + exit;; + * ) echo "Please answer yes or no.";; + esac +done + +# echo "Check Variable: $INSTALLJAMULUS" + +if [ "$INSTALLJAMULUS" = "yes" ]; then + echo "(5) Install Build Essentials for $DISTRO" + + if [ "$DISTRO" = "Ubuntu" ] + then + echo "Installation for $DISTRO" + sudo apt-get install cmake qmake gcc g++ + sudo apt-get install build-essential qt5-qmake qtdeclarative5-dev qt5-default qttools5-dev-tools libjack-jackd2-dev + sudo apt-get install qjackctl + if [ "$LINVERSION" = "18.4" ] + then + echo "Perform Installation Specifics for $DISTRO Version $DISTRO" + fi + + elif [ "$DISTRO" = "Debian" ] + then + sudo apt-get install build-essential qtdeclarative5-dev qt5-default qttools5-dev-tools libjack-jackd2-dev + sudo apt-get install qjackctl + elif [ "$DISTRO" = "Fedora" ] + then + sudo dnf install qt5-qtdeclarative-devel jack-audio-connection-kit-dbus jack-audio-connection-kit-devel + sudo dnf install qjackctl + fi + + echo "(6) Compile Jamulus $R" + echo "Change to Directory jamulus-$R" + cd "jamulus-$R" + # ls + qmake Jamulus.pro + make clean + make + sudo make install + echo "Compilation DONE" + cd .. + echo "(6) Delete the Source Files after Installation" + rm -R "jamulus-$R" + +else + + echo "Installation cancelled" + +fi + +``` + + +## Possible Improvements of the Installation Script for Jamulus +The script can ask in the very beginning for which Linux distribution the installation script should be called. +This can be tested with the command `lsb_release` + +The `lsb_release` command returns the distribution specific information about a Linux distro. +With a `grep` command with regular expression the variable `DISTRO` and `LINVERSION`. +E.g. the Ubuntu based systems return with the command the following information. +```bash +$ lsb_release -a +No LSB modules are available. +Distributor ID: Ubuntu +Description: Ubuntu 11.04 +Release: 11.04 +Codename: natty +``` + +The challenge is, that `lsb_release` command must be available on Linux system. On CentOS/Fedora based systems `lsb_release` command is only available, if the `lsb` core packages are installed. So the automated Linux version detected might no work. + +So reading the `DISTRO` and `LINVERION` with the `read` command might be the better distribution dependent improvement than an automated setting with `lsb_release`. diff --git a/_posts/2020-10-19-Software-Synth.md b/_posts/2020-10-19-Software-Synth.md new file mode 100644 index 000000000..21dab87fb --- /dev/null +++ b/_posts/2020-10-19-Software-Synth.md @@ -0,0 +1,77 @@ +--- +layout: post +title: "Software Synth in Jamulus" +lang: "en" +author: "niebert" +heading: "Software Synth in Jamulus" +--- + +This article will show you how to use a software synth with Jamulus. + + + +## Linux + +We will look at the concept of playing a software synth on Linux but other operating systems should work similarly. +Let's have a look at what we need: +1. A software synth like [setBfree](https://github.com/pantherb/setBfree) **(Hammond Organ Synth)** which we'll use in this example. It emulates an organ and outputs its audio to JACK on Linux. +2. A **MIDI Keyboard**. The MIDI keyboard is used to generate the key pressed events, which are transmitted through a USB-MIDI interface to your operating system. After that the synthesizer [setBfree](https://github.com/pantherb/setBfree) generates the corresponding sound for the pressed key. The MIDI keyboard could also be replaced by a digital wind midi controller, which does the same (although the tone is dependent on how the musician blows air into the digital wind controller). +3. A **connector to Jamulus**. You may hear the audio output of the synth on your speakers but the audio output may not be used as input for Jamulus. That's why we need to connect the audio output of the synth to Jamulus (this can be done with QjackCtl on Linux). + +### General Information about ALSA, JACK and MIDI + +This part is specific to Linux. Let's have a look at a few concepts how Linux handles Audio and MIDI before actually looking at how to connect the synth. + +- **ALSA** This is the basic layer which connects to the hardware, i.e. the sound card and the midi controller for the keyboard. +- **JACK** is built on top of ALSA and uses ALSA for the audio output. It provides an easy-to-use environment for music production on Linux. +- The **synthesizer** like the [Hammond Organ emulator setBfree](https://github.com/pantherb/setBfree) connects to JACK and sends its audio there. +- **Jamulus** connects to JACK too and can therefore receive and send audio to every application connected to JACK (including our synthesizer). + +### Requirements for using Software Synths in Jamulus on Linux + +If you use your MIDI keyboard, you might need ALSA2JACK MIDI (`a2jmidid`) from the `a2j` package to be able to connect it to JACK. We use the synth `setBfree` in this example, so I also need this software synth (of course, you can replace this by your favourite Linux synthesizer). Both packages `a2jmidid` and `setbfree` can be installed with your package manager e.g. on Debian/Ubuntu by using the `apt-get` commands: + +```shell +sudo apt-get install a2jmidid +sudo apt-get install setbfree +``` + +### Connecting ALSA, JACK and MIDI for a Synth for Jamulus + +Let's have a look at the workflow. + +1. Install Jamulus (you've probably already done that. If not, please have a look at the [installation page in the documentation](/wiki/Getting-Started)). If you followed those instructions, JACK and QjackCtl were already installed. +2. **ALSA to JACK - MIDI** Next, we must create a connection from ALSA to JACK to route the MIDI input from the keyboard to setBfree. Let's have a look at how to do that: + - Open QjackCtl e.g. from the command line by typing `qjackctl` and start JACK by clicking on the play button + - Launch the ALSA2JACK MIDI connector with `a2jmidid -e`. While this connector runs, the `a2j` connection interface should be visible in `QjackCtl` in the JACK-MIDI tab. + + ![QJackctl JACK-MIDI a2j](https://user-images.githubusercontent.com/20726856/101836060-ff2abe80-3b3c-11eb-8109-347fab4f03a6.png) + + - Now connect your USB MIDI device as an input to `MIDI through` in the ALSA-MIDI tab of QjackCtl. MIDI events from your keyboard will now reach JACK. + + ![QJackctl ALSA-MIDI MIDI through](https://user-images.githubusercontent.com/20726856/101836057-fe922800-3b3c-11eb-8ee2-60cc591cf908.png) + + - Start your synth e.g. from the command line with (in my case) `setBfree`. You will now see the `setBfree` graphical user interface. It should look like this: + + ![setBfree synth](https://user-images.githubusercontent.com/20726856/101836062-ffc35500-3b3c-11eb-80d3-ebcfadac4942.png) + + You can now check if the synth generates sound by clicking on the displayed organ keyboard and listening for sound through your speakers. + - In QjackCtl we can now connect `a2j` in JACK-MIDI as an input to the synth, which generates sound for each key pressed on the keyboard. Keep in mind that you can connect synths if they are started and visible to QjackCtl. So you can connect after starting the [Hammond Emulator setBfree](https://github.com/pantherb/setBfree), i.e. connect `a2j` to `setbfree` if you also see the Hammond Synth setBFree in QjackCtl. + + ![JACK-MIDI connect synth MIDI](https://user-images.githubusercontent.com/20726856/101932865-b4ac4f00-3bdb-11eb-8834-6f392402a8b6.png) + + - Let's test the software synth with our MIDI Keyboard! If you have speakers attached to your device you should hear the emulated Hammond sound for all the keys you press on your MIDI keyboard. If you just want to play the software synth with your keyboard, you're finished here. But if you want to connect the sound of the synth to Jamulus, the only remaining step is to connect the synths' audio to Jamulus. + +**Synth to Jamulus - Audio**: In the previous step we ensured that the MIDI signals from your keyboard got sent to to the MIDI input of JACK. Now we need to create an audio connection from JACK (i.e. the generated Hammond sound of the synth) to Jamulus. To do so, we connect the [Hammond Emulator setBfree](https://github.com/pantherb/setBfree) output to Jamulus. Therefore, start Jamulus so that you can see Jamulus in QjackCtl. Now connect the audio output of the [Hammond Emulator setBfree](https://github.com/pantherb/setBfree) to the audio input of Jamulus in JACK. + +![QJackctl connect synth to Jamulus](https://user-images.githubusercontent.com/20726856/101958961-ad4d6b80-3c04-11eb-86cd-24e7efa6fe00.png)) + +There is one last step. In your local connection setup, you might see that the setBfree synth output (left) is not only connected to the Jamulus input (right), but also to `system`. `System` would be your speakers or headphones, but what you want to listen to is just the output from Jamulus, not the direct sound from setBfree also at the same time (not exactly - they'd be separated by a small time lag). So now you must disconnect setBfree from "system". That way you will hear the audio coming from the Jamulus server (yours and that of whoever you are playing with) and will avoid an echo or flanger effect. + +Now you're done. + +`QjackCtl` can also be used for operations like plugging in instruments in mixer and the mixer into an amplifier and the amplifier again to the speakers. + +There are also other Open Source synths like QSynth or [ZynAddSubFX](https://sourceforge.net/projects/zynaddsubfx/) which can be installed on your Linux system. + +Have fun playing your synth within Jamulus! diff --git a/_posts/2020-11-24-Multiple-Audio-Interfaces.md b/_posts/2020-11-24-Multiple-Audio-Interfaces.md new file mode 100644 index 000000000..937a005f0 --- /dev/null +++ b/_posts/2020-11-24-Multiple-Audio-Interfaces.md @@ -0,0 +1,55 @@ +--- +layout: post +title: "Using Multiple Audio Interfaces" +heading: "Using multiple Audio interfaces" +lang: "en" +--- + +It is possible to run Jamulus with multiple Audio Interfaces on all three operating systems. Useful when we need to output an instrument through external audio card for minimal latency and computer microphone for communication. Other use cases may apply. + + +### Windows + +Under Windows, the best option to run multiple interfaces through Jamulus at the same time is by using a combination of JACK Audio Connection Kit with VoiceMeeter. It can be accomplished with just VoiceMeeter, but I've found that it introduces some undesirable latency and it wasn't supporting 64 frame buffer size correctly as it was producing some noises through my headphones. + +**Requirements:** +* [JACK for Windows](https://jackaudio.org/downloads/); +* [Voicemeeter](https://www.vb-audio.com/Voicemeeter/banana.htm) (any version will do). + +**Steps:** +1. [Install and configure JACK on Windows](https://jackaudio.org/faq/jack_on_windows.html) - Make sure you select your best audio interface in the configuration steps, also add `-r 48000 -p ` to ensure JACK is outputting audio in the required sample rate for Jamulus (48.000Hz). If your frame buffer size is too low for your hardware, you'll need to change it to a higher value; +2. Install and open Voicemeeter; +3. Open configured JACK PortAudio shortcut, Jack Control and Jamulus software; +4. On Voicemeeter, go to HARDWARE OUT and on A1 dropdown list, select JackRouter. On Hardware Input 1 select your computer microphone. You can make your computer microphone have the lowest latency possible by going into _Menu > System Settings/Options..._ and enabling _WDM Input Exclusive Mode_ (if you experience crackling noises while speaking, disable this) and changing the _Engine Mode_ to _Swift_; +5. Make sure the Hardware Input where you selected your microphone is sending sound through A1 by enabling the corresponding button next to the fader; +6. On Jamulus, under Settings, select JackRouter as your Soundcard Device; +7. On Jack Control, if you click the _Connect_ button, you should now see three devices: portaudio (your external audio interface), voicemeeter and jamulus. If Jamulus doesn't appear, try connecting and disconnecting from any server to enable it; +8. To test things out, on Jack Control, connect portaudio and voicemeeter output ports to jamulus input ports, then connect jamulus output ports to portaudio input ports (assuming you'll be using your external audio interface to listen, otherwise you can use voicemeeter to redirect the sound to another device, which I will not cover on this guide). Connect to a server on Jamulus and test it out by speaking into the microphone and playing your instrument. If everything went well you should hear yourself; +9. To make JACK connections permanent, on Jack Control, open the _Patchbay_, add all inputs and outputs available (Add... > Select each Client > Click Add Plug until there's none left) and make the connections you wish to make permanent. This usually goes like connecting both _system_ and _voicemeeter_ outputs into _jamulus_ input, and _jamulus_ output into _system_ input. Once done, save the Patchbay definition and _Activate_ it. Now every time you start jamulus and connect to a server, the connections on JACK should automatically be done. + +**Bonus:** + +* The Microphone can be muted and it's volume adjusted on VoiceMeeter. Be sure to play with the _VOICE_ graph too (equalization), I find that my voice sounds better if I move it halfway into _Lo_; +* If you're using VoiceMeeter Banana or Potato, you can apply Gate to your microphone (useful to cut undesirable noises when you're not speaking); +* If you set your default playback device under Windows to one of VoiceMeeter's virtual inputs, you can route audio from your computer into JackRouter (and consequently, into Jamulus) by enabling the _A1_ button on the relevant input under _Virtual Inputs_. This is useful if you wish to play some audio through Jamulus (backing tracks, youtube, recordings, etc...) + + +### MacOS X + +[Aggregate devices](https://support.apple.com/en-us/HT202000) lets you do this. Just make sure your Jamulus version is 3.5.3 or higher. + + +### Linux + +On Linux, it is possible to route additional devices to JACK by using alsa_in. + +**Requirements:** + +* QjackCtl +* ALSA + +**Steps:** +1. Follow [this tutorial](https://web.archive.org/web/20201112033306/https://www.penguinproducer.com/Blog/2011/11/using-multiple-devices-with-jack/) to route the desired interface into JACK by using alsa_in. +2. Jamulus should automatically route the JACK configured interface, adjustments can be made through the _Connect_ button. +3. Connect the device configured on step 1 into jamulus input. +4. Use Patchbay as described on Windows section to make connections permanent. diff --git a/_posts/2021-01-05-Jamulus-Sound-Devices.md b/_posts/2021-01-05-Jamulus-Sound-Devices.md new file mode 100644 index 000000000..01bf7bfd5 --- /dev/null +++ b/_posts/2021-01-05-Jamulus-Sound-Devices.md @@ -0,0 +1,320 @@ +--- +layout: post +title: "Audio devices for Jamulus" +lang: "en" +heading: "Sound devices" +lang: "en" +--- + +Thanks to Jamulus users, this page lists audio devices known to work (or not) with Jamulus. + + +_**Note**: If they work or not can depend on your operating system (Linux, MacOS, Windows, etc.)_. + +## Updating this page + +You can update this page with the information you have. **Please indicate the platform(s) you are using!**. Just [open an issue with the sound device topic on the Jamulus documentation repo](https://github.com/jamulussoftware/jamuluswebsite/issues/new?template=newsounddevice.md) and fill the form. + +## Audio devices known to work with Jamulus + +### USB/USB-C devices + +#### Microphones / DI Boxes + +**[Blue Yeti](https://www.bluemic.com/en-us/products/yeti/)**, USB Microphone + +**Windows**: Works well *with ASIO4All*; a bit more latency than under macOS. You can disable local monitoring by going deep into the settings. + +**macOS**: Works well. (There is a check option to disable local monitoring). + +**Linux**: Latency is good. You can't disable local monitoring (or we haven't found out how to do it, feel free to add this information if you know how to do it). + +*** + +**[Shure X2u](https://www.shure.com/en-GB/products/accessories/x2u-xlr-usb-interface)**, USB to XLR audio interface with headphone jack connector that converts a wired microphone to a USB microphone. + +**Windows**: Set the PC/Mix dialog box to 100% PC to listen to Jamulus' mix on the headphone output. + +**macOS**: not yet tested. + +**Linux**: Tested with a Raspberry Pi 4 under *Raspberry Pi OS Buster*, kernel version 4.19. + +*** + +**[Behringer UGC102](https://www.behringer.com/behringer/product?modelCode=P0198)**, Guitar-to-USB Interface (guitar and bass) + +**Windows**: not yet tested. + +**macOS**: This device appears as "USB Audio Codec". When selected for input and output in Jamulus, the **UGC102** headphone jack is the output (and cannot be used for input). + +**Linux**: not yet tested. + + + +#### Audio interfaces / digital mixing consoles + +**[Solid State Logic SSL2+](https://www.solidstatelogic.com/products/ssl2-plus)**, USB-C/USB digital audio/MIDI interface 2 in/4 out + +**Windows**: Works great with the [native ASIO driver](http://eu1.download.solidstatelogic.com/SSL%202/SolidStateLogic_UsbAudio_v4.67.0_2019-10-21_setup%20(3).exe). + +**macOS**: Works great (not tested on Big Sur). + +**Linux**: Works great (Tested on Ubuntu 20.04 and Raspberry Pi OS (Buster)) + +The monitoring of the Jamulus mix is done by moving the "MONITOR MIX" completely to the right to "USB". See the [official manual](http://eu1.download.solidstatelogic.com/2%20Plus%20/SSL%202%20Plus%20User%20Guide_ENGLISH.pdf). + +*** + +**[Ammoon AGM02](https://www.ammoon.com/p-i3974.html)** and **[Ammoon AGM04](https://www.ammoon.com/p-i4049.html)**, low-cost USB 2-channel and 4-channel compact mixing consoles + +**Windows**: Works. Tested *AGM02*. On Windows 10, with ASIO4ALL, the **AGM02** can be used as an input, and the onboard audio as the output. There is no way to monitor only the USB return signal on the **AGM02**. + +**macOS**: Both tested on **macOS Catalina**. + +**Linux**: Not yet tested. + +_**Note:** The Ammoon AGM04 appears to be a re-branded [ART USBMix4](https://artproaudio.com/product/usbmix4-four-channel-mixer-usb-audio-interface/)._ + +**ART USBMix4**, USB 4-channel compact mixing console (_see above_) + +*** + +**[Audient EVO 4](https://evo.audio/products/evo-4/overview/)**, USB digital audio interface 2-in/2-out + +**Windows**: Should work + +**macOS**: Should work + +**Linux**: Not yet tested. + +[Driver installation and download](https://evo.audio/driver-installation/) + +*** + +**[Behringer UCA222](https://www.behringer.com/product.html?modelCode=P0A31)** & **Behringer UCA202 U-Control**, 2-in/2-out USB Audio Interface with Digital Output + +**Windows**: [ASIO4ALL](http://www.asio4all.org/) driver works OK but not great. There is also the [native driver](http://www.behringerdownload.de/_software/BEHRINGER_2902_X64_2.8.40.zip) which Behringer withdrew support for a while ago, and therefore removed from their download section. + +**macOS**: Works better than on Windows. + +**Linux**: Works better than on Windows. + +*** + +**[Behringer UMC202HD](https://www.behringer.com/product.html?modelCode=P0BJZ)**, **UMC204HD**, and **UMC404HD** USB digital audio interfaces. Affordable. Behringer provides native ASIO drivers for Windows. + +**Windows**: Works great. [ASIO driver Windows 7 to 10](https://mediadl.musictribe.com/download/software/behringer/UMC/UMC-Driver_4-59-0.zip) + +**macOS**: Works great + +**Linux**: Works great + +*** + +**[Behringer X32](https://www.behringer.com/behringer/product?modelCode=P0ASF)** X-USB digital mixing desk 32-in/32-out + +**Windows**: Should work. + +**macOS**: Should work. + +**Linux**: Not yet tested. + +*** + +**[Behringer XR18](https://www.behringer.com/product.html?modelCode=P0BI8)** (XR serie), USB digital mixing consoles + +**Windows**: Should work. + +**macOS**: Should work. + +**Linux**: Not yet tested. + +*** + +**[Berhinger XENYX series](https://www.behringer.com/series.html?category=R-BEHRINGER-XENYXSERIES)**, USB digital audio interfaces + +**Windows**: Works, but not great. The [Behringer ASIO Driver](http://www.behringerdownload.de/_software/BEHRINGER_2902_X64_2.8.40.zip) does not appear to be very good. Audio latency with this "unsupported" driver seems poor - not better than ASIO4ALL. + +**macOS**: Works great. + +**Linux**: Works great. + +Tested Behringer XENYX X1832 USB (USB audio) on Ubuntu 20.04 LTS which works fine. +_More testing required._ + +*** + +**[Focusrite Scarlett range](https://focusrite.com/en/scarlett)**, USB digital audio interfaces + +**Windows**: Works great. If you have issues with the buffer size going to 136, download the updated driver version `4.64.15.598` from [http://beta.focusrite.com/](http://beta.focusrite.com/) + +**macOS**: Should work great. + +**Linux**: Not tested, but should work great. + +*** + +**[iConnectAUDIO4+](https://www.iconnectivity.com/products/audio/iconnectaudio4plus)**, Discontinued USB digital audio interface + +**Windows**: Provides [ASIO drivers](https://www.iconnectivity.com/downloads). + +**macOS**: Should work. + +**Linux**: Not yet tested. + +*** + +**[Lexicon Omega](https://lexiconpro.com/en/products/omega)**, USB digital audio interface + +**Windows**: There is an ASIO driver which does not allow to use 64 samples buffer size and adds some latency. + +**macOS**: Should work. + +**Linux**: Not yet tested. + +*** + +**[Native Instruments Komplete Audio 2](https://www.native-instruments.com/en/products/komplete/audio-interfaces/komplete-audio-1-audio-2/)**, USB digital audio interface + +**Windows**: Tested on *Windows 10* with 64 sample buffer and am getting great sound and total latency around 15ms over the ping time. + +**macOS**: Should work + +**Linux**: Not yet tested. + +*** + +**[Steinberg UR22C](https://new.steinberg.net/audio-interfaces/ur22c/)** USB-C/USB3 digital audio interface + +**Windows**: Provides ASIO Driver. Not yet tested. + +**macOS**: Works directly on *macOS* with a beautiful sound even with un-balanced jack. + +**Linux**: Works on a *Raspberry PI4* provided `jackd` version used is the one from `/usr/bin` (Tweaking `raspijamulus.sh`). + +*** + +**[Steinberg UR22 MKII](https://www.steinberg.net/en/products/audio_interfaces/ur_series/models/ur22mkii.html)**, USB digital audio interface + +**Windows**: Works (great ?) on Windows. + +**macOS**: Not yet tested. + +**Linux**: Works (great?) on Linux. + +Sounds great, can achieve 32 frame buffer and works on *Windows* and *Linux*. + +*** + +**[Yamaha AG03](https://usa.yamaha.com/products/music_production/interfaces/ag_series/index.html)**, USB digital audio/MIDI interface + +**Windows**: Tested on *Windows 10* with 64 sample buffer and am getting great sound and total latency around 15ms over the ping time. + +**macOS**: Should work + +**Linux**: Not yet tested. + +#### Amp modelers/effects pedals for instruments + +**[Line 6 HX Stomp](https://line6.com/hx-stomp/)**, USB multi-effects pedal for guitar + +**Windows**: not yet tested. + +**macOS**: See [Remote Jam with Helix and Jamulus](https://jimamsden.wordpress.com/2020/04/04/remote-jamming-with-helix-and-jamulus/) for settings on a Mac. + +**Linux**: not yet tested. + +#### Digital recorders + +**Tascam DR-07X** stereo recorder with USB audio into computer, headphones in line-out of the recorder. + +**Windows**: Can also be used with an external mic in the line-in (had to use a pre-amp with that). + +**macOS**: should work. + +**Linux**: not yet tested. + +**Tascam DR-40X** stereo recorder as above. Set "Monitor" to "PC/Mac". **Linux Ubuntu 18.04**. + +*** + +**[Zoom H4](https://zoomcorp.com/en/us/handheld-recorders/handheld-recorders/h4/)**, USB portable recorder + +**Windows**: Works well. + +**macOS**: Works well. + +**Linux**: Tested on Raspberry Pi 4. Works well. + +### FireWire devices + +**[Presonus StudioLive 16.4.2 AI](https://www.presonus.com/products/StudioLive-1642AI)** (StudioLive AI series), FireWire digital mixing desk + +**Windows**: Since these devices work with Windows, they should also work with Jamulus. + +**macOS**: Works perfectly with Jamulus. Not yet tested on Big Sur. Assign the individual inputs in Jamulus or the corresponding inputs to a stereo auxiliary mix (to be patched in "Universal Control") if more than two channels. Use outputs 17-18 to monitor the Jamulus mix. + +**Linux**: Not tested under Linux, may (or may not) work, see [here](https://forums.presonus.com/viewtopic.php?f=67&t=2717). + +*** + +**[Edirol (Roland) FA-66](https://www.roland.com/global/products/fa-66/)** Firewire digital audio interface + +**Windows**: Works well. [ASIO driver download](https://www.roland.com/global/products/fa-66/downloads/) + +**macOS**: Works well. + +**Linux**: Works well. + +*** + +**[MOTU Ultralite](https://motu.com/products/motuaudio/copy_of_ultralite/body-old.html)** (2010 models MK1/MK2), Firewire digital audio interface + +**Windows**: Their page says it should work on Windows. + +**macOS**: Tested on MacBook Pro 2015, **Mac OS X** 10.11.6 (El Capitan) with Apple Thunderbolt/FireWire adapter. + +**Linux**: Not yet tested. Should work since it's class compliant. + +*** + +### Thunderbolt devices + +* **[Focusrite Clarett 4Pre](https://focusrite.com/en/usb-c-audio-interface/clarett-usb/clarett-4pre-usb)**, Thunderbolt 2 digital audio interface + +* **[Resident Audio T4](http://www.residentaudio.com/t4overview)**, Thunderbolt 2 digital audio interface + +* **[Universal Audio Arrow](https://www.uaudio.com/audio-interfaces/arrow.html)**, Thunderbolt 3 digital audio interface +This device provides the **lowest latency**. + +* **[Zoom TAC-2](https://zoomcorp.com/en/us/audio-interface/audio-interfaces/tac-2/)**, Thunderbolt 2 digital audio interface + +### Internal soundcards + +**[HiFiBerry DAC+ ADC](https://www.hifiberry.com/shop/boards/hifiberry-dac-adc/)**, Raspberry Pi compatible HAC internal sound card. + +**Linux**: Virtually no jitter and good latency (20 milliseconds). No headphone amp, so you'll need one. Used with a mini console [Rolls MX122](https://rolls.com/product/MX22s). Tested on Raspberry Pi 4 under **Raspberry Pi OS Buster**, kernel version 4.19. + +**Windows**: Not yet tested (if anybody runs Windows ARM on a Raspberry Pi feel free to test it). Probably no ASIO Driver available. + +**macOS**: ? + +*** + +**[Soundblaster Live!](https://en.wikipedia.org/wiki/Sound_Blaster_Live!)**, PCI internal sound card + +**Windows**: Works with [kX ASIO driver](https://www.kxproject.com/) + +**macOS**: ? + +**Linux**: ? + +**[Soundblaster Audigy 4](https://en.wikipedia.org/wiki/Sound_Blaster_Audigy#Sound_Blaster_Audigy_4)**, PCI internal sound card + +See above. Not fully verified. + +## Audio devices known not to work with Jamulus + +* **Zoom B3**, USB amplifier modeling pedal for bass. **Does not support 48 kHz**. + +* **Line6 Bass POD**, USB amplifier modeling pedal for bass. **Does not support 48 kHz**. diff --git a/kb/index.md b/kb/index.md new file mode 100644 index 000000000..111e6f159 --- /dev/null +++ b/kb/index.md @@ -0,0 +1,8 @@ +--- +layout: kblist +lang: "en" +title: "KB Overview" +permalink: /kb/ +pagination: + enabled: true +---