diff --git a/wiki/en/en-Compiling.md b/wiki/en/en-Compiling.md index a92913fd3..60c9e1d51 100644 --- a/wiki/en/en-Compiling.md +++ b/wiki/en/en-Compiling.md @@ -1,105 +1,7 @@ --- -layout: wiki -title: "Compiling" +layout: redirect +redirect: "/wiki/Compiling" lang: "en" -permalink: "/wiki/Compiling" +permalink: "https://github.com/jamulussoftware/jamulus/blob/master/COMPILING.md" +category: "hidden" --- - -# Compiling Jamulus from Source - -## Linux - -Please refer to the [client installation page](Installation-for-Linux) or these instructions if you wish to [compile a headless server](Server-Linux#running-a-headless-server) - -## macOS -You don't need to compile Jamulus for macOS since we provide official binaries, but if you really want to, follow the instructions below. -### Requirements - -1. Install XCode -1. Install Qt as follows - -```shell -brew install qt5 -brew link qt5 --force -``` - -### Build project - -#### Generate XCode Project file -```shell -qmake -spec macx-xcode Jamulus.pro -``` - -#### Print build targets and configuration in console -```shell -xcodebuild -list -project Jamulus.xcodeproj -``` -will prompt -```shell -Targets: - Jamulus - Qt Preprocess - -Build Configurations: - Debug - Release - -If no build configuration is specified and -scheme is not passed then "Release" is used. - -Schemes: - Jamulus -``` - -#### Build the project - -```shell -xcodebuild build -``` - -Will build the file and make it available in `./Release/Jamulus.app` - - -## Windows -You don't need to compile Jamulus for Windows since we provide official binaries, but if you really want to, follow the instructions below. - -### Required Software -* A compiler like [Visual Studio](https://visualstudio.microsoft.com) (You only need [Build Tools 2017 or 2019](https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools&rel=16) but can also choose to download and install the full IDE from the [Visual Studio download page](https://visualstudio.microsoft.com/downloads/)) -* [Qt](https://www.qt.io/download) - * Use the free GPLv2 license for Open Source development - * To determine the Qt version you need, check [qt-installer-windows.qs](https://github.com/jamulussoftware/jamulus/blob/master/windows/qt-installer-windows.qs): under INSTALL_COMPONENTS you will see `qt.qt5.[version]`, e.g., 5123 means version 5.12.3. - * Select Components during installation: Expand the Qt section, find the matching version, e.g., **Qt 5.12.3**, and add the compiler components for your compiler, e.g., `MSVC 2017 32-bit/64-bit` for Visual Studio 2019 -* [ASIO development files](https://www.steinberg.net/en/company/developer.html) - - -### Download Jamulus source code -Get the Jamulus source code e.g. via git or [zip download](https://github.com/jamulussoftware/jamulus/archive/master.zip) from the [Jamulus repo](https://github.com/jamulussoftware/jamulus). - -### Compiling and building installer - -Most users will probably want to use this method: - -1. Open PowerShell -1. Navigate to the `jamulus` directory -1. To allow unsigned scripts, right-click on the `windows\deploy_windows.ps1` script, select properties and allow the execution of this script. You can also run `Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser`. (You can revert this after having run this script. For more information see the [Microsoft PowerShell documentation page](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.security/set-executionpolicy)). -1. Edit the $QtCompile32 and $QtCompile64 variables. -1. Run the Jamulus compilation and installer script in PowerShell: `.\windows\deploy_windows.ps1 C:\Qt\QtVersion`. -1. You can now find the Jamulus installer in the `.\deploy` directory. - -### Compiling only - -1. Create a folder under `\windows` called ASIOSDK2 -1. Download the [ASIOSDK](https://www.steinberg.net/asiosdk), open the top level folder in the .zip file and copy the contents into `[\path\to\jamulus\source]\windows\ASIOSDK2` so that, e.g., the folder `[\path\to\jamulus\source]\windows\ASIOSDK2\common` exists -1. Open Jamulus.pro in Qt Creator, configure the project with a default kit, then compile & run - - -## General notes - -### The "headless" build flag - -Compiling with the `headless` flag means you can avoid installing some of the dependent packages, save some disk space and/or speed up your build time under the following circumstances: - -1. If you plan to run Jamulus on Gentoo Linux, the only packages you should need for a headless build are `qtcore`, `qtnetwork`, `qtconcurrent` and `qtxml` (both for building and running the server). - -1. If you are running Jamulus on Ubuntu/Debian, you will need all dependent packages to **compile** the binary, but to **run** the resulting headless Jamulus server you should only need `libqt5core5a`, `libqt5network5`, `libqt5xml5` and probably `libqt5concurrent5`. This may be useful for compiling/upgrading on one machine to run the binary on another (a Raspberry Pi, for example). - -1. Note that if you want to compile a GUI client on one machine and run it on another (e.g. a Raspberry Pi) you only need the dependencies listed for a [headless server](Server-Linux#running-a-headless-server) (see point above), only _with_ the JACK sound libraries. diff --git a/wiki/en/en-Installation-for-Linux.md b/wiki/en/en-Installation-for-Linux.md index 29bba4702..30b2e87f9 100644 --- a/wiki/en/en-Installation-for-Linux.md +++ b/wiki/en/en-Installation-for-Linux.md @@ -10,93 +10,17 @@ permalink: "/wiki/Installation-for-Linux" # Installation for Linux Make sure you read the [Getting Started](Getting-Started) page. -## Jamulus packages - -Although we don't provide official packages for every Linux distribution, you might find Jamulus in the package manager of your distro. Have a look at this table: - -[![Packaging status](https://repology.org/badge/vertical-allrepos/jamulus.svg)](https://repology.org/project/jamulus/versions) - - -There is also list of unofficial [packages for different distributions here](https://github.com/jamulussoftware/jamulus/discussions/914). - -### Flatpak - -Jamulus is available as a [Flatpak](https://flatpak.org/) from [Flathub here](https://flathub.org/apps/details/io.jamulus.Jamulus). You will need to setup pipewire in order to use the Jamulus flatpak. - ### Debian and Ubuntu -You can install Jamulus from [buster-backports](https://packages.debian.org/de/buster-backports/jamulus) or - if you're on amd64 **Debian**/**Ubuntu** - you may try the compiled .deb packages from GitHub Actions: 1. Download the [latest .deb file]({{ site.download_root_link }}{{ site.download_file_names.deb-gui }}) 1. Update apt: `sudo apt-get update` 1. Install the package: `sudo apt install /path/to/{{ site.download_file_names.deb-gui }}`. 1. Since Jamulus needs the JACK server, you have to install it too. We recommend to use `QjackCtl` to configure JACK. You can install it via `sudo apt-get install qjackctl` -Afterwards you should look at the "[Set up your sound card](#set-up-your-sound-card)" step on this page. - -**Note:** Jamulus (with GUI) is also [included in Debian Bullseye (testing)](https://packages.debian.org/bullseye/jamulus) thanks to [mirabilos](https://github.com/mirabilos). If you already use Bullseye, just install Jamulus via `sudo apt-get install jamulus`. - ---- - -If you can't use one of the above options, you need to compile Jamulus from source: - -## Compile from source - -### Get Jamulus sources - -1. Open up a terminal window (command line - `CTRL+ALT+T` on Ubuntu and related distros) -1. Download and unzip the sources for the latest release: -```shell -wget https://github.com/jamulussoftware/jamulus/archive/latest.tar.gz -tar -xvf latest.tar.gz -``` - - -### Install dependencies - -First, update your package list (e.g. on Debian-based distributions with `sudo apt-get update`). - -On **Ubuntu-based** distributions 18.04+, **Debian** 9+ or 10 and Raspberry Pi Raspbian Buster release or later: - -```shell -sudo apt-get install build-essential qt5-qmake qtdeclarative5-dev qt5-default qttools5-dev-tools libjack-jackd2-dev -``` +Note that if you need to upgrade Jamulus to a newer version, just download the new .deb file and re-install as above. -On **Fedora**: +For installers on other distributions, see [Repology](https://repology.org/project/jamulus/versions). You may also wish to use one of the contributed [installation scripts](https://github.com/jamulussoftware/installscripts). -```shell -sudo dnf install qt5-qtdeclarative-devel jack-audio-connection-kit-dbus libQt5Concurrent5 jack-audio-connection-kit-devel -``` - -### QjackCtl: Optional, but recommended - -[QjackCtl](https://qjackctl.sourceforge.io) is a utility to help you set up the JACK audio server (installed as part of the dependencies above). Install it via e.g. - -```shell -sudo apt-get install qjackctl -``` - -You may also wish to consider using a [low-latency kernel](https://help.ubuntu.com/community/UbuntuStudio/RealTimeKernel) (e.g. for Ubuntu 18.04: `sudo apt-get install linux-lowlatency-hwe-18.04`). - -### Compile this bad boy - -Now `cd` into the jamulus sources directory you downloaded: - -```shell -cd jamulus-latest -``` -Now compile the sources with the following commands (the last `make` may take several minutes to run): - -```shell -qmake Jamulus.pro -make clean -make -sudo make install -``` -**Note:** The compiled version of Jamulus puts itself into `/usr/local/bin`. - -You can now delete the sources directory you compiled from. - ---- ## Set up your sound card @@ -114,28 +38,12 @@ Restart JACK for the new settings to take effect ### Start Jamulus -From the command line, execute the command `jamulus`, or if you compiled from source `Jamulus` with a (with a capital 'J'). This will start the Jamulus Client. +With JACK running and configured, start Jamulus from your desktop launcher (or from the command line, execute the command `jamulus`). If you get problems with sound breaking up (in particular XRUN errors reported by JACK/QjackCtl) try setting bigger values (e.g. 256 frames or 3 periods). Lower ones (e.g. 64 frames) could bring better performance but maybe more sound problems. See the [troubleshooting page](Client-Troubleshooting) otherwise. ## All installed? -Jamulus has been installed and can be used now. You can now take a look at the +Take a look at the [Jamulus Onboarding page](Onboarding){: .button} - -## To update your installation to a new release - -Download the new sources as per [Get Jamulus](Installation-for-Linux#get-jamulus-sources) and repeat just the [compilation instructions](Installation-for-Linux#compile-this-bad-boy) as if for a new installation above or use the new .deb package if you used it. - -## Notes for geeks - -* The "make clean" command is essential to remove the automatically generated Qt files which are present in the .tar.gz file and may not match the Qt version you are using. - -* To use an external shared OPUS library instead of the built-in one use qmake `"CONFIG+=opus_shared_lib" Jamulus.pro`. - -* To use this file configure the software with `qmake "CONFIG+=noupcasename" Jamulus.pro` to make sure the output target name of this software is **j**amulus instead of **J**amulus. - -* Users of Raspberry Pi: You may want to compile the client on another machine and run the binary on the Raspberry Pi. In which case the only libraries you need to run it are those for a [headless server](Server-Linux#running-a-headless-server) build, but _with_ the JACK sound packages. In particular, have a look at the footnote for the headless build. - -* As of version 3.5.3, Jamulus is no longer compatible with Qt4. diff --git a/wiki/en/en-Server-Linux.md b/wiki/en/en-Server-Linux.md index a97605f96..17e6ad53a 100644 --- a/wiki/en/en-Server-Linux.md +++ b/wiki/en/en-Server-Linux.md @@ -9,205 +9,37 @@ permalink: "/wiki/Server-Linux" # Server Installation - Linux - **_Please ensure you have read the [server overview](Running-a-Server)_** -## Running a server with the GUI +## Running a server with a GUI on a desktop machine -If you plan to run a server on your desktop machine (and you have installed the Jamulus client already), you can run it in your chosen [server mode](Choosing-a-Server-Type) by running Jamulus with the `-s` option as follows: +If you have installed the Jamulus client, you can run it in your chosen [server mode](Choosing-a-Server-Type) by running Jamulus with the `-s` option as follows: 1. Open a terminal window (`CTRL+ALT+t` on Ubuntu and related distros). 1. Assuming Jamulus is in `/usr/local/bin`, type `Jamulus -s` -Hit return and you should see the server control window. You can stop the server by closing the server window, or by typing CTRL+C in the terminal. - -**To configure the server**, please refer to [the Windows & macOS instructions](Server-Win-Mac). +Hit return and you should see the server control window. You can stop the server by closing the server window, or by using `CTRL+C` in the terminal. -See also [Command Line Options](Command-Line-Options) for other parameters you can set. +**To configure the server**, please refer to [the Windows & macOS instructions](Server-Win-Mac), and [Command Line Options](Command-Line-Options) for other parameters you can set. ## Running a "headless" server -The following guide is for running Jamulus as a "pure" server on **hardware without audio** (e.g. on a 3rd party/cloud host) and assumes Ubuntu/Debian distributions using systemd. We also have instructions for [Raspberry Pi](Server-Rpi), which rock too. - -* _Jamulus user [Grigory](https://sourceforge.net/u/cidnurg/profile/) maintains a **[Docker image for Jamulus](https://hub.docker.com/r/grundic/jamulus)** which you can use._ - -### Use the official Debian/Ubuntu headless .deb files - -If you're on amd64 Debian/Ubuntu, you may try the compiled .deb packages from GitHub Actions: +The following is for running Jamulus as a "pure" server on **hardware without audio** (e.g. on a 3rd party/cloud host) and assumes Ubuntu/Debian distributions using systemd. We also have instructions for [Raspberry Pi](Server-Rpi). 1. Download the [latest headless .deb file]({{ site.download_root_link }}{{ site.download_file_names.deb-headless }}) -1. Update apt: `sudo apt update` -1. Install the package: `sudo apt install /path/to/{{ site.download_file_names.deb-headless }}` -1. Enable the headless server via systemd: `sudo systemctl enable jamulus-headless` -1. Add the required [command line options](Command-Line-Options) to the systemd service file in `/lib/systemd/system/jamulus-headless.service`. -1. Reload systemd files `sudo systemctl daemon-reload` and restart the headless server: `sudo systemctl restart jamulus-headless` - -You should now be running a private server! - -**Note:** To configure the server, you can add command line flags to the file `/lib/systemd/system/jamulus-headless.service` e.g. make this a public server. Have a look at the [Command Line Options](Command-Line-Options) page. - -### Compile sources, create a user - - -1. [Get the sources](Installation-for-Linux#get-jamulus-sources), install the [dependent packages](Installation-for-Linux#install-dependencies) according to the Linux client install guide. Note that **you don't need to install the JACK package(s)** for a headless build. _If you plan to run headless on Gentoo, or are compiling under Ubuntu for use on another Ubuntu machine, [see the footnote](#what-does-the-headless-build-flag-do)._ -1. Compile the sources to ignore the JACK sound library: - -~~~ -qmake "CONFIG+=nosound headless" Jamulus.pro -make clean -make -~~~ - -3. Move the resulting `Jamulus` binary file to a permanent location, or use `sudo make install`. You can now remove the sources directory if you wish. - -**The rest of this guide assumes you are using `/usr/local/bin/Jamulus`** - -4. Create a non-privileged system user for the server to run as (will run as user _jamulus_, group _nogroup_): - -`sudo adduser --system --no-create-home jamulus` - -### Create a start script - -Once you have decided which mode you want your server to run in, use systemd to start it up. - -Create a systemd unit file that will start the server at boot time (thanks to [David Harrold](https://sourceforge.net/u/dkxl/profile/) for this). - -The unit file applies high priority CPU and I/O scheduling to the server process. This is optional (and may be ignored on some hosts). - -Note also that the server log entries will go to journalctl (use [journald](https://www.digitalocean.com/community/tutorials/how-to-use-journalctl-to-view-and-manipulate-systemd-logs) to see it ). - -**Note**: The rest of this guide assumes you are in "public" mode using the `-e` (`--centralserver`) option. This specifies which musical genre list your server will appear in. See [the list of available genres here](Directory-Servers)). - -~~~ -[Unit] -Description=Jamulus-Server -After=network.target - -[Service] -Type=simple -User=jamulus -Group=nogroup -NoNewPrivileges=true -ProtectSystem=true -ProtectHome=true -Nice=-20 -IOSchedulingClass=realtime -IOSchedulingPriority=0 - -#### Change this to set genre, location and other parameters. -#### See [Command-Line-Options](Command-Line-Options) #### -ExecStart=/bin/sh -c 'exec /usr/bin/Jamulus -s -n -e anygenre3.jamulus.io -o "yourServerName;yourCity;[country ID]"' - -Restart=on-failure -RestartSec=30 -StandardOutput=journal -StandardError=inherit -SyslogIdentifier=jamulus - -[Install] -WantedBy=multi-user.target -~~~ - -Copy the unit file to `/etc/systemd/system` and give it permissions: - - -`sudo cp jamulus.service /etc/systemd/system/jamulus.service` - -`sudo chmod 644 /etc/systemd/system/jamulus.service` - +1. Update apt to make sure you have a current list of standard packages: `sudo apt update` +1. Install the Jamulus package: `sudo apt install ./{{ site.download_file_names.deb-headless }}` +1. Enable the headless server process via systemd: `sudo systemctl enable jamulus-headless` +1. Add your desired [command line options](Command-Line-Options) to the `ExecStart` line in the systemd service file in `/lib/systemd/system/jamulus-headless.service` (By default you will be running a private server). +1. Reload the systemd files `sudo systemctl daemon-reload` and restart the headless server: `sudo systemctl restart jamulus-headless` +1. Check all is well with `service jamulus-headless status` (hit `q` to get back to the command prompt). -Test that it starts OK: +## Notes -`sudo systemctl start jamulus` +You can control Jamulus with the `service` command. For example, to stop the server cleanly: -`sudo systemctl status jamulus` - - -You should see something like this: - -~~~ -● jamulus.service - Loaded: loaded (/lib/systemd/system/jamulus.service; enabled; vendor preset: enabled) - Active: active (running) since Thu 2020-03-26 11:52:34 GMT; 4s ago - Main PID: 1308 (Jamulus) - Tasks: 2 (limit: 4915) - CGroup: /system.slice/jamulus.service - └─1308 /usr/local/bin/Jamulus -s -n -e jamulus.fischvolk.de -o yourServerName;yourCity;[country ID] - -Mar 26 11:52:34 oddjob systemd[1]: Started jamulus.service. -Mar 26 11:52:35 oddjob jamulus[1308]: - server mode chosen -Mar 26 11:52:35 oddjob jamulus[1308]: - no GUI mode chosen -Mar 26 11:52:35 oddjob jamulus[1308]: - directory server: jamulus.fischvolk.de -Mar 26 11:52:35 oddjob jamulus[1308]: - server info: yourServerName;yourCity;[country ID] -Mar 26 11:52:35 oddjob jamulus[1308]: - welcome message: Thanks for connecting! -Mar 26 11:52:35 oddjob jamulus[1308]: *** Jamulus, Version [version] -Mar 26 11:52:35 oddjob jamulus[1308]: *** Internet Jam Session Software -Mar 26 11:52:35 oddjob jamulus[1308]: *** Under the GNU General Public License (GPL) -~~~ - -If all is well, enable the service to start at boot with: - -`sudo systemctl enable jamulus` - -You can now also control Jamulus with the `service` command. For example: - -`sudo service jamulus status` - -shows whether Jamulus is running OK, and the last few lines of the log (where you will see connections recorded). -Note: Press `q` to exit the service status. - -### To update your installation to a new release - -Download the new sources as per the [instructions above](Server-Linux#compile-sources-create-a-user) and repeat the compilation in step 2 as if for a new installation or just install the new headless .deb files. If you compiled Jamulus from source, shut down the server, copy the Jamulus binary over the old one and start it back up. - -*** - -See also [Command Line Options](Command-Line-Options) for other parameters you can set. - -## Footnotes - -### Controlling recordings - -When using the [recording function](Server-Win-Mac#recording) with the `-R` [command line option](Command-Line-Options), if the server receives a SIGUSR1 signal during a recording, it will start a new recording in a new directory. SIGUSR2 will toggle recording enabled on/off. - -To send these signals using systemd, create the following two `.service` files in `/etc/systemd/system`, calling them something appropriate (e.g. `newRecording-Jamulus-server.service`). - -**Note:** You will need to save recordings to a path _outside_ of the jamulus home directory, or remove `ProtectHome=true` from your systemd unit file (be aware that doing so is however a potential security risk). - -For turning recording on or off (depending on the current state): - -~~~ -[Unit] -Description=Toggle recording state of Jamulus server -Requisite=Jamulus-Server - -[Service] -Type=oneshot -ExecStart=/bin/systemctl kill -s SIGUSR2 Jamulus-Server -~~~ - -For starting a new recording: - -~~~ -[Unit] -Description=Start a new recording on Jamulus server -Requisite=Jamulus-Server - -[Service] -Type=oneshot -ExecStart=/bin/systemctl kill -s SIGUSR1 Jamulus-Server -~~~ - -_Note: The Jamulus service name in the `ExecStart` line needs to be the same as the `.service` file name you created when setting systemd to control your Jamulus server. So in this example it would be `Jamulus-Server.service`_ - -Run `sudo systemctl daemon-reload` to register them for first use. - -Now you can run these with the `service start` command, for example: - -`sudo service jamulusTogglerec start` (assuming you named your unit file `jamulusTogglerec.service`) - -You can see the result of these commands if you run `service jamulus status`, or by viewing the logs. +`sudo service jamulus-headless stop` ### Viewing The Logs @@ -233,6 +65,10 @@ Follow (show on screen) Jamulus log messages as they occur: `journalctl -f -u jamulus` -### What does the "headless" build flag do? +### Upgrading + +To upgrade your server to a newer version, simply download a new .deb and re-install as step 3. + +### Recording -Although not strictly necessary, we recommend using the `headless` flag to speed up the build process. Gentoo users may also be able to avoid installing some dependencies as a consequence. [More information here](Compiling#the-headless-build-flag). +See [this information](/wiki/Tips-Tricks-More#controlling-recording-on-linux-headless-servers) on controlling recordings on headless servers. diff --git a/wiki/en/en-Tips-Tricks-More.md b/wiki/en/en-Tips-Tricks-More.md index 647b6f88b..10ee98484 100644 --- a/wiki/en/en-Tips-Tricks-More.md +++ b/wiki/en/en-Tips-Tricks-More.md @@ -117,6 +117,49 @@ Fader strips in the mixer window are controlled in ascending order from left to Make sure you connect your MIDI device's output port to the Jamulus MIDI in port (QjackCtl (Linux), MIDI Studio (macOS) or whatever you use for managing connections). In Linux you will need to install and launch a2jmidid so your device shows up in the MIDI tab in Qjackctl. + +## Controlling recordings on Linux headless servers + +When using the [recording function](Server-Win-Mac#recording) with the `-R` [command line option](Command-Line-Options), if the server receives a SIGUSR1 signal during a recording, it will start a new recording in a new directory. SIGUSR2 will toggle recording enabled on/off. + +To send these signals using systemd, create the following two `.service` files in `/etc/systemd/system`, calling them something appropriate (e.g. `newRecording-Jamulus-server.service`). + +**Note:** You will need to save recordings to a path _outside_ of the jamulus home directory, or remove `ProtectHome=true` from your systemd unit file (be aware that doing so is however a potential security risk). + +For turning recording on or off (depending on the current state): + +~~~ +[Unit] +Description=Toggle recording state of Jamulus server +Requisite=Jamulus-Server + +[Service] +Type=oneshot +ExecStart=/bin/systemctl kill -s SIGUSR2 Jamulus-Server +~~~ + +For starting a new recording: + +~~~ +[Unit] +Description=Start a new recording on Jamulus server +Requisite=Jamulus-Server + +[Service] +Type=oneshot +ExecStart=/bin/systemctl kill -s SIGUSR1 Jamulus-Server +~~~ + +_Note: The Jamulus service name in the `ExecStart` line needs to be the same as the `.service` file name you created when setting systemd to control your Jamulus server. So in this example it would be `Jamulus-Server.service`_ + +Run `sudo systemctl daemon-reload` to register them for first use. + +Now you can run these with the `service start` command, for example: + +`sudo service jamulusTogglerec start` (assuming you named your unit file `jamulusTogglerec.service`) + +You can see the result of these commands if you run `service jamulus status`, or by viewing the logs. + ## Quality of Service Jamulus uses DSCP/CS4 opportunistically to deal with buffer bloat, and uses a default DSCP/CS4 value of 128 (or 0x80). This is compatible with IPv4 and IPv6. Other values can be set using the `-Q` option, eg `-Q [0..255]` (where 0 disables QoS). If you want to explore the effect of non-default settings, see [RFC4594](https://tools.ietf.org/html/rfc4594). However, most people will have no need to do this. @@ -126,24 +169,25 @@ Jamulus uses DSCP/CS4 opportunistically to deal with buffer bloat, and uses a de Jamulus’s QoS settings (including the default) have no effect on Windows because the operating system ignores them. To enable Quality of Service for Jamulus, you must follow these instructions. Note also that you may need to repeat this procedure every time Jamulus is updated. -In Search box beside Start menu Type: Local Group Policy Editor (enter)
-In new window, (click) on the menu icon to display the Actions third panel
-Looking at the first panel of the Local Group Policy Editor
- Local Computer Policy
-  Computer Configuration
-   Windows Settings
-    Policy-based QoS (click)
-Looking at the third panel (Actions) of the Local Group Policy Editor
- Policy-based QoS
-  More Actions
-   Create new Policy (click)
-    Policy Name: Jamulus
-    Specify DSCP value: 32
-    Next
-    This QoS policy applies Only to applications with name Jamulus.exe
-    Next
-    Next
-    UDP
-    Finish
-(Notice Jamulus policy in center panel may be edited)
+In Search box beside Start menu Type: Local Group Policy Editor (enter) +In new window, (click) on the menu icon to display the Actions third panel +Looking at the first panel of the Local Group Policy Editor + Local Computer Policy +  Computer Configuration +   Windows Settings +    Policy-based QoS (click) +Looking at the third panel (Actions) of the Local Group Policy Editor + Policy-based QoS +  More Actions +   Create new Policy (click) +    Policy Name: Jamulus +    Specify DSCP value: 32 +    Next +    This QoS policy applies Only to applications with name Jamulus.exe +    Next +    Next +    UDP +    Finish +(Notice Jamulus policy in center panel may be edited) +