Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions _data/en/navigation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,16 @@ nav:
url: /wiki/Installation-for-Macintosh
- page: Linux
url: /wiki/Installation-for-Linux
- page: Software Manual
- page: User Manual
url: /wiki/Software-Manual
- page: FAQ
url: /wiki/FAQ
Comment thread
gilgongo marked this conversation as resolved.
- page: Troubleshooting
url: /wiki/Client-Troubleshooting
- title: More
subfolderitems:
- page: Running a Server
- page: Server Administration
url: /wiki/Running-a-Server
- page: Configuration
url: /wiki/Command-Line-Options
- page: Tips & Tricks
url: /wiki/Tips-Tricks-More
- page: Community Knowledge Base
Expand Down
Binary file modified assets/img/en-screenshots/bandwidth-diagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed assets/img/en-screenshots/linksys-port-forward.png
Binary file not shown.
7 changes: 0 additions & 7 deletions wiki/en/Central-Servers.md

This file was deleted.

63 changes: 3 additions & 60 deletions wiki/en/Choosing-a-Server-Type.md
Original file line number Diff line number Diff line change
@@ -1,65 +1,8 @@
---
layout: wiki
title: "Choosing a Server Type"
layout: redirect
redirect: "/wiki/Running-a-Server"
lang: "en"
permalink: "/wiki/Choosing-a-Server-Type"
category: "hidden"
---

{% include breadcrumb.html root="More" branch1="Running a Server" branch1-url="Running-a-Server" %}

# Server Types

You can run your server in one of three "modes" (either at home or on a 3rd party host):

### 1. Public

Your server will be listed in the [directory server](Directory-Servers) list that clients use by default. Musicians can then discover and connect to your server. It is not necessary to run as a public server since many other people already run them. Just connect to one with low latency and start jamming.

<figure><img src="{{site.url}}/assets/img/en-screenshots/diagram-public-server.png" loading="lazy" alt="Diagram of connections between clients within a Jamulus public server"></figure>

This mode is activated by checking the "Register my server..." checkbox and (optionally) entering your server information.

When running without the GUI ("headless"), the following would configure a public server:

~~~
Jamulus --nogui --server \
--directoryserver genreServer:port \
--serverinfo "yourServerName;yourCity;[country ID]"
~~~

**Note**: It is **not** necessary to port-forward or otherwise configure your router to run a public server.

See also [Command Line Options](Command-Line-Options) for other parameters you can set.


### 2. Private

This type of server will not be listed on a directory server list. You must give musicians your server address to connect their clients to. See [Running a Private Server](Running-a-Private-Server) for what needs to be done to enable others to connect to it.

<figure><img src="{{site.url}}/assets/img/en-screenshots/diagram-private-server.png" loading="lazy" alt="Diagram of connections between clients within a Jamulus private server"></figure>

This mode is activated by un-checking "Register my server...".

When running without the GUI ("headless"), the following would configure a private server:

```shell
Jamulus --nogui --server
```

See also [Command Line Options](Command-Line-Options) for other parameters you can set.

### 3. Directory

Configuring your server as a Directory Server need only be done under special circumstances (e.g. for online events or musical associations). Most people can ignore this type.

To view servers listed by a custom directory server, musicians must enter the address in their client’s "Custom Directory Server" settings field. They will then see a Connection Setup list which is generated by that directory server.

Normal server operators can also register with your custom directory server so their servers can show up in your server list by setting yours as their `--directoryserver` option.

To run a server as a Directory Server, it should be configured with `--directoryserver localhost` (that is, specify itself as the directory server to query).

#### Configuration points to note

If you want to control which servers can register with your Directory Server, you can enable a whitelist with the `--listfilter` command line option. See the [command line options page](Command-Line-Options) for further information about this feature and other parameters you can set.

When running a public Directory Server behind a NAT firewall on a private network, use the `--serverpublicip` option to specify the public IP address of the server(s) being listed by your Directory Server. This is necessary to allow clients on the public Internet to connect to them via NAT. Note that for the servers using this option, you will still need proper port forwarding in your router/firewall.
10 changes: 10 additions & 0 deletions wiki/en/Client-Troubleshooting.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,16 @@ permalink: "/wiki/Client-Troubleshooting"
---

# Troubleshooting
{:.no_toc}

<details markdown="1">

<summary>Table of contents</summary>

* TOC
{:toc}

</details>

### Don’t hear any sound/Others don’t hear you?

Expand Down
67 changes: 3 additions & 64 deletions wiki/en/Command-Line-Options.md
Original file line number Diff line number Diff line change
@@ -1,68 +1,7 @@
---
Comment thread
gilgongo marked this conversation as resolved.
layout: wiki
title: "Command Line Options"
layout: redirect
redirect: "/wiki/Running-a-Server"
lang: "en"
permalink: "/wiki/Command-Line-Options"
category: "hidden"
---

# Command Line Options

Most common functions in Jamulus can be set using the GUI, but these and others can also be set using options given in a terminal window. Exactly how you do this will depend on your operating system.

For example on Windows, to have a client use a specific settings file, right-click on the Jamulus shortcut and choose "Properties" > Target. Add the necessary arguments to Jamulus.exe:

```shell
"C:\Program Files (x86)\Jamulus\Jamulus.exe" --inifile "C:\path\to\myinifile.ini"
```

For macOS, start a Terminal window and run Jamulus with the desired options like this:

```shell
/Applications/Jamulus.app/Contents/MacOS/Jamulus --inifile "/path/to/myinifile.ini"
```

***

You can see all possible options your version supports by starting Jamulus with the `-h` option.

_Note that the following options will not alter settings made in the GUI._

### General settings (client and server modes)

| Short | Long name | `[...]` means optional parameter | Notes |
|---------|-------------------|--------------------------------------------------------------------------------------------------------------|----------------------------------------------------------|
| `-h,-?` | `--help` | This help text | |
| `-i` | `--inifile` | Set location of initialization file (overrides default) | Client (always) and server (with GUI) |
| `-n` | `--nogui` | Disable GUI | |
| `-p` | `--port` | Local UDP port number. Default is 22124 | |
| `-Q` | `--qos` | Sets the quality of service DSCP value. Default is 128. Disable with 0. | QoS is ignored by Windows, but see [Tips & Tricks](Tips-Tricks-More#quality-of-service) for how to apply it. |
| `-t` | `--notranslation` | Disable translations | |
| `-v` | `--version` | Output version information and exit | |

### Server only

| Short | Long name | `[...]` means optional parameter | Notes |
|-------|-------------------|----------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------|
| `-d` | `--discononquit` | Disconnect all clients on quit | |
| `-e` | `--directoryserver` | Make the server public and sets its genre. See also `-o` | See [server types](Choosing-a-Server-Type#3-directory) |
| `-f` | `--listfilter` | Whitelist servers registering on the server list, format `ip address 1[;ip address 2]` | Directory servers only. [See note](Choosing-a-Server-Type#3-directory) |
| `-F` | `--fastupdate` | Reduces latency if clients connect with "Enable Small Network Buffers" option. Requires faster CPU to avoid dropouts, and more bandwidth to enabled clients. | |
| `-l` | `--log` | Enable logging, set path and file name | |
| `-L` | `--licence` | Show an agreement window before users can connect | |
| `-m` | `--htmlstatus` | Enable HTML status file, set path and file name | |
| `-o` | `--serverinfo` | Location details in the format: `[name];[city];[locale value]` (see [values](https://doc.qt.io/qt-5/qlocale.html#Country-enum)) | Public servers only |
| `-P` | `--delaypan` | Start with delay panning enabled | See [Server Setup](Server-Win-Mac#other-options) |
| `-R` | `--recording` | Include a writeable path where the files should be stored (in quotes if needed). | See [Server Setup](Server-Win-Mac#recording). |
| | `--norecord` | Disable recording when enabled by default by `-R` | |
| | `--serverbindip` | Specify the IP address to bind to |

### Client only

| Short | Long name | `[...]` means optional parameter | Notes |
|-------|-------------------|---------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------|
| `-M` | `--mutestream` | Starts Jamulus in muted state | |
| | `--mutemyown` | Mute me in my personal mix | Headless only |
| `-c` | `--connect` | Connect to given server address on startup, format `address[:port]` | |
| `-j` | `--nojackconnect` | Disable auto JACK connections | |
| | `--ctrlmidich` | MIDI controller channel to listen on, control number offset and consecutive CC numbers (channels). Format: `channel[;f*][;p*][;s*][;m*]` | See [Tips & Tricks](Tips-Tricks-More#using-ctrlmidich-for-midi-controllers) |
| | `--clientname` | Window title and JACK client name | |
29 changes: 3 additions & 26 deletions wiki/en/Directory-Servers.md
Original file line number Diff line number Diff line change
@@ -1,30 +1,7 @@
---
layout: wiki
title: "Directory Servers"
layout: redirect
redirect: "/wiki/Running-a-Server"
lang: "en"
permalink: "/wiki/Directory-Servers"
category: "hidden"
---

{% include breadcrumb.html root="More" branch1="Running a Server" branch1-url="Running-a-Server" %}

# Public Server Registration

Because there is a limit of 150 servers per directory server, you need to select which directory server you want to advertise your server on. Select a genre if you intend to limit players to that style (players can then see your server in their genre list).

When you start a public server, you will see a message saying whether your server has been successfully listed or not. If not, and you leave your server running, it will keep trying to register until a free slot becomes available.


## Headless servers

Set directory (genre) server using the `--directoryserver` (`-e`) option as follows:


| Genre | Server address |
|-----------|------------------|
|**Any Genre 1** |`anygenre1.jamulus.io:22124`|
|**Any Genre 2** |`anygenre2.jamulus.io:22224`|
|**Any Genre 3** |`anygenre3.jamulus.io:22624`|
|**Genre Rock** |`rock.jamulus.io:22424`|
|**Genre Jazz** |`jazz.jamulus.io:22324`|
|**Genre Classical/Folk** |`classical.jamulus.io:22524`|
|**Genre Choral/Barbershop** |`choral.jamulus.io:22724`|
27 changes: 24 additions & 3 deletions wiki/en/FAQ.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,18 @@ permalink: "/wiki/FAQ"
---

# Jamulus FAQ
{:.no_toc}

This is an overview of common questions. For common problems and their solutions, see the [Troubleshooting](/wiki/Client-Troubleshooting) page.
<details markdown="1">

<summary>Table of contents</summary>

* TOC
{:toc}

</details>

**For common problems and their solutions when using Jamulus, see the [Troubleshooting](/wiki/Client-Troubleshooting) page.**


### Is there a metronome, synchronization, or some other way of keeping in time?
Expand All @@ -16,7 +26,7 @@ No. Musicians on a Jamulus server simply play in real time time together as they

### How do I know if I can join a server? Are there rules?

In general, if somebody sets up a public server, then [by definition](/wiki/Choosing-a-Server-Type) they accept that anyone can play on it. Jamulus has no password protection or other authentication mechanisms. However, some servers may state their policies in the welcome message you will see in the chat window.
In general, if somebody sets up a public server they accept that anyone can play on it. Jamulus has no password protection or other authentication mechanisms. However, some servers may state their policies in the welcome message you will see in the chat window.

You can also set up a private server on Jamulus and give others your address to connect to that. Have a look at [this page for more information](/wiki/Running-a-Server).

Expand All @@ -34,7 +44,7 @@ Of course, if you are playing an acoustic instrument, or are a singer, it will b

### Do I need a fast Internet connection?

For most people on standard broadband (e.g. 10 Mbit/s down and 1 Mbit/s up) you will have no problems. For those running servers at home, depending on how many people join, you may encounter issues if your upstream bandwidth is lower than about 5 Mbit/s. [More information on network requirements here](/wiki/Network-Requirements).
For most people on standard broadband (e.g. 10 Mbit/s down and 1 Mbit/s up) you will have no problems. For those running servers at home, depending on how many people join, you may encounter issues if your upstream bandwidth is lower than about 5 Mbit/s.

### Do I need to run a server?

Expand All @@ -50,3 +60,14 @@ Jamulus works on the client-server principle. Everybody’s audio is sent to a s
### Why doesn't Jamulus provide video support?

Adding video support adds a lot of complexity. You can use other software like Jitsi or Zoom if you want to see others when playing (or have an "audience"), but the video will be significantly behind the Jamulus audio.


## Server FAQ

### Why do public servers not need port forwarding?

Normally, network address translation (NAT) firewalls prevent incoming requests initiated from outside the local network. Inbound traffic is only possible for packets relating to an outbound request (strictly speaking, “related” and “established” packets to an initial outbound connection). In public server mode, when your Jamulus server connects to a Directory Server it of course initiates an outbound connection. From then on, the Directory Server sends (established/related) connection “pings” (not ICMP pings) to your server at regular intervals to keep the relevant NAT port(s) open on your router/firewall.

However, in private mode, clients have to **initiate** connections into the server’s network. NAT firewalls prevent this, so you need to tell them to allow incoming connection requests on the Jamulus port using port forwarding.


Loading