JJazzLab is a free, open-source, cross-platform desktop application for automatic backing track generation — you enter chord symbols, pick a music style, and it produces a full arrangement with drums, bass, guitar, piano and strings — built for musicians who want a band to practise with, teachers, and composers working at an early stage.
What it is
JJazzLab is a complete, open application dedicated to automatic backing track generation, written in Java and released under the LGPL v2.1. The workflow is simple to describe: the user types in chord symbols, selects a rhythm (a music style), and the application generates a complete backing track with drums, bass, guitar, piano, strings and other instruments. The stated objective is to generate interesting backing tracks — ones that are realistic, non-boring because they carry variations and dynamics, and easily customizable even for complex songs. Architecturally the project is built on the Apache NetBeans Platform, which supplies a reliable and extensible application architecture through plugins, so developers can add music generation capabilities or try new ideas without handling the plumbing themselves.
The concrete problem it solves is arrangement labour. Anyone who wants to hear a chord progression as a full band normally has to either play every part, program MIDI by hand, or hire musicians. JJazzLab replaces that manual arrangement step by turning a chord chart and a style choice into a playable multi-instrument track, and it embeds its own customized software synth based on FluidSynth so it makes sound without any external synthesis setup. For better sounds, the application can be connected to VST plugins through a virtual Midi cable and a VST host.
Key capabilities
- Generates complete backing tracks from chord symbols and a selected music style, covering drums, bass, guitar, piano and strings.
- Produces variations and dynamics so generated tracks are non-boring rather than static loops.
- Keeps generated arrangements easily customizable, including for complex songs.
- Embeds a customized software synth based on FluidSynth, so playback works out of the box.
- Connects to VST plugins via a virtual Midi cable and a VST host for higher-quality sounds.
- Ships a user interface available in several languages, translated by the JJazzLab community.
- Extends through the Apache NetBeans Platform plugin architecture, with the JJazzLab Toolkit — a single standalone jar including all dependencies — exposing the core without a GUI for experimenting with models and algorithms or writing plugins.
Who uses it and how
- Home practice: described as a jam buddy for practising at home or learning new material, with 35,000+ users across 90+ countries.
- Teaching: used as a tool for instruction and demonstration.
- Early-stage composing: used to sketch and hear arrangements before committing to a full production.
- Plugin and algorithm development: developers use the JJazzLab Toolkit to build plugins or test new generation ideas on top of the NetBeans Platform.
- Cross-platform deployment: ready-to-use installers are published for Windows, Linux and Mac.
Getting started
Ready-to-use installers for Windows, Linux and Mac are available from www.jjazzlab.org. The user guide lives at jjazzlab.gitbook.io/user-guide and the developer guide at jjazzlab.gitbook.io/developer-guide.
How it compares
The facts provided name no paid products that this project replaces, and no directly comparable alternative tool, so JJazzLab stands alone in this registry. The technologies named alongside it are components rather than competitors: FluidSynth provides the embedded synthesis engine, the Apache NetBeans Platform provides the application and plugin framework, and VST hosts and plugins are the optional route to better sounds.
When to use it — and when not to
Because JJazzLab is a Java desktop application, there is no database, storage layer or mail service for a self-hoster to operate, and installation is a matter of running the vendor installer. Anyone who needs rendered audio stems, a commercial sample library, or recorded performances rather than MIDI-driven synthesized playback should look elsewhere, since the output quality depends on the embedded FluidSynth engine or on an external VST host the user must configure. The project is active, with 590 stars, 48 forks, 26 open issues and a push on 2026-09-11, but note that the repository itself is thin: documentation and downloads live on the project website and GitBook rather than in the repository.
project readme (upstream, from github) — read inline
JJazzLab
JJazzLab is a complete and open application dedicated to backing tracks generation. You type in chord symbols, select a rhythm (music style), then the application generates a complete backing track with drums, bass, guitar, piano, strings, etc.
The objective is to generate interesting backing tracks, i.e tracks which are:
- realistic
- non-boring (with variations and dynamics)
- easily customizable, even for complex songs
The JJazzLab UI (available in several languages thanks to the JJazzLab community):

JJazzLab embeds its own customized software synth based on FluidSynth. For even better sounds, just connect JJazzLab to VST plugins via a virtual Midi cable and a VST host.
Community
JJazzLab has 35.000+ users from 90+ countries. It’s a jam buddy to have fun practicing at home or learn new stuff. It’s also a great tool for teaching or early-stage composing.
Videos
Check out the demos of the JJazzLab YouTube channel.
An open architecture
JJazzLab is based on the Apache Netbeans Platform which provides a reliable and extensible application architecture via plugins.
Developers can easily add music generation capabilities or try new ideas, without taking care of all the "plumbing".
JJazzLab Toolkit for developers
The JJazzLab Toolkit is a single standalone jar (all dependencies included) which contains the JJazzLab core (no GUI).
It makes it easy to experiment with JJazzLab models and algorithms, or create your own plugins.
Download
Visit www.jjazzlab.org for ready-to-use installers for Win, Linux and Mac.
License
Lesser GPL v2 (LGPL v2.1)
Documentation
https://jjazzlab.gitbook.io/user-guide/
https://jjazzlab.gitbook.io/developer-guide/
Contact
For more information use the Contact page at www.jjazzlab.org