JJazzLab 4.0.2 release notes

Builtin synth FluidSynth

Good sounds optimally configured for JJazzLab. Thanks to FluidSynth you can now easily export a backing track to a mp3 or wav file.

Midi note editor

A full-featured “piano-roll” editor to edit user tracks or customize a rhythm phrase. Midi file drag & drop is supported.

Track overview

You see the content of each track in the mix console. If you want to edit a rhythm track in the Midi note editor, just clone it as a user track.

Bar annotations

Add notes or lyrics to any bar.

Easy Reader window

This window only shows the 2 current measures being played, with chords and annotations/lyrics. Convenient for complex songs.

Set color of sections and chords


And more enhancements and bug fixes, see below.

4.0.2 details

Issue list on GitHub

[enhancement] Add a light theme in addition the default dark theme #402
[enhancement] Make Linux packages depend on FluidSynth 2.2.0 rather than libfluidsynth #401
[enhancement] Add possibility to export Midi file by dragging from the track overview component #398
[enhancement] Add possibility to Export to audio each song track in separate files #397
[enhancement] Notify user if FluidSynth not loaded upon fresh startup #386

[bug] When fresh start, replying NO to "import settings from old JJazzLab version xx" does not prevent import of some settings #410
[bug] Linux problems with FluidSynth 2.1, need to require 2.2 as min version #407
[bug] Wav/Mp3 file filter does not work well in Export to audio file chooser #405
[bug] Can't load homebrew-installed fluidsynth on intel Mac #403
[bug] Null Pointer Exception in PianoRollEditor:1169 #399
[bug] Null Pointer Exception in MixConsoleLayoutManager:78 #396
[bug] Null Pointer Exception in SptEditorImpl:451 #395
[bug] Some custom synth definition files not shown in the output synth drop-down list #394
[bug] Play regenerates music each time, even if song unchanged #392
[bug] Too long "Music preparation..." for specific song/style #391
[bug] JJazzLab MacOS package can only run on MacOS 11+ #388
[bug] Adding/removing a RP in SS_editor compact view settings does not have an immediate effect #384


4.0.1 details

Issue list on GitHub

[enhancement] Embed an audio synth like FluidSynth to enable a fully autonomous JJazzLab package #305
[enhancement] Add a builtin Midi phrase editor #263
[enhancement] Add "Clone as user track" action for rhythm tracks in the mix console #375
[enhancement] Add Export to audio capability (.wav or high-quality .mp3) #366
[enhancement] The "Add Rhythms" buttons should permanently add rhythm files, with option for "current session only" #365
[enhancement] Add Import chords from text/csv #360
[enhancement] Let user change color of chord symbols #359
[enhancement] Add a score notation window for chord inspector #358
[enhancement] Let user add annotations to a bar (can be lyrics or comments...) #357
[enhancement] "Filtered" string red color in instrument selection dialog is difficult to see with dark theme #355
[enhancement] In MixConsole with very long song, UI is too slow to show that a Midi file export drag has started #345
[enhancement] Simplify OutputSynth stuff, link an OutputSynth to each available MidiDevice OUT #333
[enhancement] Add a "Add rhythms" button in the Options/Rhythms #331
[enhancement] Make Create practice song action more visible #329
[enhancement] Move Arranger, Memo, Improvision Support and Notes Viewer menu entries to Tools menu #327
[enhancement] Remove Import/Export buttons in the Options dialog #326
[enhancement] Add a "NC" chord symbol, which makes no sound #324
[enhancement] Add possibility to change section color #321
[enhancement] Add an Easy Reader window to easily follow current chord symbols, whatever the song structure (+ lyrics) #319
[enhancement] "Dissolve" Output Synth Editor into the Midi options #315
[enhancement] Remove the brackets [ ] in the mute rhythm parameter values #312
[enhancement] Many API/design improvements

[bug] Null exception when dragging MixConsole while no song opened #378
[bug] Workaround the "mix console disappeared even after restart" problem #377
[bug] When exporting a single track to Midi, the .mid file lacks Tempo and other initialization Midi events #364
[bug] Song part not created when dragging a section with empty song structure and section time signature was changed #351
[bug] Null pointer exception in somes cases when moving song structure selection with arrow key #350
[bug] Duplicate song action does not replicate editor settings like "sections at new line", zoom factor, etc. #349
[bug] Midi file drag in JJazzLab does not work on MacOS #348
[bug] Exception when using mouse-wheel to transpose a selected chord or change RP value while another TopComponent is active #347
[bug] Song part custom phrase ignored when playing a selection which starts in the middle of the song part #343
[bug] Exception when dragging a toolbar over MixConsole #340
[bug] Accent popupmenu items (stronger, crash, etc.) are not always updated when accent is updated via edit dialog #339
[bug] Multiple warnings when a drums instrument can not be retrieved when loading a song (or MidiMix) #337
[bug] In custom phrase dialog, clicking OK while in Compare mode discards the changes #336
[bug] Csus2 wrongly rendered as Cmaj9 #325
[bug] Freeze when entering hebrew char in chord edit dialog then exit dialog #317
[bug] Chord type C4 or Csus chord symbol not recognized by guitar diagram viewer #316
[bug] Activate Song via song pane popup-menu does not work if song is not selected first #311


JJazzLab 3.2 release notes

Learn faster with tempo auto-increase

  1. Select the bars of a difficult passage you want to practice:


  2. Choose the number of loops and how the tempo gradually increase


  3. JJazzLab creates a practice song ready-to-be-played:


Many bug fixes

See list below.

Details 3.2.1

[enhancement] By default compact view mode should show Rhythm Parameters actually used in the song #310

[bug] Error when JJazzLab 3.2 opens a 3.0/3.1 song file which uses drums transform #309
[bug] Changing drums rerouting does not trigger a backing track regeneration in auto-update mode #306

Details 3.2.0

[enhancement] Facilitate practice: loop selected bars while gradually increasing tempo #294
[enhancement] Tempo Factor RP viewer should also show the absolute tempo in addition to %tempo #300
[enhancement] Upon play, when possible, check consistency between OutpuSynth and Midi out device #297

[bug fix] User phrase does not sound anymore in multi-sections song if changed and in auto-update mode #299
[bug fix] Save button remains disabled even after a change in the mix console #293
[bug fix] Changing rhythm resets the compact view #291
[bug fix] Tempo factor has no effect if on first song part #301
[bug fix] IllegalArgumentException when duplicating a song with 2 different signatures #304
[bug fix] Null pointer exception when creating a last section with a different time signature via the bar edit dialog #303
[bug fix] Tempo factor change not taken into account in some cases #302
[bug fix] Sometimes all RPs are visible despite Compact View mode is ON #298
[bug fix] MusicXML import fails with exception: superclass access check failed: class nu.xom.JDK15XML1_0Parser #295
[bug fix] In the MixConsole, shift+drag volume slider does not work as expected #292

The online doc has been updated with the new features.


JJazzLab 3.1 release notes

Toggle compact/full view in song structure editor

Use the button (or press V) to switch between compact or full view. Adjust the visible rhythm parameters in the compact view settings. These settings are saved with the song.

Compact view image

Simplified usage of adapted rhythms

If you change the time signature of a section, an adapted rhythm is automatically created with the new time signature. If you don’t want this adapted rhythm, just select a different rhythm.

Simpler adapted rhythms

Many bug fixes

See list below.

Details 3.1.0

[enhancement] Song structure editor compact view: add a way to quickly show/hide some RPs #274
[enhancement] Save the compact view settings with the song #270
[enhancement] Simplify creation of AdaptedRhythms #278
[enhancement] Add Yamaha MX88 .ins definition file #279
[enhancement] Add support for MacOs aarch64 #289
[enhancement] Upgrading to Netbeans13 + JDK17 + XStream1.4.19 #287. This might solve the "slow open file" bug?

[bug fix] Default Midi remote command for play/pause does not work #272
[bug fix] Midi Learn should discard messages like Active sensing, Midi clock messages, channel pressure, etc. #275
[bug fix] Exception when loading a song with an empty user phrase #286
[bug fix] "OK to close this song without saving changes ?" prompt even if no song change happened #284
[bug fix] No guitar diagram shown for semi-diminished chords (eg Am7b5) #277
[bug fix] Drums transform Rimshot2Snare wrongly saved as Snare2Rimshot #288
[bug fix] Copy & paste RP Transform Drums value fails when pasting on multiple RPs with different time signatures #273
[bug fix] Keyboard shortcut ctrl-down does not transpose the selected chord symbols #268


JJazzLab 3.0 release notes

Dark Theme with improved graphics

Light Theme is gone, it was too much work to maintain 2 themes.

Auto-update of the playing backing track

When a backing track is playing, changing chord symbols or rhythm parameters (e.g. change variation, add a drums fill, etc.) will immediatly update the backing track (no more need to press Stop then Play again). You can turn this off via the toggle button shown below.

Auto-update button image

Improved rhythm selection dialog

You can now preview the different variations of a rhythm, permanently delete a rhythm file, or open the directory of a rhythm in a file explorer.

New Drums Transform rhythm parameter

For example, in just 1 click you can transform hi-hat notes into ride cymbal notes in the verses of your song, or add percussions in the chorus parts, etc.

New Custom Phrase rhythm parameter

For example use your own bass line for the chorus song part. To add notes to your custom phrase, drag & drop a Midi file or open an external Midi editor from JJazzLab (you can configure one in the General panel of the Options, for Windows I recommend MidiEditor, a lightweight and free software).

Copy/Paste rhythm parameter values

For example apply your custom percussion phrase to other song parts.

Copy paste rp value image

Jump to previous/next song part

Use F1/F2 from the keyboard. These commands can also be used remotely via Midi, see “Midi input and Midi remote commands” below.

Previous/Next song part commands image

Notes viewer

View notes of the selected chord symbol, or from a playing track.

Notes viewer guitar Notes viewer piano

Improvisation help

JJazzLab generates guidelines in your chord leadsheet for selected improvisation exercises. JJazzLab 3.0 proposes 3 exercises from the great book “How To Improvise” by Hal Crook. Others will be added in future versions (your inputs are welcome!).

Midi input and remote Midi commands

You can trigger music control actions (play, stop, …) from any Midi input sequence via Midi Learn.

(Pseudo) arranger keyboard mode

Select a song part, press the Arranger Play button and JJazzLab will recognize the chords received on Midi input and update the backing track accordingly.

IMPORTANT: This is NOT a true realtime arranger mode, it’s more for educational purpose.

User tracks

Add one or more user tracks to your backing track. To add notes to the user track drag & drop a Midi file to the user rectangle area, or open an external Midi editor from JJazzLab (you can configure one in the General panel of the Options, for Windows I recommend MidiEditor, a lightweight and free software).

IMPORTANT: JJazzLab does not support Midi input recording.

Export Midi files via drag & drop from the Mix Console

You can easily export the whole backing track or just one instrument track using drag & drop from the Mix Console. This is convenient when working with a DAW (Cubase, Reaper, etc.) with JJazzLab.

Export via drag drop image

Adjust audio latency

Sometimes audio notes (the notes you hear) lag a bit behind the user interface changes. This depends on your hardware configuration. You can now fix this by adjusting the audio latency from the Output Synth Editor.


  • New keyboard shortcut Shift-SPACE to stop a song (SPACE is play/pause)
  • New popup menu action “Insert section” in the chord leadsheet editor
  • API design improvements
  • Improved JavaDocs
  • Bug fixes

Details 3.0.3

[bug fix][high priority] Drums Transformer and possibly Custom Phrase rhythm parameters have no effect at all! #264
[bug fix] Drums transform RP: mix knobs should impact the transformed phrase, not the original phrase #267
[bug fix] Make sure MixConsole reappears upon JJazzLab restart after exception #261
[bug fix] NullPointerException when changing Midi input chord after Arranger is stopped #260
[bug fix] Missing resource exception in MusicController if no Midi output device set #259
[enhancement] Use Eclipse Adoptium JDK 11.0.14 #266

Details 3.0.2a

[bug fix] Moved Midi note is not recognized in the custom phrase #256 
[bug fix] A few translations are not complete #253
[bug fix] Exception when importing MusicXML or Improvisor #249
[bug fix] Exported Midi file can be invalid when Precount is enabled #247

Details 3.0.1

[enhancement] Use latest JDK AdoptOpenJDK 11.0.13 #229
[enhancement] Move half/double chord leadsheet + duplicate song actions to Edit menu #226
[enhancement] Add a way to show improvisation hints on the leadsheet #224
[enhancement] Transform rhythm phrases, e.g. change hi-hat to ride on a given song part #222
[enhancement] Export to Midi using mouse dragging from the Mix Console #221
[enhancement] Add user tracks for e.g. melody/impro track(s) #219
[enhancement] Add Midi learn capability for Midi remote commands #215
[enhancement] Add possibility to customize instrument phrases on each song part #214
[enhancement] Improve design of icons open/save/undo/redo/play etc. #212
[enhancement] If song is changed while playing, automatically update the sequence when possible #211
[enhancement] Add "Insert Section" action in the Chord LeadSheet popup menu #210
[enhancement] Remove Check for update menu #209
[enhancement] Pseudo arranger keyboard: enter chords via Midi to control JJazzLab playback (not pure realtime) #208
[enhancement] Add a rhythm parameter to alter the velocity of individual drums instruments (eg "make hi-hat louder") #207
[enhancement] Add possibility to show selected chord symbol as guitar chord diagrams or piano chords #206
[enhancement] Add possibility to preview the different variations of a rhythm #205
[enhancement] Delete style files from JJazzLab or explore rhythm folder of a specified rhythm #204
[enhancement] Add copy/paste rhythm parameter value across song parts #197
[enhancement] Enable RhythmParameter, ie with non enumerable values #196
[enhancement] Improve design of mix console channels, knobs + slider #195
[enhancement] Add commands to make playback jump to the next song part (or previous one) #193
[enhancement] Add a way to take into account output synth audio latency #192
[enhancement] Add way to compensate for the output synth audio latency #191
[enhancement] Add piano keyboard to show backing track notes in real time #190
[enhancement] Upgrade to AdoptOpenJDK 11.0.10-9 #187
[enhancement] Add shortcut to stop and reset playback (shift-space) #184
[enhancement] Remove the non-API/SPI classes from the online javadoc #176
[enhancement][help wanted] Add customizable Midi input remote commands (play/pause, stop, next song part, previous song part) #161

[bug fix] Playing bar in chordleadsheet editor sometimes hidden on first row (incorrect scroll) #227
[bug fix] Build sequence exception when several song parts use an adapted rhythm #220
[bug fix] Song mix file is ignored when the song contains an adapted rhythm #218
[bug fix] Play selection on a chord leadsheet does not take into account the selected song part #189
[bug fix][high priority] In-place editors don't work with Dark Theme (mix console, song part name, ...) #188
[bug fix] NullPointerException in some cases when changing RhythmProvider in Rhythm selection dialog #186