### 3.10.0 (2023-09-03) ###

- Build: Mac: Keep the signing-related keychain unlocked (#2927).
  (contributed by @hoffie)

- Build: Updated bundled Qt6 to version 6.5.1 (#3070).
  (contributed by @github-actions)

- Docs: Added JSON-RPC server connection tips (#3101).
  (contributed by @mcfnord)

- Translation: Added trebmuh to create-translation-issues.sh (#3147).
  (contributed by @jujudusud)

- GUI: Fix some accelerator key conflicts, and fix ellipses in Norwegian (#3156).
  (contributed by @softins)

- Client: (Refactor) Prevent multiplication result converting to larger type (#3164).
  (contributed by @softins)

- Client: Added SRV-based virtual hosting support (#2930).
  (contributed by @hoffie)

- Server: Improved `--serverinfo` argument validation (#2951).
  (contributed by @hoffie, @pljones)

- Server: ISO country codes can now be supplied in upper or lower case (#2934).
  (contributed by @Rob-NY)

- Server: Use native file selection dialog for recording directory and persistence file to allow read and write access outside of the macOS sandbox (#3009).
  (contributed by @ann0see)

- Server: Rename `--directoryserver` to `--directoryaddress` (and internal changes) (#3017).
  (contributed by @pljones)

- Server: Save the HTML formatting in Server Welcome Message. (Applies to the GUI Server.) (#3058).
  (contributed by @pljones)

- Windows: Windows 64bit releases use Qt 6.5.2 now. Jamulus will from now on only support Windows 10 and above (#2300).
  (contributed by @hoffie)

- Linux: Debian users can now use the official PPA to get automatic updates. See the Linux install page on jamulus.io for more information (#3013).
  (contributed by @ann0see)

- Mac: The legacy build now uses the macOS 13.1 SDK which is unsupported by Qt 5.9.9. We still provide the legacy build, but from now on consider it as deprecated. You are advised to upgrade your OS (#3066).
  (contributed by @ann0see)

- Mac: Enable dark-mode support on non legacy builds (#2833, #3008).
  (contributed by @ann0see)

- Mac: Fixed building Jamulus via Xcode (#3076).
  (contributed by @ann0see)

- Android: Updated Oboe to version 1.7.0 (#3000).
  (contributed by @ann0see)

- Android: Fixed a crash on session startup that occurs on many devices (#2905).
  (contributed by @danryu)

- iOS: Build App with higher SDK version (#3073).
  (contributed by @ann0see)

- GUI: Make checkboxes self-labelling (#2996).
  (contributed by @pljones)

- RPC: Added new command line switch (`--jsonrpcbindip`) to specify the bind address for the RPC server (#2917).
  (contributed by @Rob-NY)

- RPC: jamulusserver/getClients method expanded to include all elements of a user profile as well as the number of active client connections (#2918).
  (contributed by @Rob-NY)

- RPC: Rename `directoryServer` to `directory` in `jamulusserver/getServerProfile` response (#3048).
  (contributed by @pljones)

- Translations have been updated (#3158, #3155, #3119, #3150, #3113, #3059, #2921, #2923, #2998):
  (mainly translated on @weblate by multiple translators)
  * Chinese, by @yangyangdaji, @cup113, @BLumia, @SoulGI, @MarongHappy, Kingo Bingo
  * Dutch, by @henkdegroot, @jerone
  * French, by @trebmuh, @jujudusud, @cosas
  * German, by @ann0see, Ettore Atalan, Iva Hristova, Katja Flinzner
  * Italian, by @dzpex, Gico2006, Massimo Pissarello
  * Korean, by @MarongHappy
  * Norwegian Bokmål, by @comradekingu, Wdt@.+_-
  * Polish, by @gnu-ewm, @C10udburst
  * Portuguese Brazilian, by @melcon, @gbonaspetti, @adoniasalmeida, Zer0-Zer0, @fnogcps
  * Portuguese European, by @melcon
  * Spanish, by @ignotus666, gallegonovato
  * Swedish, by @Skarvinius

- Translation: Document translation process shift to Weblate. Translators can from now one use Weblate for translations (#2880).
  (contributed by @ann0see)

- Docs: Removed docs/RELATED-PROJECTS.md from repository. The up to date version is now on jamulus.io (#3091).
  (contributed by @mcfnord)

- Updated Opus to v1.4 (#3099)
  (contributed by @ann0see)

- Build: Updated bundled Qt6 to version 6.5.2 (#3110).
  (contributed by @app/github-actions)

- Build: Updated Windows Installer base (NSIS) to version 3.09 (#3097).
  (contributed by @app/github-actions)

- Build: Updated build dependencies: maxim-lobanov/setup-xcode to 1.5.1 (#2936), DoozyX/clang-format-lint-action to 0.16 (#3053), dev-drprasad/delete-tag-and-release to 0885ecc4123e071dd1a8be04d3a0578f5390581c (#3027).
  (contributed by @app/dependabot)

- Build: Enabled signing of macOS binary if a self signed certificate is given (#2944).
  (contributed by @ann0see)

- Build: macOS now uses the 13.1 SDK for better compatibility with modern macOS versions (#3106)
  (contributed by @ann0see)

- Build: Updated clang version to Ubuntu LTS version (#3020).
  (contributed by @pljones)

- Build: Updated bundled JACK (Windows-only) to version 1.9.22 (#3031).
  (contributed by @ann0see)

- Autobuild: Hardened detection of QT 5 builds for macOS and iOS (#3057).
  (contributed by @ann0see)

- Autobuild: Modernised/fixed some Python and added linting to CI (#3052).
  (contributed by @declension)

- Refactor: use `size_t` for vector and array indexes that must not be negative (#2893).
  (contributed by @pljones)

- Internal: Moved main branch from `master` to `main`. If you compile Jamulus from source, you will need to update your local repository. See [discussion #2984](https://github.com/orgs/jamulussoftware/discussions/2984) for more information. (#2840)
  (contributed by @pljones, @ann0see)

- Internal: Clarified licensing terms for Autobuild scripts (#3077).
  (contributed by @ann0see)

- Internal: Use native gh command for release management and uploading artefacts (#3075).
  (contributed by @ann0see)

- Internal: Include HTML in strDirectoryTypeWT to make translation easier (#2894).
  (contributed by @pljones)

- Internal: Renamed English translation file of windows installer to `en_GB` (#2929).
  (contributed by @ann0see)

- Internal: Fix C++ build warnings regarding copy constructor and assignment functions (#2946).
  (contributed by @hoffie)

- Internal: Reduced permissions in Autobuild for security hardening (#2953).
  (contributed by @ann0see)

- Internal: The JACK build will now install directly from the JACK GitHub repository (#3003, #3014).
  (contributed by @ann0see)

- Internal: Improved Qt Creator 5 compliance of Jamulus.pro (#3010).
  (contributed by @pljones)

- Internal: Improved maintainability of Jamulus.pro by using global definitions (#3046).
  (contributed by @ann0see)

### 3.9.1 (2022-10-17) ###

- Client: Improved performance of GUI when someone joins or leaves a server (#2738).
  (contributed by @ann0see)

- Client: Bugfix: Removed channel number from saved fader tag when `--ctrlmidich` is in use. In this release `--cleanuplegacyfadersettings` can be used on any saved fader settings that have been corrupted to attempt recovery (#2839).
  (contributed by @pljones)

- Bugfix: Correct new channel not being shown to others if it connects with null channel info (#2754, #2774).
  (contributed by @softins)

- Server: Fixed --serverinfo country code misinterpretation introduced in Jamulus 3.9.0 on Qt6-based builds such as Mac (#2829).
  (contributed by @hoffie)

- Server: Added support for ISO country codes (de, gb, nl, ...) in --serverinfo (#2841).
  (contributed by @hoffie)

- Directory: Bug: Correct default "self" address for directory, enabling use as a server (#2812).
  (contributed by @pljones)

- Directory: Bug: Use configured Directory Public IP for Client when hole-punching (#2819).
  (contributed by @pljones)

- CLI: Rephrased recording options help text on the `--help` output for clearer description of their functionality (#2832).
  (contributed by @ann0see)

- Windows: Upgraded JACK build to use JACK 1.9.21 (#2665).
  (contributed by @ann0see)

- Translations have been updated (#2835, #2852, #2856, #2915):
  (mainly translated on @weblate by multiple translators)
  * Chinese, by @BLumia
  * Dutch, by @henkdegroot
  * French, by @trebmuh, @jujudusud, J. Lavoie
  * German, by @ann0see, Hans Spoerer
  * Korean, by @MarongHappy
  * Norwegian Bokmål, by @comradekingu
  * Polish, by @SeeLook
  * Portuguese European, by @mansil
  * Slovak, by @jose1711
  * Spanish, by @ignotus666
  * Swedish, by @tygyh, @comradekingu

- Translation: Added nb_NO App translation (#2849, #2852).
  (contributed by @comradekingu, @ann0see)

- Refactoring: Moved around files to clean up the repository (#2822, #2824, #2834, #2838).
  (contributed by @ann0see)

- Build: Android: Export NDK root (#2764).
  (contributed by @pljones)

- Build: Debian/Ubuntu: Fixed `.deb` Changelog generation (#2793).
  (contributed by @hoffie)

- Build: Debian/Ubuntu: Fixed displayed version for non-release builds to removed incorrect -dirty suffixes (#2802).
  (contributed by @hoffie)

- Build: Debian/Ubuntu: Renamed headless .deb file to `jamulus-headless_[version]_ubuntu_[arch].deb` for consistency with binary. This might need changes to scripts downloading this `.deb` file (#2821).
  (contributed by @ann0see)

- Build: Debian/Ubuntu: Added .deb aarch64 (Raspberry) 64bit builds (#2895).
  (contributed by @hoffie)

- Build: Mac: Combined Intel & M1 builds into a single Universal binary and improved M1 -dev build user-friendliness by introducing ad-hoc signing support (#2808, #2825).
  (contributed by @hoffie)

- Build: Bump versions: actions/upload-artifact from 2 to 3 (#2796), actions/cache from 2 to 3 (#2798), DoozyX/clang-format-lint-action from 0.12 to 0.14 (#2797), actions/checkout from 2 to 3 (#2799).
  (contributed by @dependabot)

- Internal: Enabled automated dependency updates via dependabot and custom automation (#2777, #2778, #2801, #2803).
  (contributed by @hoffie)

- Internal: Hardened build scripts and tooling against silent failures (#2794).
  (contributed by @hoffie)


### 3.9.0 (2022-07-29) ###

- Feature: Added **_EXPERIMENTAL_** new JSON-RPC interface to control client and server (see [docs/JSON-RPC.md](https://github.com/jamulussoftware/jamulus/blob/main/docs/JSON-RPC.md) for details) (#1975, #2505).
  (contributed by @dtinth, @Rob-NY)

- GUI: Translations have been updated:
  * Chinese, by @BLumia (#2719)
  * Dutch, by @henkdegroot (#2708)
  * French, by @jujudusud (#2704, #2729)
  * German, by @ann0see (#2748)
  * Italian, by @dzpex (#2739)
  * Korean, by @bagjunggyu (assisted by @hoffie) (#2685, #2741)
  * Polish,  by @SeeLook (#2735)
  * Portuguese Brazilian, by @melcon (#2728)
  * Portuguese European, by @melcon (#2747)
  * Slovak, by @jose1711 (#2732)
  * Spanish, by @ignotus666 (#2706)

- GUI: Client: Added instructions for setting buffers when using Pipewire (#2645).
  (contributed by @gilgongo)

- GUI: Client: Fix a bug where a blank line is shown after some client’s name in the mixer board in some conditions (#2542).
  (contributed by @dtinth)

- GUI: Client: Include ASIO references in Windows ASIO version (#2605).
  (contributed by @henkdegroot)

- GUI: Client: Removed wrongly mentioned "URL" from help texts (#2608).
  (contributed by @ann0see)

- GUI: Client: Rephrase mute options in help text (#2673).
  (contributed by @pljones)

- GUI: Client: Simplify device driver error message on Windows by removing unneeded HTML (#2496).
  (contributed by @ann0see)

- GUI: Client: What's This Text and Tooltip updated for LEDs and Connection Status (#2644).
  (contributed by @henkdegroot)

- GUI: Server: Amend server registration, added server list persistence (#2199).
  (contributed by @pljones)

- GUI: Server: Adjust Server Language combo box length to fit into layout properly (#2424).
  (contributed by @pljones)

- GUI: Server: Re-order Recorder widgets for better use of space (plus Qt6 compliance) (#2427).
  (contributed by @pljones)

- GUI: Fix (hopefully) all remaining references to "directory server" in displayed messages to say "directory" (#2710).
  (contributed by @pljones)

- GUI: Improved Country selection handling to work with Qt6 and cover 53 previously unsupported territories (#2409).
  (contributed by @hoffie)

- GUI: Improved translator experience by using substitutions instead of concatenations (#2646).
  (contributed by @ann0see)

- GUI: Removed occurrences of plain name "Jamulus" in translatable texts (#2609).
  (contributed by @ann0see)

- Accessibility: Sound Alert for new person and new chat message (#2640).
  (contributed by @chigkim)

- Accessibility: Combine all the client info, so screen reader users don't have to track down multiple places (#2638).
  (contributed by @chigkim)

- Accessibility: Added name and instrument to accessibility labels for mute, solo, group (#2639).
  (contributed by @chigkim)

- Client: Avoid losing gain changes (#2737).
  (contributed by @hoffie)

- Client: Fix potential long delay in sending fader changes to the server (#2535).
  (contributed by @softins)

- Client: Refactored JACK- and ASIO-related logic (#2443).
  (contributed by @hoffie)

- Client: Removed the translation for the CLI version text output (#2602).
  (contributed by @henkdegroot)

- Server: Fix loading of persistent server list entries (#2631).
  (contributed by @pljones)

- Server: Headless Server now unregisters correctly (#2633).
  (contributed by @pljones)

- Server: Clarify code for handling of requests for the server list (#2643).
  (contributed by @pljones)

- Server: Improvements to the start up logging for the server list filter (#2647).
  (contributed by @pljones)

- Server: Set default directory to "None" when not set in ini file or command line (#2442).
  (contributed by @softins)

- Bug Fix: Build: .deb dependency fix to allow Jamulus being installed on Ubuntu 18.04 (#2423).
  (contributed by @hoffie)

- Bug Fix: Client/Server: corrected operation of message ack timer (#2517).
  (contributed by @softins)

- Windows: Create KR translation for installer (#2669).
  (contributed by @bagjunggyu)

- Windows: The JACK build now no longer gives an ASIO related warning message on an incompatible state (#2494).
  (contributed by @ann0see)

- Linux: Added the Jamulus Server desktop icon to the Debian/Ubuntu build and fixed SVG icon installation location (#2460).
  (contributed by @hoffie)

- Linux: Removed unused `linux/deploy_linux.sh` script (#2512).
  (contributed by @ann0see)

- Linux: Ubuntu: Added new runtime dependency. You will need to added the "universe" apt repository (on Ubuntu only) (#2721).
  (contributed by @pljones)

- Linux: Updated package author information (#2652).
  (contributed by @hoffie)

- Mac: Use latest Xcode version with SDK 10.15 support (#2266).
  (contributed by @hoffie)

- Mac: Fixed non-working Save/Load Mixer Channel Setup (#2565).
  (contributed by @softins)

- Mac: Upgraded create-dmg to the latest version (#2664).
  (contributed by @ann0see)

- Android: Removed unneeded dependencies to speed up build (#2394).
  (contributed by @ann0see)

- Android: Package version has been fixed to show the actual release version (#2398).
  (contributed by @hoffie)

- Android: Improve sound driver to fix CodeQL warnings (#2457).
  (contributed by @softins)

- Android: Improved compilation and updated liboboe to 1.6.1 (#2472).
  (contributed by @hoffie)

- Android: Migrated to aqtinstall for Qt installation (#2497).
  (contributed by @hoffie)

- Documentation: Updated the link to "Running a server" web page (#2419).
  (contributed by @jujudusud)

- Documentation: Document compile time options to COMPILING.md (#2707).
  (contributed by @ann0see)

- Documentation: Added high-level technical documentation for the Jamulus protocol (#2337).
  (contributed by @emlynmac)

- Documentation: Made man page and help output more consistent. <!-- Insert a short, end-user understandable sentence in past tense right here, e.g.: Client: Fixed crash when clicking the connect button too fast --> (#2448).
  (contributed by @gilgongo)

- Documentation: Rewrite some parts of COMPILING.md and CONTRIBUTING.md to stay up to date and enable clearer contribution guidelines (#2561).
  (contributed by @ann0see)

- Build: Added nojsonrpc qmake CONFIG option to remove JSON-RPC support (#2660).
  (contributed by @pljones)

- Build: Make serveronly more comprehensive (#2551).
  (contributed by @pljones)

- Build: Rename existing define to JACK_ON_WINDOWS (#2525).
  (contributed by @pljones)

- Build: Moved CodeQL from Mac to Mac Legacy to work around signing incompatibility (#2564).
  (contributed by @softins)

- Build: Provide unsigned iOS builds for easy install on iOS devices (#2355).
  (contributed by @ann0see)

- Build: Added macOS M1 (arm64) support (#2682).
  (contributed by @hoffie)

- Build: macOS will now be built with Qt 6.3.1 for better support of modern versions of macOS. Users of macOS 10.14 or earlier must from now use the legacy build or compile from source (#2672).
  (contributed by @ann0see)

- Build: Improved grep usage in scripts #2421 (#2397).
  (contributed by @ann0see)

- Build: Removed broken QMAKE_APPLICATION_BUNDLE_NAME. logic (#2477).
  (contributed by @hoffie)

- Build: Initial support for building with Qt6 has been implemented (@dcorson-ticino-com, @softins) (#2299).
  (contributed by @hoffie)

- Build: Updated aqt to v2.1.0 due to reliability reasons (#2597).
  (contributed by @ann0see)

- Autobuild: Major overhaul, incorporating improvements in performance
  * Coding style and static checks for shell scripts are now enforced (#2635).
  * Build workflow download and cache optimisations (#2284, #2498, #2499, #2642).
  * Parallelisation of build processes (#2444, #2445)
  * Build script refactoring (#2284, #2451, #2470, #2473, #2476, #2489, #2501, #2502, #2509, #2514, #2527, #2540, #2584, #2642).
  (contributed by @hoffie)

- Autobuild: Added experimental support for armhf (Raspberry-compatible) Linux .deb packages (#2526).
  (contributed by @hoffie)

- Autobuild: Fix iOS artifact name  (#2619).
  (contributed by @hoffie)

- Autobuild: Build macOS .dmg files by create-dmg for building compatibility with further versions of macOS #2420 (#2207).
  (contributed by @ann0see)

- Autobuild: Stop the build if the audio SDK is missing (#2536).
  (contributed by @pljones)

- Autobuild: Stop running Autobuild if only documentation is updated to avoid wasting computation time (#2532).
  (contributed by @ann0see)

- Autobuild: Build Windows version on latest build environment. This upgrades the Windows build process (#2649).
  (contributed by @ann0see)

- Autobuild: Make Qt downloads on Windows more reliable by re-trying downloads (#2333).
  (contributed by @ann0see)

- Autobuild: Backport Oboe's fixes CodeQl overflow warnings (#2548).
  (contributed by @ann0see)

- Code: code restructuring to reduce cross-dependencies (CHighPrecisionTimer) (#2637).
  (contributed by @pljones)

- Internal: Improved analyze_git_references.py script (#2471).
  (contributed by @hoffie)

- Internal: Improved and reorganized git/Changelog scripts (#2656).
  (contributed by @hoffie)

- Internal: Added .editorconfig for cross-language standardized indentation and line endings (#2585).
  (contributed by @hoffie)

- Internal: Applied a consistent coding style to scripts (#2547, #2582).
  (contributed by @hoffie)

- Internal: Added `make clang_format` helper command to simplify code formatting for contributors (#2258).
  (contributed by @hoffie)

- Internal: Added debian/ folder to .gitignore file to ensure build files are not added to git (#2464).
  (contributed by @ann0see)

- Internal: Check coding style on macOS/iOS code files (.mm extension) (#1871).
  (contributed by @ngocdh)

- Internal: Use TODO and TEST comments instead of un-indenting with clang-format off/on (#2600).
  (contributed by @pgScorpio)

- Internal: Removed unneeded white-space in all files and streamline line endings (#2402).
  (contributed by @ann0see)

- Internal: Applied standard style to .md files (#2549).
  (contributed by @ann0see)

- Internal: Move sound API files into src/sound folder. Contributors will now find the sound.cpp/sound.h/sound.mm in the src/sound folder for consistency (#2575).
  (contributed by @ann0see)

- Internal: Move translation files one level up to make finding them easier for translators (#2576).
  (contributed by @ann0see)

- Internal: Moved entitlements file to mac/ folder to clean up the repo root (#2529).
  (contributed by @ann0see)

- Internal: Rename LED resources (#2621).
  (contributed by @henkdegroot)

- Internal: Improved release contributor tooling (#2411).
  (contributed by @hoffie)

- Internal: Improved Changelog release tooling (#2485, #2661).
  (contributed by @hoffie)

- Internal: Moved outdated VST code on feature branch since there hasn't been any active development for a long time (#2461).
  (contributed by @ann0see)

- Internal: Removed outdated qt-installer-windows.qs since we no longer use Travis CI (#2516).
  (contributed by @ann0see)


### 3.8.2 (2022-02-20) ###

- Client: Added selection option for level meter style (#1688, #2352, #2356).
  (contributed by @henkdegroot, @hoffie, @pgScorpio, @pljones)

- Client: On Windows, if no driver found while installing, the "Run Jamulus"
  option will not be checked (#2103).
  (contributed by @henkdegroot)

- Client: on macOS, corrected minimum OS version number for Legacy installer from 10.13 to 10.10.
  Legacy installer will now install correctly on macOS Yosemite or newer (#2223).
  (contributed by @softins)

- Client: Added Vibraphone to list of instruments (#2043, #2080, #2158).
  (contributed by @DavidSavinkoff, @softins, photo by @vibraphon)

- Client: Added Conductor to list of instruments (#2140).
  (contributed by @henkdegroot)

- Client: Fix wrong display of Unicode characters at line wrap and settings screen (#1994, #2274).
  (contributed by @djfun, @pljones, @hoffie)

- Client: Fixed incorrect operation of feedback detection on first connect in run (#2120).
  (contributed by @softins)

- Client: Added option always to show one's own fader first (#1809).
  (contributed by @ngocdh)

- Client: Improved regex to highlight URLs in the chat window, avoiding terminating punctuation.
  Also migrated from deprecated QRegExp to QRegularExpression, for future compatibility with
  Qt6 (#2124, #2272, #2273).
  (contributed by @softins, @corrados, @hoffie)

- Client: Improved keyboard control of the list of Custom Directories (#2129).
  (contributed by @pljones)

- Client: Added the connected server name to the heading in the mixer panel (#2173).
  (contributed by @pljones)

- Client: Enhanced the ASIO driver detection during installation on Windows (#2149).
  (contributed by @henkdegroot)

- Client: On Windows, hide the ASIO button in the version that uses JACK instead (#2215).
  (contributed by @henkdegroot)

- Client: Improved the "What's this?" text displayed for Buffer Delay (#2232).
  (contributed by @henkdegroot)

- Client: Accelerator key clash between Settings button and Settings menu corrected (#2248).
  (contributed by @henkdegroot)

- Client: Added option code 'o' in --ctrlmidich for "Mute Myself" (#2334).
  (contributed by @henkdegroot)

- Client/Server: Output from --help and --version is now sent to StdOut instead of StdErr (#2244).
  (contributed by @henkdegroot)

- Client/Server: Improved the version output on the command line to give more detail and Qt version (#2187).
  (contributed by @henkdegroot)

- Client/Server: Added version and Jamulus URL to the Windows uninstall information registered when installing (#2201).
  (contributed by @henkdegroot)

- Client/Server: Some improvements to text related to localisation (#2085).
  (Contributed by @BLumia)

- GUI: Improved Connect Dialog help texts (#2121).
  (contributed by @pljones)

- GUI: Translations have been updated:
  * Dutch, by @henkdegroot and @jerogee (#2371, #2314)
  * French, by @jujudusud (#2329, #2320, #2381)
  * German, by @ann0see, @rolamos and @hoffie (#2349, #2387)
  * Italian, by @dzpex (#2327)
  * Polish, by @SeeLook (#2375, #2331)
  * Portuguese Brazilian, by @melcon (#2369, #2358)
  * Portuguese European, by @melcon (#2368)
  * Simplified Chinese, by @BLumia (#2313, #2391)
  * Slovak, by @jose1711 (#2348)
  * Spanish, by @ignotus666 (#2378, #2326)
  * Swedish, by @softins (#2364)

- Server: Fixed incorrect German translation (#2137).
  (contributed by @rolamos)

- Server: Improved management and allocation of free channels, so that a new client always gets the
  lowest available channel number. Improves operation of clients with MIDI faders (#2151).
  (contributed by @softins)

- Server: Improved the icon that is displayed in the Windows system tray for a server (#2231).
  (contributed by @henkdegroot)

- Bugfix: IPv6 address formatting and obfuscation has been improved (#2343).
  (contributed by @rdica, @hoffie, @softins)

- Windows Installer: Updated NSIS to v3.08 (#2208).
  (contributed by @ann0see)

- Android: Some internal improvements to the experimental Android port buffer handling (#1528, #2237).
  (contributed by @j-santander, @softins)

- Documentation: Enhanced the iOS compilation guide and signing instructions (#2139, #2315).
  (contributed by @ann0see, @RobyDati)

- Documentation: Added a man page for Jamulus, from the Debian project (#2180).
  (contributed by @mirabilos)

- Build: Raspijamulus build script has been improved to work with the latest Raspberry Pi OS releases and to include a newer JACK version (#2267).
  (contributed by @corrados, @softins)

- Internal: Improved accelerator key detection (#2061).
  (contributed by @softins)

- Internal: A hypothetical CodeQL-detected multiplication overflow in sound buffer handling has been fixed (#2292, #2297).
  (contributed by @softins)

- Internal: Changed "Central" to "Directory" in names of variables and functions (#2079).
  (contributed by @pljones)

- Internal: Corrected "Protcol" to "Protocol" in names of variables and functions (#2146).
  (contributed by @atsampson)

- Internal: Some code reordering, particularly of the settings initialisation (#2174, #2177).
  (contributed by @pljones)

- Internal: Removed unneeded submodules from tools directory, and replaced with a RELATED-PROJECTS document (#2196).
  (contributed by @softins)

- Internal: Improved generation of the changelog for the Debian package, using dch (#2138).
  (contributed by @npostavs)

- Internal: Improved powershell redirect handling when building for Windows in Github (#2225).
  (contributed by @henkdegroot)

- Internal: Prepared autobuild logic for upcoming Qt6 compatibility (#2328).
  (contributed by @hoffie, @softins)

- Internal: Release build process has been refactored and uses pinned dependencies for better reproducibility now (#2345, #2336).
  (contributed by @hoffie, @softins)

- Internal: Moved documentation files into docs/ folder to clean up root folder (#2283).
  (contributed by @ann0see)


### 3.8.1 (2021-10-23) ###

- Client: JACK support on Windows has been improved (#1718).
  (contributed by @jujudusud, @henkdegroot)

- Client: Rewrote multiple error messages to improve UX (#1568, #1732).
  (contributed by @ann0see)

- Client: Add custom directory servers to Connect Dialog (#1869, #1894).
  (contributed by @jp8)

- Client: Rearrange existing UI menu bar items (#1915, #1926).
  (contributed by @jp8)

- Bug Fix: Mute myself has been made more consistent (#1838).
  (contributed by @ngocdh)

- Bug Fix: Fix ampersand not being shown correctly on mixer (#1886, #1893).
  (contributed by @HughePaul, @ann0see)

- Bug Fix: A crash fix related to the way iOS handles sockets in idle mode (#1875).
  (contributed by @ngocdh)

- Server: A single click on the server application in the systemtray now opens the Jamulus Server main window (#1722, #1731).
  (contributed by @henkdegroot)

- Server: Jam Recorder's internal locking and initialization code has been made more robust (#1826).
  (contributed by @cdmahoney)

- Server: The list of servers registered on a directory can now be saved during directory restart. Use the new
  --directoryfile CLI option to use this feature (#1867).
  (contributed by @pljones)

- Server: Add link to website if a new version is available (#1980).
  (contributed by: @ann0see)

- Bug Fix: Remove incorrect version of headless .service file (#2009).
  (contributed by @ann0see)

- Client/Server: Add IPv6 support for direct connections (#1017, #1938).
  (contributed by @jardous, @softins)

- CLI: Re-order and refactor help for client/server validation (#1896).
  (contributed by @pljones)

- CLI: Jamulus now shows a link to the Website for translated content (#1759).
  (contributed by @henkdegroot)

- Android: Add close button on Android to enhance UX (#1763, #1876).
  (contributed by @ngocdh)

- iOS: Sound support, feature to allow switch between external device and the internal mic (#1875).
  (contributed by @ngocdh)

- MacOS: Keyboard shortcuts now also work on macOS (#1726, #1873).
  (contributed by @henkdegroot)

- Installer: Add zh_CN translation + for nsis win installer (#1922, #1954).
  (contributed by @BLumia)

- Documentation: Move Demos, description of inputs options to Knowledge Base (#603, #551).
  (contributed by: @pcar75, @gilgongo)

- Documentation: Add user experience section to CONTRIBUTING.md (#1885).
  (contributed by: @ann0see)

- Documentation: Create Server Admin Manual (#527).
  (contributed by: @gilgongo)

- Documentation: Update typo on links in compiling.md file (#1824).
  (contributed by @jujudusud)

- Documentation: Number range command line error messages reworded accurately (#1978).
  (contributed by @DavidSavinkoff)

- Website: switch to .po file format to make updating translations easier (various PRs)
  (contributed by: @ignotus666)

- Website: Removed edit button from wiki layout file (#576).
  (contributed by: @DevRish)

- Internal: Enable signing of macOS binaries (via build script and automatically via CI) (#1856, #1937).
  (contributed by @emlynmac)

- Internal: Added Apple Appstore licence waiver (#1874)
  (contributed by @ann0see, @pljones, @gilgongo)

- Internal: Add autobuild for Windows with JACK (#1829).
  (contributed by @henkdegroot)

- Internal: Document release process on contribute page (#1594, #592).
  (contributed by: @hoffie, @ann0see)

### 3.8.0 (2021-06-02) ###

- The term "Central server" has been replaced with "Directory server" (#1407, #1715, #1629).
  Note that the program will still accept the --centralserver option for backward
  compatibility with existing system startup scripts, but its usage is deprecated.
  (contributed by @pljones, @softins)

- Mac: Generate build with Qt 5.15.2 for better compatibility with Big Sur (#1687, #1768).
  We still build a legacy version with Qt 5.9.9 to support older versions of macOS:
  * Users of 10.13 (High sierra) or newer should use the standard build with Qt 5.15.2
  * Users of Yosemite, El Capitan or Sierra should use the legacy build with Qt 5.9.9
  (contributed by @softins)

- GUI: Settings window has been reorganized into tabs (#1415, #1554, #1542, #1588):
    * User Profile window has been integrated into the settings window.
    * Input Pan has been moved to the newly created Advanced tab and removed from main window.
  (contributed by @dcorson-ticino-com, @pljones)

- GUI: Moved the Ping and Delay stats from the Settings window to the main window (#1762):
  This was partly to work around a Mac issue with updates to the settings window (#1643)
  and is actually an improvement anyway, as the settings window does not need to remain open.
  (contributed by @dcorson-ticino-com and @softins)

- GUI: Added "About Qt" to the help menu to display version of Qt (#1685, #1692).
  (contributed by @softins)

- GUI: Corrected the operation of What's This in the settings dialog (#1622, #1635).
  (contributed by @dcorson-ticino-com)

- GUI: Improved the muted speaker icon display (#1691).
  (contributed by @henkdegroot)

- Added new icons for Linux desktop use (#1672).
  (contributed by @jujudusud)

- GUI: Corrected handling of custom directory server in the server, to prevent
  unintended registration with a directory server (#1624, #1627).
  (contributed by @softins)

- GUI: Corrected alignment of Mute icon above fader (#811, #1312, #1640).
  (contributed by @vimpostor)

- GUI: Support for more than two mixer rows has been added (#1549, #1560).
  (contributed by @pljones)

- GUI: --clientname also works in dialog titles now (#1352, 1370).
  (contributed by @dcorson-ticino-com)

- GUI: Translations have been updated
  * Dutch, by @henkdegroot (#1562, #1623, #1714, #1557)
  * French, by @jujudusud (#1648, #1708)
  * German, by @rolamos (#1677, #1810)
  * Italian, by @dzpex (#1620)
  * Polish, by @SeeLook (#1619)
  * Portuguese Brazilian, by @melcon (#1671, #1807)
  * Portuguese European, by @Snayler (#1689)
  * Slovak, by @jose1711 (#1647)
  * Spanish, by @ignotus666 (#1621, #1730, #1808)
  * Swedish, by @genesisproject2020 (#1664, #1696)

- Network: Support for DSCP Quality of Service flags has been added (#1310).
  This is supposed to lead to improved network performance.
  It is enabled by default.
  On Windows, this requires additional configuration in order to work.
  Please see the Tips & Tricks page on the website for a setup guide for Windows.
  (contributed by @DavidSavinkoff)

- Client: Automatic channel fader adjustment simplifies mixer setup by using the channel level meters (#1071).
  (contributed by @JohannesBrx)

- Client: Basic audio feedback detection has been added (#1179).
  (contributed by @JohannesBrx)

- Client: Support for input gain boost has been added (#1222, #1030)
  (contributed by @hoffie)

- Client: Grouping support has been extended to allow for up to eight groups (#1551).
  (contributed by @pljones)

- Client: A hint regarding non-default Jack support has been added (#1397, #1438).
  (contributed by @djfun)

- Server: Support for Delay Panning has been added (#332, #567, #1151, #1417, #1744):
  This feature can be enabled on servers using the new --delaypan option.
  Enabling this feature will slightly increase server CPU usage.
  It can create a much more realistic spatial sound impression for clients
  that are set to Stereo or Mono-in/Stereo-out mode.
  (contributed by @DetlefHennings, @Hk1020, @softins, @henkdegroot)

- Server: Multi-threading performance has been improved (#960).
  (contributed by @menzels, @softins)

- Server: Half-connected clients will no longer receive audio (#1243, #1589):
  Note: This breaks compatibility with client versions before 3.3.0 (Feb 2013).
  If you update your server, ensure that all clients use 3.3.0 or later as well.
  (contributed by @softins)

- Server: HTML status file is now emptied on exit (#1423, #1427).
  (contributed by @hoffie, @drummer1154)

- Server: An explicit bind address can now be specified (#141, #1561).
  This can be done by the new --serverbindip option.
  (contributed by @buv)

- Recorder: Compatibility with third-party tools such as Audacity has been improved (#1384, #1424, #1437).
  Non-ASCII characters are now stripped out when creating filenames.
  (contributed by @softins, @gilgongo, @reinhardwh)

- Recorder: Failures to start recording no longer result in crashes (#1163, #1289, #1463).
  (contributed by @hoffie, @softins, @pljones)

- Recorder: Logging has been improved (#1284, #1463).
  (contributed by @hoffie, @drummer1154)

- Bug fix: The mute indicator is now also shown in mono mode (#1074).
  (contributed by @npostavs)

- Bug fix: Channel mapping on Windows now only resets if the sound card or the numbers of channels changed (#1347).
  (contributed by @ann0see)

- Bug fix: Jamulus client should now close itself correctly if a non-working device was selected (#872).
  (contributed by @npostavs)

- Bug fix: Server no longer crashes while changing the recording directory (#1501, #1573).
  (contributed by @henkdegroot, @hoffie, @softins)

- Bug fix: Example systemd unit has been fixed to avoid crashing when sending signals (#1515, #1518).
  (contributed by @softins, @helgeerbe, @gilgongo)

- Bug fix: The Windows installer now correctly compiles in a path with spaces (#864, #1319).
  (contributed by @henkdegroot)

- Performance: Opus encoding/decoding now uses machine-specific optimizations (#1105).
  (contributed by @npostavs)

- Performance: Timer configuration for Windows servers has been improved (#1536).
  (contributed by @npostavs)

- iOS support is being worked on (#1450).
  (contributed by @jeroenvv)

- Github autobuild for Mac now uses Xcode 11.7 and SDK 10.15 for compatibility with Qt5 (#1655).
  (contributed by @softins)

- Build: Creation of debug builds has been simplified (#1516).
  (contributed by @hoffie)

- Internal: Constants for JACK usage have been renamed (#1429).
  (contributed by @djfun)

- Internal: Legacy IP address variables have been cleaned up (#1400).
  (contributed by @wferi)

- Internal: Added automatic code formatting with clang-format (#901, #1127, #1751).
  (contributed by @passing)

- Internal: New pull requests will now be checked for coding style automatically (#1735).
  (contributed by @passing)

- Internal: Windows deploy script has been aligned to autobuilds (#1720).
  (contributed by @henkdegroot)

### 3.7.0 (2021-03-17) ###

- Server lists have been reorganized to make room for more servers (#875):
  * Default has been renamed to Any Genre 1.
  * Any Genre has been renamed to Any Genre 2.
  * Any Genre 3 has been added.
  * Choral/Barbershop has been added.
  * Classical/Folk/Choral has been renamed to Classical/Folk.

- Central server addresses have been moved to the jamulus.io domain (#919).
  The fischvolk.de addresses are deprecated.

- GUI: If a name is provided using --clientname, that name is shown first in the window title, to avoid clipping in the Windows task bar (#789).

- GUI: Translations have been updated:
  * Dutch, by @jerogee (#1110)
  * French, by @trebmuh & @jujudusud (#1199 & #1113)
  * German, by @rolamos (#1097)
  * Italian, by @dzpex (#1112)
  * Polish, by @SeeLook (#1099)
  * Portugese, by @melcon & @Snayler (#1141 & #1168)
  * Slovak, by @jose1711 (#1104)
  * Spanish, by @ignotus666 (#1152)
  * Swedish, by @genesisproject2020 (#1182 & #1106)

- Active recording state is now highlighted in the mixerboard title (#968).
  (contributed by @dcorson-ticino-com)

- Client window makes it more obvious when not connected to a server by graying out input levels and showing a message (#847, #983).
  (contributed by @ann0see)

- Screensaver and screen blanking are now prevented on Macs (#834).
  (contributed by @jerogee)

- Windows installer has been improved (#792, #841).
  Note: If you are using ASIO4ALL, we strongly suggest that you take a screenshot
  of your ASIO4ALL settings before upgrading. The installer will try its best to
  migrate your settings, but it may fail to do so when using custom
  installation paths.
  (contributed by @ann0see and @doloopuntil)

- Windows installer interface now supports English, Dutch, French, German, Italian, Polish, Portuguese, Spanish and Swedish.
  (contributed by @jerogee, @jujudusud, @ann0see, @dzpex, @SeeLook, @Snayler,
  @melcon, @ignotus666 and @genesisproject2020)

- Windows ASIO Setup button placement has been improved to be below the driver selection (#977).
  (contributed by @mulyaj and @ann0see)

- Chat dialog has gained support for auto-linking http addresses (#879).
  (contributed by @hoffie)

- Chat messages no longer allow HTML-formatted chat messages due to security reasons (#939).
  HTML formatting in Welcome messages will continue to work.
  (contributed by @atsampson)

- Mixerboard background image quality in the Fancy skin has been improved (#970).
  (contributed by @passing)

- MIDI controller logic has been improved to support fader, pan, mute and solo buttons in --ctrlmidich syntax (#945).
  Mute & solo buttons are only for toggle-type controllers and do not support
  headless operation yet.
  (contributed by @dakhubgit)

- Servers connected to central servers behind the same NAT can now be made accessible to public clients via the newly added --serverpublicip option (#954).
  (contributed by @hoffie)

- External IP detection no longer generates traffic to Cloudflare (#633, #1092).
  (contributed by @atsampson and @hoffie)

- Version update detection has been improved (#1155):
    * The check now uses two servers instead of one (updatecheck1.jamulus.io and updatecheck2.jamulus.io).
    * The server version is now ignored if it is not a release, due to a
      suffix such as dev, beta or rc.
  (contributed by @softins)

- Official Ubuntu/Debian packages are now built and published as part of the release (#1100).
  The packages are compatible with Ubuntu 18.04 or later.
  (contributed by @ann0see)

- Experimental .apk installation packages for Android are now provided (#880).
  (contributed by @nefarius2001)

- Bug fix: A suspected memory leak has been solved by removing usage of ConsoleWriterFactory (#926).
  (contributed by @pljones)

- Bug fix: Changing ASIO driver properties like switching input/outputs in ASIO4ALL now resets input/output channel mapping in Jamulus again (#796).
  This was done to solve a bug with ASIO4ALL introduced in the last version.

- Bug fix: Fader levels, mute and solo state are now restored properly when reconnecting to a restarted server (#955, #1010).
  This is a server-side fix.
  (contributed by @hoffie)

- Bug fix: Multiple memory leaks in the server's recording feature have been fixed (#1073).
  (contributed by @softins)

- Bug fix: Menu accelerator keys have been fixed in multiple translations (#1165).
  (contributed by @softins)

- Bug fix: Windows sound driver lacked driverInfo initialisation (#1194).
  (coded by @npostavs)

- Internal build and release process have been re-designed, automated and moved to Github.
  (contributed by @pljones, @nefarius2001, @ann0see, @ranfdev)

- Internal development builds now contain a detailed version number (#475).
  (contributed by @nefarius2001)


### 3.6.2 (2020-12-12) ###

- change Clear All Stored Solo Settings to clear Mute as well (#731)

- avoid selecting IPv6 results from hostname lookup, coded by jarmar (#722)

- added possibility to set MIDI offset for fader control to --ctrlmidich (#95)

- detect if no audio Device is selected before trying to connect a server (#129)

- on MacOS if an audio device is no longer available, show a warning
  rather than switching to default automatically (#727)

- bug fix: sliders move by themselves if fader groups are used on reconnect (#611)

- bug fix: do not reset sound card channel selection on a device property change (#727)

- bug fix: compiling Jamulus 3.6.1 is failing on Debian 9 Linode (#736)

- bug fix: on MacOS Jamulus does not always select the previous sound card (#680)

- bug fix: use new server icon on Mac server bundle and Windows installer (#737)

- bug fix: ping times of servers which are further down the server list are too high (#49)


### 3.6.1 (2020-11-21) ###

- added menu entry "Set All Faders to New Client Level" (#622)

- isolate a channel from the group temporarily with shift-click-drag (#695)

- on shift-click the pan reset to 0 L/R (#707)

- support multiple custom central server addresses (#698)

- the Jamulus server now has a different icon, created by geheimerEichkater (#700)

- support two rows for the mixer panel (#720)

- changed RYG indicator lights with colour-blind compensation, created by geheimerEichkater (#57)

- saving and loading mixer settings is now possible during an active connection and a
  mixer settings file can be loaded with drag'n'drop (#706)

- menu entry Clear All Stored Solo Settings is now enabled during an active connection

- bug fix: the fader group property was not correctly loaded from the ini file


### 3.6.0 (2020-10-25) ###

- handle audio packets received out of order, coded by softins (#619)

- most recently connected users appear on the RH side on the fader panel (#673)

- improvements for the server multithreading, coded by kraney (#653)

- removed Display Channel Levels setting and --servername (#638)

- removed support for further server infos in --serverinfo since the preferred
  way of registering a server is to do it using the protocol messages (#638)

- removed -g, --pingservers since all Central servers must activate this function,
  now it is activated by default and no command line argument is needed (#638)

- added --mutemyown command line argument to mute my own signal in my personal mix,
  only supported in headless client mode (#340)

- added "Mountain Dulcimer" instrument icon, created by dora71 (#649)

- added new instrument icons for "Scratching" and "Rapping"

- replaced double types by floats for some of the signal processing, coded by hselasky (#544)

- support permanent channel fader sorting (i.e., not only on request but always) (#666)

- support sorting faders by channel city

- if sorting the faders by instrument, we now sort by the name for the same instruments

- improvements to the Android audio interface, coded by j-santander (#83)

- bug fix: reduced server list is displayed instead of the normal list (#657)


### 3.5.12 (2020-10-03) ###

- added hyperlink support for the chat window, coded by jc-Rosichini (#591)

- added new menu entry "Clear All Stored Solo Settings" (#616)

- fade in all clients at the server when entering a server to avoid the volume
  is at 100% when joining a server (#628)

- added a qmake CONFIG flag for disabling the automatic version check (#370)

- avoid confusion with the Server Address field on the connection setup window by
  no longer showing the server name in that field since it is only intended for
  entering IP addresses or valid server URLs (#365)

- removed the "Show Creative Commons BY-NC-SA 4.0 Licence Dialog" setting from the
  server GUI and changed the -L/--licence text in the licence dialog to "Do you agree
  to the text in the chat window?" so that a licence text must now be given in the
  server welcome message (#587, #367, #81)

- added a protocol message for a reduced server list to improve the situation caused
  by UDP packet fragmentation (#631, #255)

- added translation: Slovak by jose1711 (#635)

- bug fix: crash when using the jam recorder in the server, coded by pljones (#618)


### 3.5.11 (2020-09-19) ###

- support a check for updates (#370)

- added an optional server list whitelist filter (#413)

- added a command line argument to enable multithreading in the server (#339)

- added support for split protocol messages (fixes bug with large number of clients
  connected to a server, #547)

- store recorder settings, coded by pljones (#313)

- added a command line argument to disable recording on start up, coded by pljones (#574)

- accessibility improvements, coded by chigkim (#498, #512)

- added Jack audio latency calculation, coded by bflamig (#437)

- show the server name in the title bar (#559)

- bug fix: crash when using the Jack backend and quickly reconfiguring, coded by hselasky (#543)

- bug fix: Alt+h shortcut to open the Chat dialog did not work, use Alt+c instead

- bug fix: pan is not correctly initialized in the server on a new connection (#537)


### 3.5.10 (2020-08-16) ###

- do not change the server list order if the mouse is over the table to
  avoid selecting an incorrect server on a mouse double click (#293)

- if network name/address contains spaces, they are removed now,
  coded by dingodoppelt (#462)

- improve Compact skin by using smaller font size

- improve server audio mix processing for better clipping behavior

- support MIDI control faders in headless build (#483)

- option to set Mute Myself on with a command line argument (#495)

- added a red message to indicate that Mute Myself is activated (#476)

- manual clip LED reset by mouse click on the level meter (#421)

- replacing internal history graph functionality by external scripts/tools (#501)

- accessibility improvements, coded by chigkim (#499, #510, #514)

- bug fix: fixed a stability issue in the server

- bug fix: --showallservers ping column sort is alphabetic (#201)


### 3.5.9 (2020-07-19) ###

- new app icon for Jamulus, created by geheimerEichkater (#410)

- support up to four different groups for the channels (#202)

- support sorting faders by channel group

- add support to change the GUI language (#297)

- add special server list filter for filtering occupied servers by using "#" (#397)

- update server UI to allow setting the jam recorder directory (like -R) (#228, #405)

- redesign of the server dialog (e.g. added welcome message setting)

- save and restore mixer state (like fader, mute, etc.) (#377),
  note that saving/loading of settings only works if not connected

- scale channel instrument picture in Compact skin mode

- show maximum number of clients for servers in the serverlist, coded by dingodoppelt (#451)

- log the number of connected clients on each new connection (#277)

- move the Mute Myself button up to prevent accidentally disconnecting

- bug fix: grouping faders in the client should be proportional (see discussion in #202, #419)


### 3.5.8 (2020-06-30) ###

- bug fix: incorrect selection of UI language (#408)


### 3.5.7 (2020-06-28) ###

- add new "compact" skin, intended for large ensembles (#339)

- support sorting faders by channel instrument, coded by Alberstein8 (#356)

- new group switch to change several faders in sync, coded by Alberstein8 (#202, #379)

- support a clip LED, coded by fleutot (#220)

- add server recording indicator, coded by pljones (#295)

- support for storing/recovering the server window positions (#357)

- add a headless build type which does not depend on QtGui/QtWidgets, coded by marcan (#322)

- the local pan middle position is no longer attenuated in Mono-in/Stereo-out mode (#353)

- added translation: Brazilian Portuguese by melcon (#372)

- add send button to chat window (#384)

- add some protections to the code, coded by atsampson (#380, #381, #382)

- bug fix: server window stop updating after minimized, coded by AronVietti (#355, #383)


### 3.5.6 (2020-06-09) ###

- support sorting faders by channel name (#178)

- enable/disable recording from command line, coded by pljones (#228)

- add Audacity "list of files" writer to jam recorder, by pljones (#315)

- make level meter LED black when off, by fleutot (#318)

- added ukulele/bass ukulele instrument icons created by dos1 (#319)

- avoid showing IP address if no name in the musician profile is given (#316)

- show channel numbers if --ctrlmidich is used (#241, #95)

- added check in acknowledge message, coded by atsampson (#302)

- bug fix: on MacOS declare an activity to ensure the process doesn't get throttled
  by OS level Nap, Sleep, and Thread Priority systems, coded by AronVietti (#23)


### 3.5.5 (2020-05-26) ###

- added banjo/mandolin instrument icons created by atsampson (#283)

- faster update of musicians list in the server list table

- display recorder state and latest recording directory in the server GUI,
  allow a new recording to be requested, by pljones (#228)

- New Client Level now also applies if you enter a server

- bug fix: honour own fader and Mute button in Mute Myself (#148)

- bug fix: audio fader sliders cannot be moved if the main windows is too small (#292)

- bug fix: server gain calculations were incorrect (introduced in version 3.5.4)


### 3.5.4 (2020-05-24) ###

- introduce genre-based server lists (#139)

- implement panning for channels, coded by tarmoj (#52, #145)

- added an indicator that another client has muted me (#257)

- move central server type dropdown to connection setup (#157)

- added vocal bass/tenor/alto/soprano instrument icons created by Alberstein8 (#131)

- support intermediate Reaper RPP file while recording, coded by pljones (#170)

- save client settings on Linux cmdline termination signal, coded by pljones (#70)

- added translation: Italian by dzpex (#249)

- bug fix: fixed misaligned tracks in recordings, coded by snayler, improved by pljones (#234)


### 3.5.3 (2020-05-15) ###

- correct unregister of headless server and RPP file creation on
  SIGINT/SIGTERM, coded by pljones (Tickets #130, #168)

- for CoreAudio and 4 channel input, support mixing channels 1&2 with 3&4

- added bassoon/oboe/harp instrument icons created by dszgit,
  congas/bongo created by bspeer (#131)

- link to docs from application Help menu (#90)

- support Mac CoreAudio aggregated devices (#138)

- added translations: French by trebmuh, Portuguese by Snayler,
  Spanish by ignotus666, Dutch by jerogee, German by corrados (#77)

- new design for the About dialog (#189)

- new command line option -d to disconnect all clients on shutdown of the server (#161)

- bug fix: for mono capture Jack audio interface Jamulus complains it
  cannot make connections (#137)

- bug fix: fixed that Jamulus segfaults when jackd is restarted (#122, #127)

- bug fix: better handling of disconnect message in the client

- note: Jamulus is no longer compatible to Qt4


### 3.5.2 (2020-04-24) ###

- use audio level meter bars for normal skin

- store Show All Musicians setting in the ini-file

- improved Mac installer, coded by doloopuntil

- support to open ASIO driver setup(s) if startup failed due to incorrect driver settings (#117)

- added -v/--version command line argument to output version information (#121)

- added bodhran and other instrument icons, bodhran created by bomm (#131)

- bug fix: if small network buffers are used we get much better audio quality when drop outs occur

- bug fix: if names given with the -o option were too long, the server registration failed (#91)

- bug fix: audio level changes if Buffer Delay is changed (#106)

- bug fix: do not reset fader level meters if number of clients change

- bug fix: fixed a crash with JackRouter 64 bit ASIO driver (#93, thanks to elliotclee)


### 3.5.1 (2020-04-18) ###

- added a Mute Stream button to hear your signal and the signal of the other clients but
  do not transmit your signal to the server so that the other clients cannot hear you

- added Enable Small Network Buffers switch to enable small sound card buffers in
  combination with legacy OPUS packets since OPUS packets with 64 samples enable low
  latency but can increase audio drop outs

- upgrade OPUS codec library to v1.3.1 by doloopuntil

- server list registration status indicator added to the server GUI, coded by pljones

- improved auto jitter buffer for 64 samples frame size

- the ping times in the server list are now more stable


### 3.5.0 (2020-04-15) ###

- added support for 64 samples OPUS packets in the client (if a sound card buffer size
  larger or equal than 128 samples is chosen, the legacy 128 samples OPUS packets are used)

- added a filter for the server list to, e.g., filter a specific country or search for a musician

- refresh server list if the Central Server address type is changed

- the unit of the mixer faders is now dB using the range -50 dB to 0 dB

- increased LED luminance (#71)

- bug fix: the server welcome message may appear twice if the server list was double clicked


### 3.4.7 (2020-04-11) ###

- added support for alternative Central Servers to solve the 200 server registration limit (#50)

- added support for 64 samples frame size in the server (if server runs in 64 or 128 samples
  mode it is still compatible to both, 64 and 128 samples frame size clients)

- added multichannel CoreAudio support, coded by emlynmac (#44)

- fixed server not visible if in same local network, coded by pljones (#27)


### 3.4.6 (2020-04-09) ###

- added support for channel meters, coded by pljones

- added show licence switch in the server GUI

- store fader mute state in the ini file, coded by doloopuntil

- fixed low-res icon issue (#28)


### 3.4.5 (2020-04-04) ###

- audio fade-in at the server if a new client connects

- added a scroll bar to the mixer board to support large numbers of
  mixer faders (a thank you to doloopuntil for his help)

- changed the maximum number of clients supported by the server from 20 to 50

- Windows installer now contains a 32 and 64 bit version of Jamulus (the version to
  be installed is selected automatically according to the detected operating system)

- bug fix: server list ping times may not be accurate and client list may not be retrieved


### 3.4.4 (2020-03-25) ###

- added support for controlling the audio mixer faders with a MIDI controller (MacOS and Linux)

- added command line argument for disabling auto jack connection (#49)

- audio recording for the server, coded by pljones

- SVG server history graph, coded by pljones


### 3.4.3 (2018-05-17) ###

- for ASIO and 4 channel input, support mixing channels 1&2 with 3&4

- bug fix: fixed a crash, running Jamulus on MacOS version "High Sierra"


### 3.4.2 (2017-08-11) ###

- removed old CELT library (minimum compatible version is now 3.3.1)

- show server name in the server list in bold font if it is a permanent server

- Jack can be used instead of CoreAudio on MacOS (using qmake "CONFIG+=jackonmac")


### 3.4.1 (2016-02-10) ###

- show the number of connected clients in the MacOS task bar if more
  than one client is connected

- avoid a single jitter buffer for the auto detection

- the Musicians value in the server list shows a warning if the server is full

- automatic server setting for permanent server flag in the protocol

- bug fix: ping time measurement may be invalid for the Linux OS


### 3.4.0 (2015-12-10) ###

- show the names of the connected clients in the server list


### 3.3.11 (2015-11-26) ###

- added a new client fader level setting

- changed the MacOS audio interface to be future proof (do not use
  the Carbon Component Manager anymore)

- added support for audio channel selection for MacOS


### 3.3.10 (2015-10-20) ###

- changed the default central server URL

- added support for server disconnection


### 3.3.9 (2015-07-12) ###

- another improvement of auto jitter buffer detection in very bad
  network conditions

- support client operation without using a GUI front end

- bug fix: fixed a crash in the MacOS audio interface


### 3.3.8 (2015-03-15) ###

- improved audio quality in bad network conditions

- more realistic overall delay estimation

- improvement of auto jitter buffer detection in bad network conditions

- show info about sound card buffer size if not one of the standard sizes


### 3.3.7 (2015-02-05) ###

- added a musician profile dialog (some settings in the main window
  were removed)

- a tool tip for the fader tag shows the complete musician profile

- the city and skill level can be set in the musician profile

- added new instrument picture for "Guitar+Vocal"


### 3.3.6 (2015-01-25) ###

- support for a country flag icon on the fader tag

- a licence agreement dialog can be requested by the server


### 3.3.5 (2014-07-30) ###

- new compile config options for disabling old CELT, use OPUS in a shared
  library and change the executable name

- added a Linux jamulus.desktop file


### 3.3.4 (2014-02-25) ###

- true stereo reverberation effect (previously it was a mono reverberation
  effect on both stereo channels)

- added a mono-in/stereo-out mode to support special sound cards which have
  mono inputs for the instrument and a microphone but have stereo outputs

- store fader solo state in the ini file

- improved stability of the audio stream by reducing audio drop outs (by
  using a separate socket thread)

- removed unnecessary settings and LED indicators

- bug fix: the fader level could not be changed if the fader was on solo


### 3.3.3 (2013-12-30) ###

- support for storing/recovering the window positions

- added new instrument pictures for "Recorder", "Streamer" and "Listener"

- the solo state of a mixer fader is not exclusive any more and the solo
  state is preserved if the number of mixer faders changes

- more precise sound card latency estimation under Windows

- integrated a new OPUS version: v1.1

- bug fix: support for correct utf-8 storage of names in the ini-file


### 3.3.2 (2013-08-24) ###

- the connection setup dialog can now be opened during a connection

- support for three audio quality settings: low, normal and high


### 3.3.1 (2013-03-24) ###

- enabled the OPUS codec

- store fader level settings

- improved server performance under Linux

- changed the network buffer for improved OPUS PLC performance

- added protocol overhead for DSL line for upload rate calculation

- fixed outstanding renaming from llcon to Jamulus

- bug fix: the overall delay was not correctly calculated


### 3.3.0 (2013-02-24) ###

- renamed the software from llcon to Jamulus

- support for an instrument picture on the fader tag

- a server welcome message can be shown on a connect to the
  server (the message is shown in the chat dialog of the client)

- the source code is now compatible to Qt5

- bug fix: strings in the protocol are now utf-8 coded


### 3.2.2 (2012-07-15) ###

- changed auto jitter buffer property to reduce audio drop outs

- bug fix: mechanism to keep port in NAT of slave server open works now correctly

- bug fix: slave server unregistering may not be successful


### 3.2.1 (2012-02-02) ###

- support for audio device selection under Mac OS

- connect dialog list is sorted by the ping time

- software icon changed

- bug fix: fixed distorted audio with USB sound cards on Mac OS

- bug fix: fixed crash on slave server unregistering


### 3.2.0 (2011-07-23) ###

- new GUI style of the main window, added switch for selecting the GUI style
  in the settings window

- a list of available servers is shown on pressing the connect button, the list
  is managed by a central server, any private server is added automatically if
  the registering setting is enabled

- the jitter buffer size can be independently set for client and server

- improved auto jitter buffer algorithm

- the Qt project file is now used for Linux, too

- ini-file is stored in the home directory instead of the application directory

- added server settings in the GUI for the server list and added ini file
  support to store the settings

- bug fix: fixed Jack audio interface instability


### 3.1.2 (2011-03-02) ###

- show warning in main window if audio delay is too long

- added download link in help menu

- bug fix: solo switch did not work correctly


### 3.1.1 (2010-07-01) ###

- added stereo audio channel support

- added input/output audio channel mapping for ASIO audio interface


### 3.1.0 (2010-03-16) ###

- support for MacOS (using CoreAudio audio interface)

- sound card frame size support for frame sizes other than 128, 256 and 512
  samples

- improvement of network buffer (jitter buffer) in case of small buffer sizes

- all available ASIO sample formats supported

- bug fix for M-Audio Delta ASIO driver


### 3.0.3 (2009-12-05) ###

- accessibility improvements

- show number of connected clients in window title (and therefore in OS task
  bar)

- added "What's this" help text to the GUI controls in the general settings
  dialog, added Tool Tips to some GUI controls

- server logging history grid lines of weekend days are now plotted with
  different line width

- removed ALSA support since the ALSA interface implementation in llcon was
  buggy and will not be maintained in the future

- bug fix: fix for server logging history graph x-axis

- bug fix: fix for disconnect issue at the server


### 3.0.2 (2009-09-21) ###

- new server features: for chat messages the time stamp is also shown, parsing
  of existing log file supported

- updates for help texts

- new design for fader tag

- change for Jack Linux audio interface: ports are only registered and
  connected once when the software is started up

- bug fix: under bad network conditions chat messages were randomly repeated

- bug fix: in case the server was shutdown and restarted during a connection,
  the channel name was not updated correctly at the server


### 3.0.1 (2009-08-23) ###

- use low complexity CELT encoder profile, this lowers audio dropout
  probability on slow computers

- in case "Open Chat on New Message" is not enabled, a hint in the status bar
  is shown when a message is received

- bug fix: buzzing occurred when audio stream was interrupted (e.g. in case
  of network trouble)


### 3.0.0 (2009-08-19) ###

- introduced new audio codec "CELT", not compatible to old versions

- only the sound card frame sizes 128, 256 and 512 are allowed (since other
  frame sizes require additional conversion buffers which introduce delay)

- IMA-ADPCM, MS-ADPCM removed

- since CELT works on 48 kHz sample rate, resampling was removed

- various bug fixes (e.g. disconnecting did not work reliably)


### 2.3.0 (2009-07-09) ###

- new system sample rate of 33 kHz to improve audio quality, not compatible
  to old versions

- added history graph for server logging

- added command line argument for connecting a server at software start-up


### 2.2.2 (2009-05-14) ###

- "Mute" and "Solo" check boxes for each connected client fader

- store previous server URLs

- changes to the main GUI (grouped "local" and "server" settings)

- LED status lights and LED input level meter

- better behaviour on disconnection (introduced disconnection protocol message)


### 2.2.1 (2009-03-29) ###

- bug fix and improvements for automatic jitter buffer size setting


### 2.2.0 (2009-03-13) ###

- added Jack audio interface (Linux)

- simplified settings dialog, complete redesign (removed sound card
  buffer settings, network block sizes settings, added upload rate display)

- improved audio stability (audio interface is not callback based, removed
  intermediate audio buffers, client audio buffer size equals network
  buffer size now)

- added upload rate limitation for server (server decides which network
  parameters to use depending on the upload limit and the number of connected
  clients)


### 2.1.4 (2009-02-15) ###

- added automatic jitter buffer size setting

- speed optimizations to improve audio interface stability

- new default settings (e.g. turn off Reverb by default since it requires
  significant CPU)


### 2.1.3 (2008-11-02) ###

- added sound card selection

- improved ASIO configuration

- added total delay display


### 2.1.2 (2008-08-15) ###

- audio compression type can be selected (IMA ADPCM, MS ADPCM, None)

- security checks for protocol messages (wrong messages could crash the
  software)

- bug fix: ping time measurement problems on Windows OS fixed


### 2.1.1 (2008-08-03) ###

- added a chat window

- the client can select a port number of server additional to the URL

- the server can be operated on an arbitrary port number

- ping time information in general settings dialog added


### 2.1.0 (2008-07-17) ###

- ASIO support


### 2.0.0 (2008-03-29) ###

- first QT4 compatible release


### 0.9.9 (2007-09-10) ###

- new client settings dialog

- at each client a separate audio mix can be generated for all connected clients
  at the server


### 0.9.4 (2006-03-10) ###

- added a protocol mechanism, now it is possible to set the jitter buffer in the
  server according to the setting in the client (they are coupled now)

- removed sample rate offset estimation since it was not used anyway

- internal audio processing in the server is now based on the minimum block
  size (improves latency)


### 0.9.1 (2006-01-28) ###

- initial version

<!-- vim: syntax=Markdown -->
