Only this pageAll pages
Powered by GitBook
1 of 39

English

Loading...

Loading...

Loading...

Loading...

Sounds

Loading...

Loading...

Playback control

Loading...

Loading...

Editors

Loading...

Loading...

Loading...

Loading...

Loading...

Songs

Loading...

Loading...

Loading...

Rhythms

Loading...

Loading...

Tools

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Rhythm engines

Loading...

Loading...

Loading...

Loading...

Loading...

Contribute

Loading...

Loading...

Other synths

Connecting JJazzLab to other synths via Midi.

In general we recommend to use FluidSynth: no setup and decent sounds.

But if you have a high-quality hardware or software synth (VST, AU, AAX, ...), you can use it with JJazzLab via a Midi cable or a a virtual Midi cable/device (such as LoopMIDI for Windows).

Connecting a Midi synth to JJazzLab

In the Midi tab of the Options/Preferences :

  • Unselect "use FluidSynth"

  • Select a Midi OUT device

  • Select an Output Synth which describes the capabilities of the connected synth.

The Output Synth information allows JJazzLab to directly display and select synth sounds/instruments from the mix console. The information is also used to remap drums notes when needed (Yamaha styles use XG drum maps, but your synth may not).

If you hear wrong instruments (for example piano notes instead of bass notes, etc.), or if you can't select instruments from the , it usually means that your Output Synth information does not match your connected synth. For example you connected a non-GM synth but the Output Synth is set to GM Synth.

There is a predefined list of Output Synths as shown below. If your synth has more capabilities, you can use "Add a synth from file..." to load a Midi synth definition file (.ins). See below for more information on the .ins file format.

When using a software synth (e.g. VST plugin), you might prefer to control sound selection and mix settings (volume, effects, etc.) directly from the VST plugin interface. In this case you should from the JJazzLab mix console, so that JJazzLab only sends Midi notes.

Midi synth definition files (.ins)

JJazzLab can read Cakewalk instrument definition files (.ins). Those files are used by many DAWs, search the web for more information about the .ins format.

An .ins file defines a Midi synth with its list of instruments and how to select them via Midi (Bank Select/Program Change values).

JJazzLab .ins format extensions

These .ins format extensions are not mandatory to use for JJazzLab to work. But they are required if you have a custom .ins file and want to fully benefit from the JJazzLab features in order to get better sounding backing tracks.

The standard .ins file format lacks some information for JJazzLab to fully optimize instrument selection and drum map conversion.

For an optimum use JJazzLab needs:

  1. For melodic instruments: its GM substitute instrument Example: the GM substitute for the XG instrument ‘12 String Guitar’ is the GM instrument ‘Steel Guitar’

  2. For percussion instruments/drum kits: its type and its drum key map

Therefore some (optional) keyword extensions have been introduced, "{{ xxxx }}", as shown in the examples below.

There are also 2 special keyword extensions if your synth is GS compatible:

mix console
Disable all Midi parameters
;
; {{ SubGM1= }}
;
[PRE1]
0=Pn:Full Concert Grand {{ SubGM1=0 }}       ; substitute = GM Acoustic Piano
1=Pn:Rock Grand Piano   {{ SubGM1=1 }}       ; substitute = GM Bright Piano 
2=Pn:Mellow Grand Piano {{ SubGM1=0 }}       ; substitute = GM Acoustic Piano
5=Pn:Aggressive Grand   {{ SubGM1=1 }}       ; substitute = GM Bright Piano
...
18=Pn:CP 1979           {{ SubGM1=3 }}       ; substitute = GM Electric Grand Piano
19=Pn:CP70 Chorus       {{ SubGM1=3 }}       ; substitute = GM Piano
...
;
; {{ DrumKit= type, keymap }}
;   type=STANDARD, POWER, ROOM, ELECTRONIC, ANALOG, JAZZ, BRUSH, ORCHESTRA, SFX
;   keymap=GM, GS_GM2, XG
;
[DR:PRE]
0=Dr:Power Standard Kit 1   {{DrumKit=POWER, XG}} 
1=Dr:Power Standard Kit 2   {{DrumKit=POWER, XG}} 
2=Dr:Hyper Standard Kit     {{DrumKit=STANDARD, XG}} 
3=Dr:Dry Standard Kit       {{DrumKit=ROOM, XG}} 
...
; For GS-compatible synths only
; {{ UseGsInstruments }}       => For melodic instrument selection a GS Sysex message will be sent to make sure channel is in melodic mode
; {{ UseGsDrumsInstruments }}  => For drums instrument selection a GS Sysex message will be sent to make sure channel is in percussion mode
;
[JJazzLab SoundFont (GS)]
BankSelMethod=1                                ; Use Bank Select MSB only
Patch[0]=GM Bank  {{ UseGsInstruments }}       ; This bank stores GS melodic instruments
Patch[128]=Bank 1 {{ UseGsInstruments }}       ; This bank stores GS melodic instruments 
Patch[256]=Bank 2 {{ UseGsInstruments }}       ; This bank stores GS melodic instruments
...
Patch[*]=Drums    {{ UseGsDrumsInstruments }}  ; This bank stores GS drums instruments
...

Improvisation help

If you study improvisation, JJazzLab proposes a few useful exercices from Hal Crook's book "How to improvise".

JJazzLab will generate a "guide" to help you perform the selected exercise on the active song.

The Play/Rest exercise applied on the active song

Rhythm engines overview

The rhythms are made available by rhythm engines.

Thanks to its open-source and pluggable architecture, JJazzLab can host many different rhythm engines. If you’re a developer you can build your own quite easily!

A rhythm engine has one or more rhythm providers which propose a list of supported rhythms and the supported rhythm parameters. You can see the list of all available rhythm providers in the rhythm selection dialog.

JJazzLab currently includes one rhythm engine, YamJJazz, which is based on Yamaha styles. Its rhythm parameters are Variation, Intensity and Fill (other parameters such as Mute or Tempo Factor are generic and work with any rhythm).

Future rhythm engines

Here some examples of what could be developed using the JJazzLab-X infrastructure.

  • An AI-based jazz oriented engine with only one versatile rhythm which adapts to different contexts, like a real band (slow or fast tempo, walking bass or not, etc.).

  • A drum engine similar to the Logic Pro X virtual drummer

  • An engine able to adapt the backing track to a given melody

  • A “meta-engine” which lets you combine individual tracks from various rhythms (e.g. combine a hip-hop bass line with latin drums)

  • An engine able to read style files from Band-In-A-Box or other arranger keyboards such as Korg or Ketron

  • etc.

  • Video tutorials

    For starters

    15 min. tutorial

    10 keyboard shortcuts you need to know

    4 quick tips

    JJazzLab, Reaper and VST plugins

    This video is done with Reaper, but the approach remains the same with any DAW.

    Thanks to MINDoSOFT for this video.

    How to make you own Yamaha-extended styles (advanced)

    JJazzLab 5

    A complete and open application for backing tracks generation.

    Want to add or fix documentation? Yes you can!😀 Visit the Improve documentation page.

    JJazzlab 5

    In JJazzLab "rhythm" usually means a music style, like pop or bossa-nova.

    What is JJazzLab?

    🎵 With JJazzLab you quickly create backing tracks for any song, even complex ones. 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.

    🎷 JJazzLab is designed to make non-boring backing tracks, backing tracks with variety, rhythmic accents and dynamics. You can start a solo slowly and gradually build up the atmosphere!

    💻 JJazzLab is open-source with an open architecture: developers can easily add new features and new music generation capabilities.

    Getting started

    and run JJazzLab, then :

    1. Load an example song file : menu File/Open Songs... and select ExampleFiles/BluesMinor.sng

    2. Press the Play button : you should hear the backing track -if not, check the Midi Out device in menu Tools/Options (Preferences on Mac)

    3. Start editing the song using the and hear how it impacts the generated backing track.

    If you prefer to quickly create a new backing track from scratch, check out this video:

    Key features

    • New (rhythm), practice jazz standards with the best walking bass and drums

    • Hundreds of ready-to-use music styles () available

    • Introduce dynamics and variety in just a few clicks, for example:

    Side tools

    • : understand chord symbol notes and scales (piano, guitar diagrams, score)

    • : efficiently practice exercices or difficult passages

    • : control backing track chords via a midi keyboard

    • : get improvisation guides for your chord leadsheet

    FAQ

    Frequently Asked Questions

    I like JJazzLab, how can I help?

    • Donate to keep JJazzLab 100% free, without any ad

    • Help JJazzLab (especially if you speak japanese and korean)

    • to improve this documentation

    • Like the videos and subscribe the

    • Record a video of yourself playing along with JJazzLab: videos will be put on the JJazzLab YouTube channel

    • Spread the word ! Talk and add links to www.jjazzlab.org on social networks, blogs, websites, etc.

    • If you're a developer, contribute code on .

    I use MacOS, I can't find menu Tools/Options?

    On MacOS the Options are accessed via the main menu JJazzLab/Preferences.

    How do I transpose a song?

    1. Select all the chord symbols (right-click menu Select all the chord symbols)

    2. Use the mouse-wheel, or right-click menu Transpose

    Can I use VST/AU plugins with JJazzLab?

    Yes, but not directly because JJazzLab can not host VST plugins.

    1. Install a virtual midi device and a VST Host software on your computer. You'll find on the web free applications for Windows, Linux and Mac. For example use loopMIDI (we recommend to disable its feedback detection in the Advanced settings) and SoundBridge on Windows.

    2. In JJazzLab, go to Midi options and set the Midi out device to loopMIDI

    3. In your VST Host software, set the Midi in device to loopMidi

    How to generate an audio file (.mp3, .wav, etc.) from a JJazzLab backing track?

    From JJazzLab 4, just use menu File/Export to audio -this requires FluidSynth to be the output synth. If you select the option "Separate tracks", one audio file will be generated per track.

    How to force a clean re-installation?

    You need to reset all JJazzLab user settings (uninstall/re-install is not enough).

    The simple way: menu Tools/Options/Advanced, button Reset all user settings.

    The hard way: find the location of your Netbeans user dir in menu Help/About/System Information, exit JJazzLab then delete the Netbeans user dir.

    I don't have administration privileges on my Windows computer, can I install JJazzLab?

    Yes. When first prompted by the JJazzLab installer, select "Install only for me", then select an installation directory where you have write access (in My Documents for example).

    How to get better sounds?

    From JJazzLab 4, the application embeds a ready-to-use software synth (FluidSynth) optimally configured for JJazzLab, with decent sounds.

    To get even better sounds, you'll need to connect JJazzLab to a hardware synth or to via Midi.

    There is a free version of Halion Sonic SE from Steinberg which can be used with JJazzLab to get really good sounding backing tracks, more info on the .

    I have a Yamaha arranger keyboard (Tyros, PSR, ...), how can I use it with JJazzLab?

    JJazzLab can drive your keyboard to benefit from its optimized sounds.

    • Connect your keyboard via Midi

    • Go to the Midi Out tab of Options/Preferences

    • Select the Midi output connected to your synth

    • In the Output Synth part, select Add synth from file..., and choose YamahaRefSynth.ins

    How to make fonts bigger?

    In the JJazzLab installation directory, edit the file etc/jjazzlab.conf and add --fontsize 16 (16 or any other value, default is 11) in the default_options variable, you should end up with something like this:

    default_options="--branding jjazzlab -J-Djjazzlab.version=2.2.0 -J-Dplugin.manager.check.new.plugins=true -J-Dplugin.manager.check.interval=EVERY_DAY --fontsize 16"

    Restart JJazzLab. All menus should look bigger now.

    This won't solve everything though, as some editor fonts do not depend on this setting. But you can tweak some of them using menu Tools/Options/Theme. Check each item in the list and if there is a font defined, change it to make it bigger. The user settings are automatically saved, so you need to do this only once.

    If you use 4K or 5K monitors, JJazzLab may look too small, with unreadable fonts. In this case add -J-Dsun.java2d.uiScale=2 in the default_options variable, like in the example above. JJazzLab will look twice as bigger.

    Can I start JJazzLab with command line arguments?

    You can pass one or more .sng file names on the command line, JJazzLab will open them upon start.

    How to submit a bug? How to find the "log" file?

    Create a new thread in the or, if you're a GitHub user, create an .

    We need the following information in order to help you:

    • Provide the content of the log file

    • Describe what does not work as expected

    • Describe the sequence of actions that caused the issue

    A new log file is created upon each start of JJazzLab. It's important to get the right log file when the problem occured.

    To get the log file content:

    1. After the problem has occured, go to menu Tools/Options/Advanced

    2. Click on Show Log Window

    3. Copy & paste the full content of this window in your bug report

    If for some reason the above does not work:

    1. Go to menu Help/About and find the location of your Netbeans user dir. For ex. on Windows C:\Users\MyName\AppData\Roaming\jjazzlab\2.2 For ex. on Linux /home/MyName/.jjazzlab/2.2

    2. Open an explorer, go to this directory then to the var/log subdirectory

    3. The last log file is messages.log, the previous one is messages.log.1

    If you can't find the Netbeans user dir., make sure your explorer shows the hidden files (e.g. the AppData directory is usually hidden on Windows)

    Commands

    You can control the playback of the backing track using the toolbar below.

    The Metronome and Precount mode depend on the Click settings in the Options menu.

    Keyboard shortcuts

    The shortcuts are given for Windows and Linux. Some of them might need to be adapted for Mac.

    and make sure the VST Host and the VST plugins are configured so that all Midi channels (1-16) are received.
  • Play a song in JJazzLab: you should hear the VST instruments

  • If you don't want to select the VST sounds directly from JJazzLab, you might want to Disable all Midi parameters from the Midi menu in the Mix Console.

  • .
    , the before previous is
    messages.log.2
    , etc.
  • Find the relevant log file and send it with your bug report

  • translate
    Contribute
    YouTube channel
    GitHub
    VST/AU plugins
    JJazzLab forum
    JJazzLab forum
    issue
    # Example on Win10 (x64)
    "C:\Program Files\JJazzLab\bin\jjazzlab64.exe" "C:\my dir\MySong.sng" "D:\AnotherSong.sng"
    mute the guitar in the intro
  • add a break at the end of the 2nd verse and congas in the 3rd verse

  • boost intensity and slightly increase tempo at the end

  • add anticipated (pushed) chords

  • simplify the piano on the first verse

  • Add user tracks to customize your backing track

  • Attach annotations or lyrics to bars

  • Control playback via Midi

  • Import and export song or individual instrument tracks

  • Chord symbols transposition: for transposing instruments (e.g. sax players)

  • Easy Reader window: focus on the current and next chord

  • Install
    editors
    jjSwing style
    rhythms
    Chord inspector
    Practice loop with tempo auto-increase
    Arranger keyboard mode
    Improvisation help

    Jump playback to next song part

    F3

    Jump playback to song start (restart)

    J or -

    Decrease tempo

    K or +

    Increase tempo

    L

    Toggle loop mode

    Key

    Command

    space

    Start / Pause / Resume

    shift-space

    Stop

    ctrl-space

    Start from the selected bar or song part

    ctrl-shift-space

    Play only selected bars or song parts

    F1

    Jump playback to previous song part

    F2

    Using FluidSynth

    The JJazzLab built-in synth.

    It's a ready-to-use synth optimally configured for JJazzLab. FluidSynth should be enabled by default when you first launch JJazzLab.

    If FluidSynth appears disabled, it means that a problem occured while trying to load FluidSynth. Check the installation instructions.

    You can adjust FlulidSynth settings and its default instruments.

    FluidSynth is an open-source project: .

    Midi remote commands

    If you have a Midi controller connected to your computer, you can use it to control JJazzLab playback.

    For example you can start/pause the playback, or skip to the next song part, just by pressing a note on your piano keyboard.

    Remote control via Midi IN is configured from the Midi IN panel of the Options/Preferences, as shown above.

    By default each command is configured to be triggered by a specific incoming note. For example receiving a C1 note (Midi pitch=24) will trigger the play/pause command.

    To configure a command with another note or with different incoming Midi messages, select the command and use Midi Learn.

    Press the Midi learn button to put JJazzLab in a listening mode during a few seconds. Use this time to send the Midi messages which should trigger the command. For example, if you have a Midi keyboard and want to change the note, just press the note. If you have a Midi controller with pads, just activate the pad you want to use.

    JJazzLab will display the Midi messages received which are now associated to the selected command. If Midi messages correspond to a single note, the note is displayed.

    Overview

    Create (or load) a song, then use the editors below to adapt it to your needs.

    Song structure editor lets you define how sections make the final song

    Use the Chord LeadSheet Editor to

    • Add chord symbols, eg "Cm6", "Ab7"

    • Add , eg "A", "B" in 3/4, "verse"

    • Move and edit chord symbols to adjust rhythm accents, or

    • Add or lyrics (optional)

    Visit the page for more information.

    Use the Song Structure Editor to

    • Define the order of sections using , eg "AABA", "verse verse chorus verse", ...

    • Select the (music styles) to be used in the song

    • Introduce dynamics and variations using on each song part

    Visit the page for more information.

    Use the Mix Console to

    • Set the instrument of each track

    • Adjust track volume, panoramic, reverb, chorus, mute, transpose, etc.

    • Add

    Visit the page for more information.

    Use the Note Editor to

    • Edit a

    • an instrument phrase of a song part

    Visit the page for more information.

    Undocking / redocking editors

    To undock an editor, select Float from the popup menu of its tab.

    The image below shows the tab popup menu of the .

    To redock the floating editor, select Dock from the same tab popup menu.

    Use Reset Windows from the Window main menu to redock all editors.

    The chord leadsheet and song structure editors can not be undocked/docked

    Installation instructions

    Windows

    Download and run the setup program at https://www.jjazzlab.org/en/download, which embeds everything you need.

    If you get a Windows Smart Screen alert

    Windows Smart Screen blocks the program NOT because it is a malware (it is NOT!), but just because JJazzLab is new, so Windows security servers don't have enough statistics to evaluate its "security reputation".

    Once enough users will have successfully downloaded and installed it, Windows Smart Screen will not block the program anymore.

    You can find more explanations in this .

    If you don't have admin rights on your computer, choose Install for me only during setup

    MacOS

    You need to manually install FluidSynth first.

    1/ install (>=2.2.0, but avoid 2.4.4 which has a bug)

    I strongly recommend via : brew install fluidsynth

    2/ Download a JJazzLab package and install it

    Mac computers with Apple Mx processor:

    Download the .pkg file at and open it.

    If you get a security alert

    To open the .pkg file anyway, go to your computer Systems settings/Privacy & Security, scroll-down to the Open anyway button corresponding to the JJazzLab package, as explained in this .

    Mac computers with Intel x64 processor:

    .pkg files are not always supported on old MacOS versions, so we propose a .zip file, a basic solution but compatible with many MacOS versions.

    • Download the .zip file at and extract it (open file with Finder)

    • Execute file bin/jjazzlab to start JJazzLab.

    If JJazzLab does not start, make sure that files bin/jjazzlab and jdk/bin/java have read and execution permission ('xr'), as shown below:

    To fix file permissions: chmod a+rx bin/jjazzlab jdk/bin/java

    Linux

    If FluidSynth makes some "crackling" noise, make sure your Linux is optimized for audio applications:

    Using deb/rpm packages

    JJazzLab packages are only proposed in selected formats (.deb, .rpm, ...).

    Download the relevant package for your distro at , then open it with the relevant package manager (examples below) :

    JJazzLab packages declare a dependency on an appropriate FluidSynth package. So the package manager should automatically install it if it's not already present on your system.

    Using the tar.xz package

    The .tar.xz package should work on any Linux distro (x64).

    1. Install FluidSynth (>=2.2.0, but avoid 2.4.4 which has a bug) manually:

    2. Download at and extract the JJazzLab .tar.xz file, e.g tar -xf JJazzLab-4.0.2-linux-x64.tar.xz

    3. Make sure that all extracted files have read permission ('r'), and that bin/jjazzlab

    Special case: libfluidsynth.so.3 in a non-standard directory

    On Linux, JJazzLab uses FluidSynth via its shared library libfluidsynth.so.3 (or libfluidsynth.so). The file is expected to be in one of the standard directories: /usr/lib/x86_64-linux-gnu, /usr/lib, /usr/lib64, /usr/local/lib, /lib

    If you successfully installed FluidSynth (>=2.2.0, but avoid 2.4.4 which has a bug) but JJazzLab can't load FluidSynth, it's possible that libfluidsynth.so.3 was installed in a non-standard directory. Once you found the file location (for example in /tmp/lib/libfluidsynth.so.3), you can tell JJazzLab where to find it:

    • In the JJazzLab installation directory, edit file etc/jjazzlab.conf

    • Add -J-Dfluidsynthlib.path=/tmp/lib/libfluidsynth.so.3 at the end of the default_options variable

    • Start JJazzLab

    JJazzLab embeds its own Java Runtime Engine. You don't have to deal with Java at all. Trying to use a different JRE/JDK will certainly generate problems.

    Using flatpak

    The Flatpak package is NOT a JJazzLab official package, it is kindly provided by a JJazzLab user. Therefore we do not provide support for it. If you encounter problems, please try the other packages proposed on this page.

    Song and mix files

    When you save a song called mySong, JJazzLab actually saves 2 different files:

    • mySong.sng: contains everything except the mix information, i.e. the chord leadsheet, the song structure, the reference to the rhythm used (e.g. "16beat.s456.sty").

    • mySong.mix: contains only the mix information, i.e. which instrument is used by each track, and with which configuration (volume, reverb, pan, ...).

    Why using 2 different files ?

    Because the mix information is specific to your output synth (FluidSynth or a ). Integrating the mix data in the .sng file would make .sng files not portable between users, since users have different output synths.

    When you open mySong.sng, JJazzLab tries to open mySong.mix in the same directory. If mySong.mix does not exist then JJazzLab creates the mix using the file if it's present, otherwise it uses the rhythm's builtin mix (see ).

    When loading a song file (.sng), if the rhythm reference (e.g. "MediumJazz.s637.sst") used by this song is not available, JJazzLab substitutes another rhythm available on the system. JJazzLab tries its best to find a "similar" rhythm based on the name (another "jazz" rhythm in the example above). If it can't find a suitable rhythm, it just uses the default rhythm for the time signature.

    Default rhythm mix

    If you often use a certain rhythm, adjust its mix and save it as a default rhythm mix file, so that each time you'll use that rhythm in a song, it will sound optimally for your output synth.

    How it works

    When you create a song and select a new rhythm (e.g. MediumJazz.s637.sst), JJazzLab looks for a default rhythm mix file (MediumJazz.s637.mix) to initialize the song mix for this rhythm.

    The default rhythm mix lets you define an optimized rhythm mix adapted to your output synth (or a ): for example withMediumJazz.s637.sst you can make the electric guitar quieter, replace the default GM bass instrument by a better one available on your synth, and mute that flute you don't like.

    If the default rhythm mix file is not present, JJazzLab uses the rhythm's builtin mix. The rhythm's builtin mix is infered from the rhythm data and from your output synth capabilities. With FluidSynth the resulting mix should be OK with a few manual adjusments. With a custom synth, it might need more fixes.

    Adjusting and saving a default rhythm mix

    • In the Midi options select your preferred output synth, e.g. .

    • Load a song which uses your favorite rhythm and play it (song mix is initialized with the rhythm's builtin mix if no default rhythm mix is defined)

    • Adjust the mix until you're satisfied with the song rendering

    • Use Save as default rhythm mix from the Mix Console File menu

    The default rhythm mix file is saved in the same directory than the rhythm file.

    JJazzLab will now automatically use this default rhythm mix each time you select the corresponding rhythm in a song.

    If it's defined, you can always reapply a default rhythm mix using Load default rhythm mix from the Mix console menu File.

    If you want to reset the song mix to the rhythm's builtin mix (see above), use Reset channels from the Mix Console Edit menu, as shown below.

    Mix file lookup order

    Combining the 2 paragraphs above, below is how JJazzLab looks for mix information when you load myDir/mySong.sng and this songs uses rhythm 16BeatRock :

    1. use myDir/mySong.mix if present

    2. use defaultRhythmMixDir/16BeatRock.mix if present

    3. use 16BeatRock builtin default mix

    Steps 2. and 3. are also used when you add a new rhythm in a song.

    Song structure

    Use the song structure editor to:

    • Define the order of sections as song parts, eg "AABA" or "verse verse chorus verse"

    • Select which rhythms (music styles) to use and when

    • Adjust the rhythm parameters

    Mix console

    Use the mix console to:

    • Change the instruments

    • Adjust channel settings: volume, reverb, chorus, panoramic, transposition, velocity offset

    • Mute or solo channels

    Chord lead sheet

    Use the chord leadsheet editor to:

    • Add chord symbols, eg Cm6, Ab7, F#9M#11, NC (no chord), ...

    • Add sections, eg A, B, verse, chorus, ...

    • Move and edit chords to adjust rhythm accents, interpretation or harmony

    Notes editor

    JJazzLab embeds a Midi notes editor which is used to or .

    For now the score panel (above) uses a simplified musical notation: notes positions are just aligned with the editor notes, without any embellishment. The score panel is not editable.

    , as shown below.
    custom synth
    default rhythm mix
    below
    FluidSynth
    custom synth
    FluidSynth
    https://www.fluidsynth.org
    and
    jdk/bin/java
    have
    execution permission
    ('
    x
    '), as shown below:
    To add read+execution permissions: chmod a+rx bin/jjazzlab jdk/bin/java
  • Runbin/jjazzlab

  • good article
    FluidSynth
    Homebrew
    https://www.jjazzlab.org/en/download
    Apple online doc
    https://www.jjazzlab.org/en/download
    https://jackaudio.org/faq/linux_rt_config.html
    https://www.jjazzlab.org/en/download
    https://github.com/FluidSynth/fluidsynth/wiki/Download
    https://www.jjazzlab.org/en/download
    https://flathub.org/apps/org.jjazzlab.JJazzLab
    of song parts to introduce dynamics, eg variation, intensity, drums fill, muted instrument, ...

    Song parts

    A song part is linked to a parent section of the chord lead sheet.

    Song parts let you define in which order sections are played, and how. For example you can have a chord lead sheet with only 2 sections verse and chorus, but the song will play verse verse chorus verse chorus.

    A song part has a name, a rhythm and a value for each of the rhythm parameters. Rhythm parameters let you change how the rhythm is played for this song part.

    By default the name of the song part is the name of the parent section. If the song part is renamed, the parent section is shown below the name.

    If some contiguous song parts share the same name, then the name is displayed only on the first song part and a line is shown on the contiguous song parts (see image below).

    Clicking this line will select all the related song parts.

    Editing

    To add a new song part:

    • drag a section from the chord lead sheet into the song structure editor, or

    • right-click menu Insert, or

    • copy an existing song part: drag it while pressing the ctrl key, use copy & paste, or right-click menu Duplicate

    Song parts can be reordered by dragging them using the mouse (use ctrl+mouse drag to duplicatea song part). Copy/cut/paste commands work as well both on song parts and rhythm parameters.

    Edition of song part name, rhythm and parameters can be done directly from the song structure editor using the mouse or keyboard shortcuts, or via the song part editor.

    To edit several song parts or rhythm parameters in one shot:

    • select multiple items with ctrl+click or shift-click

    • Do the edit (for example change the rhythm, or increase intensity)

    Change is applied to all selected items.

    Use the popup menu (right-click on windows/Linux, ctrl-click on Mac) to see commands available for the current selection (song part or rhythm parameter), as shown in the 2 images below.

    Song part popup menu
    Rhythm parameter popup menu

    For most of the rhythm parameters, the easiest way to edit the value is to select it and use the mouse-wheel.

    Some rhythm parameters have a custom edit dialog, which can be called as shown below.

    A rhythm parameter with a custom editor

    Copy & paste can be used to easily duplicate rhythm parameter values.

    Suppose you want to apply the drums transform value from one song part (e.g. ">Open hi-hat" in image above) to other song parts:

    • In the song structure editor, select the original rhythm parameter and Copy (ctrl-C)

    • Select the same rhythm parameter in other song parts (use ctrl-click or shift-click for multiple selection) then Paste (ctrl-V)

    When selecting several contiguous rhythm parameters, you can use the Adjust values submenu in the rhythm parameter popup menu to interpolate values between the first and the last selected values. In the example below, we used it to gradually increase the tempo from 100% to 108%.

    Song part editor

    Song part editor provides an additional way to edit the selected song part(s).

    Use the song part editor to edit rhythm parameters which need user to select (ctrl-click) one or more values from a list, such as the Mute parameter.

    Change rhythm (music style)

    Each song part can have its own rhythm.

    Midi can only accommodate 16 channels, and many rhythms use 7 or 8 instruments. That's why it's difficult in practical to have a song with more than 2 rhythms.

    To change the rhythm, select a song part and press R, or click the rhythm name to open the rhythm selection dialog.

    When changing the rhythm, JJazzLab tries to adapt the values of the previous rhythm parameters to the new rhythm parameters.

    If you want to remove a rhythm change in the middle of a song, select the song part and use Remove Rhythm Change from the song part popup menu.

    Rhythm parameters

    Rhythm parameters let you adjust how a rhythm (music style) is played for a given song part.

    Rhythm parameters are a simple & powerful tool to introduce variations in a backing track, which make it more fun to play with.

    JJazzLab lets the developer of a rhythm engine define custom rhythm parameters. However rhythm engines will often use a common set of standard parameters as described below.

    Variation

    A rhythm parameter to indicate which rhythm (style) variation must be used. The YamJJazz engine rhythms usually have 4 Main variations, plus some Intros, Endings, and Fills.

    Intensity

    This parameter defines the intensity of the generated backing track.

    A rhythm engine might simply increase/decrease the Midi velocity of the backing track notes depending on this parameter, but it could also generate more/less notes, etc.

    Drums Fill

    This parameter defines when a drums fill (or break) should be played at the end of the song part (never, always, randomly, ...).

    The special fade_out value does not produce a drums fill, instead it gradually decreases the notes velocity until the end of the song part.

    Mute

    This parameter is used to mute one of more instruments during this song part. To edit this parameter it's easier to use the song part editor.

    Marker

    This parameter is useful only if you use substitute chord symbols, as explained here.

    Tempo factor

    Use this parameter to slow down or accelerate the tempo of the song part.

    Drums transform

    This parameter lets you change some drums notes for the song part.

    This is an easy way to alter the drums track to introduce some variations in your song.

    For example you can make the hi-hat louder, transform the closed hi-hat into ride cymbal, or just add percussions!

    Custom phrase

    This parameter lets you customize one or more instrument phrases of the song part. Example: you want to change the bass phrase at the end of the second verse Edit the Custom phrase rhythm parameter of the corresponding song part, then edit the Bass track. The default bass phrase will appear in the notes editor and you'll be able to change it. If you want this customized bass phrase to also be used in the last verse of the song, just copy the rhythm parameter value and paste it in the last song part.

    Track overrides

    This parameter lets you use one or more tracks from other rhythms.

    Example: your song uses a 8-beat pop rhythm. You want to spice up the chorus song part and use Track overrides to replace the 8-beat original bass line by the bass line from a bossa-nova rhythm.

    Other usage examples:

    • You like a jazz Yamaha style except the bass line which does not sound good. Use the Track overrides parameter to replace the bass line by jjSwing's realistic walking bass.

    • The override rhythm can be the same than the original rhythm. For example this lets you override the piano part by the bass part from the same rhythm, so that the bass line is doubled piano+bass on a given song part.

    Compact / full view

    By default only a subset of the rhythm parameters are visible, this is the compact view.

    Click on the button below or press 'V' to switch between compact and full view.

    The compact view settings button, just above the compact view button, lets you choose which rhythm parameters are visible in the compact view. These settings are saved with the song.

    Compact view settings

    As a shortcut, you can directly hide a rhythm parameter (i.e. make it non visible in the compact view) by clicking on the X button in the upper left corner, as shown below.

    Mouse shortcuts

    Selection

    Mouse

    Action

    song part, rhythm param.

    click

    select

    song part

    double click

    edit song part name

    song part name

    click

    edit

    rhythm

    Keyboard shortcuts

    Many actions are also available via the context menu (right-click on Windows/Linux, ctrl-click on Mac), and when available the associated shortcut is displayed.

    Selection

    Key

    Action

    song part, rhythm param.

    enter

    edit song part name

    song part, rhythm param.

    R

    select rhythm

    song part, rhythm param.

    I

    insert song part

    song part, rhythm param.

    Add user tracks

  • Load/save .mix file

  • And more: change Midi channel, use special Midi commands, export to Midi file, etc.

  • JJazzLab uses the mix console information to send the relevant Midi messages to the output synth. This is done each time you make a change in the mix console, or when you start the playback.

    Midi has only 16 Midi channels. That's why usually a song can't have more than 2 rhythms.

    Each mix console track has a bottom overview component that represent the track notes.

    Mix console toolbar

    • Master volume: this increase or lower the Midi volume messages

    • M: Mute or Unmute all tracks

    • S: Switch off all Solo tracks

    • Panic: Send a Midi Panic message, switching all notes OFF

    • Add a User track: see below.

    Mix console menu bar

    Menu File

    • Load/Save Default Rhythm Mix

      Update the current song mix by loading the default rhythm mix file. Or save the current song mix as the default rhythm mix file: it will be reused by default each time you create a song which uses the same rhythm. Learn more about default rhythm mix files.

    • Import Mix...

      Note that this will import settings only for the instruments which are common between the current mix and the imported mix.

    Menu Edit

    • Reset channels

      Restore each mix console channel (instrument, volume, panoramic, effect) to its default rhythm setting .

    Menu Midi

    • Enable/Disable all Midi parameters

      By default all Midi parameters are enabled. Use Disable all Midi parameters if you want to control the mix yourself directly on the output synth: in this mode JJazzLab only sends Midi note messages, it does not send Midi messages related to bank/program changes, volume, panoramic or effects.

    • Send GM/GM2/XG/GM mode ON message

      This lets you send special Midi initialization messages to turn your output synth in the desired mode.

    Change instrument

    Click on the instrument name in the channel. Note that this is also where instrument transposition can be adjusted.

    Channel settings

    Use the channel settings to:

    • Add a Midi velocity offset to all notes played on this channel

      Note that this is slightly different from adjusting the volume.

    • Disable sending specific Midi messages

      Probably because you control the parameter yourself directly on the output synth.

    • Enable a drums channel with a Midi channel different than 10

      If you use a basic GM output synth, it can play drums only on channel 10. If drums/percussion are used on other channels in your mix, you need to activate drums rerouting on these channels. Note that JJazzLab may activate this option for you if it detects, based on the current information, potential issues.

    Midi channel

    Each Midi channel can be changed manually, just click on the channel number.

    User tracks

    A user track lets you add your own Midi content to your song: a melody, horn riffs, percussion, etc.

    If you want to customize a rhythm track only for a song part (e.g. simplify the style's bass phrase for the 2nd verse of your song), you need to use the Custom phrase rhythm parameter.

    Adding user tracks

    Click the + button in the mix console toolbar to add a new user track. This will also open the notes editor to edit this user track.

    Add user track button

    You can also clone a rhythm track as a new user track using the + sign in upper right corner of a track overview, as shown below. The original rhythm track will be automatically muted.

    Clone a rhythm track as a new user track

    If you select a drums or percussion instrument for the user track, and your output synth is a basic GM-compatible synth: set the user track channel to 10, and if channel 10 is already used by another track, activate the Drums rerouting to channel 10 (see Channel settings) in your User track.

    Edit a user track

    Edit the user track by clicking on the upper left icon in the user track overview component, as shown below.

    This will open the notes editor.

    A user track has always the same length than your song.

    If you edit a user track, then make the song shorter (e.g. by removing a song part), the user track will be trimmed to the new song size.

    Export to Midi file with mouse drag & drop

    You can export the full backing track to a Midi file by mouse-dragging from the empty area of the mix console. Note that this is the same as the menu File/Export to Midi file, except it's more convenient when you work with another software such as a DAW.

    To export a single track, start the mouse-drag from the track icon or track overview component.

    Export a single track with mouse drag & drop

    Multi-rhythm songs

    When a song uses 2 or more rhythms, a popup is displayed in the upper left corner of the mix console to select the rhythm you want to display.

    Note that some commands such as menu Edit/Reset channels will not be applied to the hidden rhythm(s).

    Mouse shortcuts

    Selection

    Mouse

    Action

    channel volume slider, knobs

    double-click

    Input value with keyboard

    channel volume slider

    shift + mouse-drag

    change volume of all channels

    Add bar annotations (for lyrics etc.)

    Popup menus

    Use the popup menu (right-click on windows/Linux, ctrl-click on Mac) to see commands available for the current selection: bars, chord symbols or sections.

    Bar popup menu
    Chord symbol popup menu
    Section/Time signature popup menu

    Selecting and moving chord symbols

    Click on a bar or a chord symbol to select it. Use ctrl-click to select multiple bars or chord symbols.

    Use shift-click to extend the current selection.

    Drag a chord symbol with the mouse to move it to a new location. If you press ctrl while dragging, a + sign appears (see image below) indicating that the chord symbol will be copied, not moved.

    Chord symbol quantization

    By default a chord symbol position is quantized to a sixteenth note (4 positions per beat).

    This can be adjusted per section via the bar or section popup menu Quantization..., as shown below.

    The auto value adjusts the quantization based on the rhythm (binary or ternary) used by the first song part linked to this section.

    Chord symbols input

    Select a bar or a chord symbol, then type the first letter of the chord symbol (for ex. 'C'), the Bar edit dialog will appear automatically :

    Bar edit dialog

    When a bar is selected, the Bar edit dialog can also be showned by pressing ENTER, double-clicking a bar, or using the right-click menu Edit.

    To copy a chord symbol just drag it while pressing the control key.

    In order to input a lead sheet from scratch, the easiest way is to select the first bar then directly type in the chord symbols (bar edit dialog automatically appears when first letter is typed), press ENTER when done (it automatically selects the next bar), type in the chord symbols for the second bar, etc.

    JJazzLab can recognize different forms of a given chord symbol. For example C-7, Cm7, Cmi7, Cmin7 are all equivalent. You can add your own chord aliases in the Chord Symbols tab of the Options/Preferences, as shown below:

    Define your own chord symbol aliases

    The special NC chord symbol can be used to get a silence until next chord symbol. If the complete silence is too much, you might try a chord symbol with the shot interpretation.

    Customizable chord progressions

    Select a bar and use the popup menu Insert/Chord progression to select a chord progression to insert.

    The chord progression is inserted at the selected bar, replacing existing chords. Additional bars are created if required. Inserted chords are automatically selected, so that you can easily transpose them to the desired key (use the mouse-wheel on a chord, or press ctrl-UP/DOWN).

    Chord progressions are defined in a simple text file ChordProgression.txt located in your JJazzLab user directory. It is automatically created by JJazzLab if it does not exist.

    Use Open configuration file... from the Chord progression... popup menu (see image above) to edit it. This lets you define and organize the chord progressions which appear in the popup menu.

    Changing the size of the leadsheet

    Select a bar then select Set end bar in the right-click menu (see below).

    The size of the song depends on both the leadsheet and the song structure.

    For example, if chord leadsheet only contains a single 12-bar section called A, and song structure is A-A-A, then song size is 3*12=36 bars.

    Interpretation

    Select a chord symbol, edit it (double-click, press enter, or right-click menu), and select the Interpretation tab.

    The Interpretation tab lets you decide how this chord symbol should be played:

    • Normal

    • Accent: add a rhythmic accent and randomly a crash cymbal. You can make the accent stronger, or make sure a crash cymbal is played or not played.

    • Hold: add a rhythmic accent and hold notes until next chord symbol. If extended more instruments are hold.

    • Shot: add a rhythmic accent with chord notes played briefly. If extended more instruments are shot.

    • Pedal bass: bass line will only play the bass note (for ex. F for Fm7 or C for Fm7/C). This setting is on by default when you enter a slash chord.

    Each rhythm generation engine may render these Interpretation parameters differently.

    The shape of the marker below the chord symbol depends on the interpretation mode:

    For example, in order to render:

    you could use the following interpretation parameters:

    See below the keyboard shortcuts to change the interpretation of selected chords.

    Harmony

    Select a chord symbol, edit it and select the Harmony tab.

    The Harmony tab lets you select the scale to be used when rendering the music for this chord symbol.

    Example Suppose that the reference bass line for Eb7M contains a Ab (4th degree of the Eb major scale). If you select the Lydian mode (which has a sharp 11th degree) then the reference bass note Ab will be rendered as A for this chord symbol.

    By default no scale is selected: each rhythm generation engine will decide the "best" scale to use.

    Substitute chord symbol

    Select a chord symbol, edit it and select the substitute chord symbol tab.

    Snapshot to be updated! Alternate > Substitute

    This tab lets you define a substitute chord symbol which will be used when some conditions are met.

    Substitute chord symbols are useful when you need to introduce a slight variation in a part of a song.

    The substitute chord symbol can be any chord symbol, with any interpretation or harmony, or no chord symbol at all (void chord). Chord symbols which have an substitute chord symbol defined are displayed with a different color (see image below).

    Example:

    In the Carlos Santana's "Europa" song, the 1st ending of the theme is a Cm7, but the 2nd one is a C major. To implement this in JJazzLab, one solution could be to duplicate section A1 to create section A2 with the different ending, then update the song structure accordingly. This is perfectly fine, but when changes are minor the substitute chord symbol can provide a simpler solution.

    You can see below (and in the dialog snapshot above) that a C7M substitute chord has been created for Cm7. C7M will be used for all song parts (see the song structure editor) where the marker is set to Theme2. On the image below it means the C7M will be used only for the 2nd song part.

    Snapshot to be updated! ALTERNATE > SUBSTITUTE

    There is another substitute chord symbol example in the 3rd bar: A7. If you listen to the original song you'll notice that they play a A7 on the last beat of the 3rd bar only during solos. So the A7 chord symbol defines its substitute chord symbol as the "void chord symbol" (same as no chord symbol) when marker is not "Solo".

    Sections input

    Typical sections are 'intro', 'verse', 'chorus', etc.

    A Song section is the basic unit used by JJazzLab to define the song structure. There is always a section defined on the first bar.

    To add a section select a bar which is not after the end then:

    • press ENTER, or

    • double-click, or

    • right-click menu, Insert Section... or Edit...

    Section names must be unique.

    Force a section at new line

    You can force a section which is not on the first bar of a row to start on the next line. This can be useful when some sections have an odd number of bars.

    Select a bar with a section defined or select the section itself, right-click menu "Force Section at New Line".

    This will result in the display below.

    Bar annotations / lyrics

    You can add annotations to any bar.

    When annotations are hidden, bar with annotations are marked with a post-it (tooltip shows the annotation text).

    Special # syntax for Easy Reader

    Suppose the same bar is used in different song parts. The lyrics for this bar might change depending on the song part. You can prepend # to annotation lines so that the Easy Reader displays only the relevant line.

    Example: for the annotation above, Easy Reader will show "with... you" the first time, "and...you" the second time, and "take...you" whenever the current song part name is "chorus".

    Exporting/importing chord leadsheet as text

    Select some bars or chord symbols and copy them (via menu Copy or ctrl-C/command-C). Then switch to any text editor and paste : the bars/chords are exported as text like below:

    |4/4 Bb9 A7 | Dm7 G13 | Dm7 G13 | Dm7 G13 | | Gm7/Bb | C9/Bb | F7M | |

    Text import works the other way around. Copy a similar text in the clipboard then paste it in the chord leadsheet editor: the correspondings bars/chord symbols are imported in the JJazzLab song.

    Mouse shortcuts

    Selection

    Mouse

    Action

    bar, chord symbol, section

    click

    select

    chord symbol

    double click

    edit using chord symbol editor

    chord symbol

    ctrl-shift click

    hear the chord

    bar, section

    Keyboard shortcuts

    Many actions are also available via the context menu (right-click on Windows/Linux, ctrl-click on Mac), and when available the associated keyboard shortcut is displayed.

    Selection

    Key

    Action

    chord Symbol

    enter

    edit with chord symbol editor

    bar, section

    enter       

    edit with bar editor dialog

    bar

    ctrl-E

    set end bar

    bar

    Opening the notes editor

    Edit a user track

    The notes editor is automatically opened when you add a user track. For existing user tracks, click the edit button in the track overview component, as shown below.

    Rhythm tracks can also be edited with the notes editor by cloning them first as a user track :

    Edit a Custom phrase for a song part

    In the song structure editor, click the top-left button of a Custom phrase rhythm parameter:

    Then select the phrases you wish to customize and press Edit to open the notes editor.

    Moving and zooming

    You can move the editor by pressing ctrl + dragging in the top ruler as shown below:

    You can use the main application zoom sliders in the lower right corner, or use ctrl+mouse-wheel for horizontal zoom, ctrl+shift+mouse-wheel for vertical zoom.

    Use ctrl-F to zoom to fit width.

    Playback controls

    Use the toolbar button shown in the image below, or press ctrl-shift-SPACE, to play in loop mode the edited phrase, or the playback loop zone if it is set.

    Start playback button

    Press ctrl-SPACE to start playback :

    • from the playback loop zone if it is set

    • from the bar of the first selected note

    • if no note selected, from the first visible bar

    Other controls:

    Playback loop zone

    A playback loop zone can be set by mouse dragging in the top ruler. Use shift+click in the ruler to extend the loop zone. Click in the ruler to remove the loop zone.

    Use the toolbar button (see above) of press ctrl-shift-space to start playing the loop zone.

    Snap to grid

    Use the Snap to grid button (or press G) to snap notes to the grid when you draw/move/resize them. The size of the grid can be set using the drop-down list (1/4=quarter note, 1/8=quaver, ...):

    When you move or resize notes with the Select tool, you can temporarily reverse the "snap to grid" setting by pressing alt.

    To change the position of existing notes, use Quantize.

    Edit tools

    You can use 3 tools to modify notes: select tool, draw tool, erase tool. The 2 first edit tools are sensitive to the snap to grid settings.

    Tools can be selected using buttons from the notes editor top toolbar, or by right-clicking in the editor:

    Use the select tool to select, move, resize, copy/cut (ctrl-C/X), delete notes (press Delete).

    Use ctrl-V to paste notes.

    How to control at which position notes are pasted ?

    • If a note is selected, the first pasted note is aligned with that selected note

    • If no notes selected, the first pasted note is aligned to the left side of the notes editor

    The new pasted notes are automatically selected, so you can move them to the appropriate position if required.

    Drag to select several notes. Use ctrl-drag notes to duplicate notes. ctrl-shift-I invert the notes selection.

    Use the draw tool to draw notes, and the erase tool to erase notes.

    Changing notes velocity

    Notes color vary with their velocity. There are several way to change notes velocity, as shown below.

    Using the main editor panel

    First select the notes to change. Then either use the velocity spinner in the toolbar, or use alt + mouse-wheel or alt + page up/down.

    Using the velocity panel

    Click or mouse-drag on notes to adjust their velocity.

    Quantize & humanize notes

    Use the Quantize button or press Q to move the selected notes start position on the current grid. If no note selected, all notes are quantized.

    Check the Iterative box to perform iterative quantize : notes are gradually moved towards the grid. This is usually recommended to avoid a too mechanical sound.

    You can also humanize all or selected notes. Humanization introduces slight random variations in the notes start position and velocity. Use the Humanize button on the left, or press ctrl-H to show the Humanize dialog.

    Once you clicked the Humanize button, you can adjust the humanization parameters and see the different results.

    Example

    This bass line is very uniform: all notes have the same velocity and are quantized. This sounds too "robotic".

    We can use the Humanize dialog to improve this, as shown below.

    Importing notes

    You can import notes by dragging an external Midi file into the editor. You can also drag from an individual track in the mix console.

    Importing a Midi file in the editor

    If the imported Midi file contains notes from several Midi channels, then JazzLab only imports the notes which match the editor Midi channel.

    If the imported Midi file only contains notes from a single channel, then JJazzLab imports the notes with the channel updated to the editor Midi channel.

    Mouse shortcuts

    Notes

    ctrl-click

    select multiple notes

    Editor

    drag

    select multiple notes

    Notes

    drag

    move/resize

    Notes

    ctrl-drag

    duplicate notes

    Notes

    Keyboard shortcuts

    Selection

    Key

    Action

    Notes

    alt-up/down

    change velocity

    Notes

    ctrl-C/X/V

    copy/cut/paste notes

    Notes

    delete

    delete notes

    Notes

    edit user tracks
    song part custom phrases
    Melodic track
    Drums track
    Simplified score
    sections
    interpretation
    harmony
    bar annotations
    chord lead sheet
    song parts
    rhythms
    rhythm parameters
    song structure
    user tracks
    mix console
    user track
    Customize
    note editor
    Song part editor
    Note editor
    On Windows or Linux, the editor tab popup menu appears when you right-click on it
    The floating editor can be moved and resized independently of the main window

    Practice loop with tempo increase

    Loop selected measures with gradually increasing tempo! This is perfect for practicing exercises or difficult passages - start slow and build up speed progressively with each repetition.

    Select the bars to be looped, then choose Practice selected bars... in the bar popup menu:

    Then you need to setup the loop parameters:

    Adjust the start/final tempo and the number of loops, then click on Create Song.

    You're ready to play the song and start practicing! You can save this practice song if you want to reuse it.

    Adapted rhythms

    If you change the time signature of a section, JJazzLab will use an adapted rhythm for the impacted song parts. This is simply the same rhythm but shortened or repeated to fit the new measure size.

    You’ll notice that the adapted rhythm does not need additional channels in the mix console: it uses the Midi channels of its source rhythm (fastbossa.s629.prs in the example above).

    If you don’t want the adapted rhythm, juste replace it using the rhythm selection dialog.

    Importing songs

    JJazzLab can import songs from different file types using the menu File/Import songs...

    Batch convert mode

    If you have many files to import, you should use the batch convert mode. This modes directly imports and converts to .sng files, without opening the imported files in JJazzLab. Created .sng files will be located in the same directory than the imported files.

    To activate the batch convert mode, select corresponding checkbox in the Import Songs... dialog, as shown below:

    Band In A Box song files (.SGU etc.)

    JJazzLab can import .SG* or .MG* song files.

    Only the following Band-In-A-Box data are used to generate the corresponding JJazzLab song :

    • song structure: chorus start, chorus end, number of chorus, tag after, tag start, tag end, 2 bar ending

    • chord symbols: name, position (including optional push settings), rest/hold/shot settings

    • song settings: allow push/rest in first/middle/last chorus.

    The song import feature is not 100% reliable, but most of the files should be OK.

    By default imported songs will be in 4/4. If you know that the imported song is in 3/4, then when import is done just select the initial time signature and use righ-click menu Set time signature to fix the time signature.

    musicXML files (.xml, .mxl, musicxml)

    JJazzLab can import musicXML (.xml, .musicxml) or compressed musicXML (.mxl). It has been tested successfully with musicXML files exported from iRealPro.

    What is imported:

    • Chord symbols

    • Time signatures

    • Section titles such "INTRO", "A", "B" found in direction/direction-type/rehearsal elements.

    • Repeats, endings (1. 2. 3...), tocoda, coda, segno, DC al coda, DC al fine, DS al coda, DS al fine, as found in sound and barline elements.

    Text files (.txt)

    JJazzLab can read chords from text files. 3 formats are supported, GRID-BASED, TIME-BASED, BEAT-BASED.

    GRID-BASED: e.g. "| 3/4 Bb7M | D7#5 | Eb7M | Db7#11 |"

    ! can be used instead of |. % repeats the previous bar. Any bar can start with a time signature.

    Example:

    |3/4 Bb7M | D7#5 | Eb7M | Db7#11 | | Cm7 | G7 | C7M | | |4/4 Fm7 | Gm7 C7 | % | F7M |

    This format is compatible with text files exported from ChordPulse.

    TIME-BASED: "pos_in_seconds, chord_symbol"

    The time signature and tempo must be set first so that pos_in_seconds can be converted into bar/beat. If not set, the default values are 4/4 and 120bpm.

    Example: timeSignature=3/4 tempoBPM=60 0, C 3, F7 4.5, Eb7 6, D7

    BEAT-BASED : "bar, beat, chord-symbol"

    Note that by default bar and beat are expected to be 0-based (first bar of the song is bar 0). You can change that by adding "useBase1" at the beginning of the file, then bar and beat are expected to be 1-based.

    Example: 0, 0, C 1, 0, F7 1, 1.5, Eb7 2, 0, D7

    Other text format information

    • Lines starting with // are ignored (comments)

    • "title=My song name" : if specified the created song will use this title as name

    • Accepted delimiter characters are , ; or space or tab (time or beat-based format)

    Impro-Visor leadsheet files (.ls)

    JJazzLab can import Impro-Visor (.ls) leadsheet files.

    The import is limited to the time signatures and chord symbols.

    Arranger keyboard mode

    If you have a Midi keyboard connected via Midi IN, you can use it as a (pseudo) arranger keyboard: JJazzLab will recognize the chord symbols played and update the backing track accordingly.

    This mode if for educational purpose only.

    There will be a delay between your chord change and the music change. This is normal because JJazzLab is not designed to work as a realtime arranger keyboard.

    First connect your Midi keyboard to a Midi IN device (see the Midi panel of Options/Preferences).

    Create or open a song, then select a song part. The song part will be used by JJazzLab to know which rhythm and which rhythm parameters should be used during the arranger mode session.

    Display the Arranger window (menu Window) and press its Play button: music should now follow the chords you play on your keyboard.

    Only the notes received below the split note are used for chord symbol recognition.

    While you play you can change rhythm parameters of the active song part (e.g. change the variation).

    Chord inspector

    Use the Chord inspector to see notes (and possibly associated scales) of the selected chord symbol, using various vizualizations.

    Piano keyboard

    If there is a scale set for the selected chord symbol (see the ), the notes of the scale are shown.

    Rhythm files

    In JJazzLab "rhythm" usually means a music style, like pop or bossa-nova.

    Rhythms are used by . Many songs use only one rhythm (e.g. rock), but some may use 2 or more. A song file (.sng) does not contain all the rhythm data, it just keeps a reference to the rhythm's name.

    Upon first start, JJazzLab the computer to get a list of the available rhythms.

    In JJazzLab core, rhythms are made available by . Some rhythms can be based on rhythm files. For example the provides rhythms built from Yamaha style files such as poprock.sty or TripHop.S510.prs.

    sudo apt-get install ./jjazzlab_4.0.2-1_amd64.deb
    sudo gdebi install ./jjazzlab-4.0.2-0.x86_64.deb
    sudo zypper install ./jjazzlab-4.0.2-0.x86_64.rpm

    alt-drag

    move/resize with snap-to-grid setting reversed

    Notes

    alt-wheel

    change velocity

    Editor

    wheel

    move editor up down

    Editor

    shift mouse-wheel

    movbe editor left right

    Editor

    ctrl mouse-wheel

    zoom in/out horizontally

    Editor

    ctrl-shift mouse-wheel

    zoom in/out vertically

    Editor

    ctrl-drag

    Move editor

    Ruler

    drag

    set playback loop zone

    Ruler

    shift-click

    extend playback loop zone

    Ruler

    click

    remove playback loop zone

    ctrl-shift-I

    invert notes selection

    Notes

    ctrl-H

    open humanize dialog

    Notes

    Q

    quantize selected notes (or all no selection)

    Editor

    ctrl-F

    zoom to fit notes

    Editor

    G

    snap-to-grid

    Editor

    A

    auto-scroll during playback

    Editor

    S

    solo the edited phrase

    Editor

    H

    hear the selected notes

    Editor

    Home/End

    Move editor to start/end

    Editor

    ctrl-shift-space

    play the loop zone (if set) or whole phrase

    Editor

    ctrl-space

    play from loop zone (if set) or from first selected note

    Editor

    ctrl-Z/Y

    undo/redo

    Music style information found in the groove type of a play/other-play element.

    Guitar diagrams

    The red dot represents tonic notes (for ex. G for Gm69).

    Most common diagrams for the G69 chord

    By clicking on the button you can switch between different types of positions : most common, open voiced, close voiced, inversions.

    Open voiced diagrams for the Gm69 chord

    Score

    chord symbol editor
    Rhythm files location

    JJazzLab expects rhythm files to be in the User directory for rhythm files. The location of this directory can be changed in the Options/Rhythms, as shown below.

    Rhythm files scanning

    Your rhythm files are scanned at startup only upon a fresh install or an upgrade, and the rhythm list is saved into a cache file.

    You can force a rescan in the Options/Rhythms panel as shown below.

    Rescan button in the Options/Rhythms panel

    You can use up to 2 levels of sub-directories to organize the rhythms in the User directory for rhythm files. Sub-directories whose name starts with an underscore '_' are not scanned.

    This cache file is then used to get the rhythm list upon next startups, which is much faster than the initial scanning -especially if you have many rhythm files.

    Quality of Yamaha style files found on the web vary a lot. Furthermore some styles are

    sometimes “broken” (invalid file format), i.e. can't be loaded by JJazzLab.

    Adding new rhythm files

    Use the Add Rhythms... button from the Options/Rhythms panel (or from the Rhythm selection dialog).

    Add Rhythms... button in the Options/Rhythms panel

    Added rhythm files will be copied to the root of the User directory for rhythm files, and a rescan will be planned on next start.

    In the Add Rhythms... dialog shown below, you can choose to add the rhythms for the current session only, i.e. rhythm files will NOT be copied in the User directory for rhythm files.

    You may add rhythm files only for the current session

    If, outside of JJazzLab, you add or remove rhythm files in the rhythm directory structure, you MUST manually force a rescan, otherwise the added/removed files will not be taken into account.

    songs
    scans
    rhythm engines
    YamJJazz rhythm engine

    click

    select a rhythm

    editor, song part, rhythm param.

    right-click

    open popup menu

    rhythm parameter

    double-click

    edit value

    rhythm parameter

    mouse wheel

    change value

    rhythm parameters

    shift+mouse wheel

    make values identical then change value

    editor

    ctrl mouse wheel

    change X zoom factor

    ctrl-I

    append song part

    song part, rhythm param.

    D

    duplicate song part(s)

    song part

    delete

    delete song part(s)

    rhythm parameter

    ctrl-up/down

    next/previous value

    rhythm parameter

    Z

    reset param. value

    song part

    ctrl-C/X/V

    copy/cut/paste

    editor

    ctrl-Z/Y

    undo/redo

    editor

    ctrl-F

    zoom to fit width

    editor

    V

    compact or full view

    editor

    ctrl mouse-wheel

    zoom in/out horizontally

    editort

    ctrl+shift mouse-wheel

    zoom in/out vertically

    double click

    edit using bar editor

    bar, chord symbol, section

    right-click

    popup menu

    chord symbol

    mouse-wheel

    transpose

    editor

    ctrl mouse-wheel

    zoom in/out horizontally

    editor

    ctrl-shift mouse-wheel

    zoom in/out vertically

    I

    insert bars

    bar

    delete

    clear bar contents

    chord symbol, section

    delete

    remove

    chord symbol, section

    ctrl-left/right

    move item one bar left/right

    bar

    shift-delete

    remove

    chord symbol

    ctrl-up/down

    transpose

    chord symbol

    P

    change interpretation

    chord symbol

    S

    stronger accent

    chord symbol

    H

    crash cymbal/no crash

    chord symbol

    X

    hold/shot more instruments

    chord symbol

    M

    hear the chord

    chord symbol, section

    ctrl-A

    select all in section, then in lead sheet

    bar, chord symbol, section

    ctrl-C/X/V

    copy/cut/paste items

    editor

    ctrl-Z/Y

    undo/redo

    editor

    ctrl-L

    Show/hide bar annotations

    editor

    alt-L

    Insert bar annotation

    editor

    ctrl-W

    close song

    User tracks
    output synth

    Easy Reader

    The Easy Reader (menu Tools/Easy Reader) always shows the 2 currently playing bars.

    It's make it easy to follow the playing chords and lyrics, even for of a complex song with many song parts.

    When a bar annotation uses the special # syntax, only the relevant part of the annotation is shown.

    Like most of the JJazzLab windows, you can undock the Easy Reader window to place it wherever you want (use the right-click menu of the window title):

    Exporting songs

    The exported file takes into account the current playback configuration:

    • Output synth configuration

    • Mix console settings such as track's instrument, volume, mute state, etc.

    • Precount, click and tempo settings

    • The settings

    Export to Midi

    You can export a whole song to Midi via the menu File/Export to Midi file...

    You can also export individual tracks by .

    Midi file format

    Exported file is a multi-track type 1 Midi file.

    Each instrument track (from track 1) is initialized using the corresponding mix console track setting. Track 0 contains:

    • If required, GM/GM2/GS/XG Midi initialization messages (depends on the output synth configuration)

    • Tempo and time signature events

    • Markers for chord symbols

    Export to audio

    You can export the whole song to a .wav or .mp3 file via menu File/Export to Audio file...

    Audio export is only available if you use the internal .

    Check the Separate tracks option to export one audio file per track, as shown below.

    YamJJazz rhythm engine

    JJazzLab embeds the YamJJazz rhythm generation engine. This engine reads and introduces a new format which adds more variations to existing Yamaha style files.

    You can see below the 2 YamJJazz rhythm providers available in the rhythm selection dialog.

    Extended Yamaha styles

    The can read a new file format (.yjz) which extends the capabilities of a standard file (.sty, .prs, .sst, etc.). Objective is to enable the design of rhythms with a wider dynamic range, rhythms which sound less repetitive.

    .yjz file can also be used to simply modify the music of an existing Yamaha style, as show in the example below.

    An extended style (.yjz) supports :

    • Unlimited number of variations Instead of Main A/B/C/D, you can have Main A-1, Main A-2, Main B-1, Main B-2, Main B-3, Main C-1, Main C-2, …

    Yamaha styles

    The engine is able to read all Yamaha style files (.sty, .prs, .bcs, .sst, at SFF1 or SFF2 format). You can find some style files on the web, most of them for free. Visit the page for useful links.

    Yamaha styles usually have 4 variations Main A, Main B, Main C, Main D, plus some Intros and Endings.

    Most of the time the variations have the following organisation:

    • Intro A: 1-bar drums-only intro

    Chord symbols transposition

    If you play a transposing instrument (sax alto, sax tenor, flute alto, etc.), use this feature so that chord symbols are displayed transposed. The actual generated music is not changed.

    Such transposed chord symbols appear in italics.

    jjSwing rhythm engine

    The ultimate style for practicing jazz standards

    jjSwing's unique features are:

    • A realistic walking bass with melodic lines, which automatically adjust to the tempo

    • 11 drums variations (brushes, hi-hat, ride, shuffle)

    • Double-time capability (play twice as fast with chord changes at original tempo)

    Intro B: 2-bar intro with a fixed chord sequence (i.e. your intro should contain only one initial chord to set the key)
  • Intro C: same than B but with 4 bars

  • Main A-D: the 4 main style variations, from lighter to heavier

  • Ending A: 1-bar ending with a final chord on 1st beat

  • Ending B: 2-bar ending with a fixed chord sequence (i.e. your ending should contain only one initial chord to set the key)

  • Ending C: same than B but with 4 bars

  • You will also find Fill In AA, Fill In BB, Fill In CC, Fill In DD, Fill In BA variations, which correspond to 1-bar transitions, usually with a drums fill or break. You normally don't have to use them directly because JJazzLab does it automatically at the end of each section, depending on the value of the drums Fill rhythm parameter.

    Each variation can use tracks of the following types:

    • Rhythm (e.g. drums)

    • Sub-rhythm (e.g. percussion)

    • Bass

    • Chord1 (e.g. guitar)

    • Chord2 (e.g. keyboard)

    • Pad (e.g. strings)

    • Phrase1 (e.g. Brass)

    • Phrase2

    Yamaha "Mega Voices”, “Super Articulation Voices”, ...

    Yamaha style files are optimized for Yamaha arranger keyboards. The latest models (Tyros, Genos…) has many voices with special features (e.g "Mega Voices"), especially for guitars which are optimized for style rendering.

    Other keyboards or synths can’t reproduce these special voices correctly. That’s why some recent Yamaha style files (SFF2 format) may not sound right with JJazzLab. If this happens locate the faulty channels using the Solo button in the MixConsole, and lower their volume or mute them.

    Limitations

    JJazzLab is designed to host any kind of rhythm generation engines, and they must work with any kind of output synth, not only the Yamaha keyboards. Therefore some specific Yamaha style file features are not supported:

    • SysEx Midi messages: ignored.

    • Controller messages: ignored.

    • Per-variation sounds: ignored, YamJJazz uses the style’s default sounds for all variations.

    • Yamaha Mega Voices : non musical notes or sound effects (notes above C6) are ignored.

    • Pitch bend Midi messages : ignored.

    • OTS and MDB sections: ignored.

    YamJJazz
    resources
    playback key transposition
    mouse-dragging from the Mix console
    Fluidsynth output synth
    Unlimited number of source phrases for each variation With a standard Yamaha style the same source phrase is always used for a given variation. Alternate source phrases lets the rhythm designer define different-but-similar phrases for e.g Main A-1, which will be used randomly by the YamJJazz engine in order to sound less repetitive.

    A .yjz file is just the extension part of a standard Yamaha style file, the base style. So when you read MyRhythm.yjz, YamJJazz needs to find MyRhythm.sty (or MyRhythm.prs) in the same directory.

    Extended style creation wizard

    This wizard, available in the Tools menu, is used to create a ready-to-be-customized extended style file (.yjz) from a standard Yamaha style file (.sty, .prs, ...). See the video below for how to use it.

    Once created you'll need to manually alter the musical phrases of the .yjz Midi file using a Midi editor or a DAW like Cubase, Ableton Live, etc. Otherwise the new extended style will sound exactly like the base style.

    Simple example : modify Main A of an existing Yamaha style

    Say you want to change the music of the Main A variation of Yamaha style MediumJazzS737.sst.

    Start the Extended style creation wizard, select the rhythm MediumJazzS737.sst, then adjust the settings as shown on the image below.

    Wizard settings to alter only the Main-A section, with no alternate source phrases.

    Once MediumJazzS737-ext.yjz is generated, open it in your Midi editor. If you use Cubase for example, you should see something like this:

    Now you can modify the Midi source phrases as you want, based on the source chord provided in the track name (e.g. C7M for the bass tracks). You must not change the track names or change the duration of the section (8 bars/32 beats here).

    You may see several source phrases for one instrument. In our example there are 2 tracks for the Bass. You should make consistent changes to each of them.

    The reason why this happens in Yamaha styles is beyond the scope of this tutorial. The general idea is to allow specialized phrases for specific cases, e.g. a phrase for minor chords and another one for major chords. Search for the Yamaha style CASM section if you want more information about this.

    When the Midi editing is complete, save your file.

    In JJazzLab start a Rescan in Options/Rhythms.

    Now you can use the new modified style in your song, just select MediumJazzS737-ext.yjz from the YamJJazz extended styles as seen below.

    Video tutorial

    .yjz file format

    If you don’t plan to create your own .yjz file you can skip this paragraph.

    We recommend to use the Extended style creation wizard to prepare a .yjz file ready to be customized (see above).

    The extension file (.yjz) must be associated to a base Yamaha style file (.sty, .prs, .sst, etc.) with the same name in the same directory.

    Overview

    YamJJazz first reads the base style file to get the following Yamaha style information:

    • CASM data: channels parameters for each available variation (used Midi channels, source chords, lower/upper note limits, chord/melody channels, etc.)

    • SINT data: instruments parameters (bank select/program change, volume, …)

    • Musical data: the Midi source phrases for each channel of each available variation

    Then YamJJazz reads the .yjz extension file to get Midi source phrases used to refine the available base variations and to add alternate source phrases.

    If the base style uses variation Main A (example), then it’s possible to define variations Main A-1, Main A-2, Main A-3, etc. in the extension file. The number is called the complexity level. As soon as you define a Main A-x variation in the extension file, it replaces the original Main A variation from the base file.

    If the base file defines variation Main D (example) but the extension file does not define Main D-x, then the original Main D will be used with the name Main D-1.

    If the base style does not have variation Intro B (example), then it’s not possible to define Intro B-x in the extension file.

    Midi format

    .yjz files use Midi format 1, they contain several tracks. Note that .sty or .prs files use Midi format 0, they contain a single track.

    Each track of the extension file must start with a Midi trackname meta event with the following syntax:

    trackname=<base variation>-<complexity level>-<id string>-<phrase length in beats>

    Trackname examples:

    • Main A-1-drums-8

    • Main A-1-bass-8

    • Main A-1-guitar-8

    • Main A-1-guitar_root-8

    • Main A-2-drums-8

    • Main A-2-bass-8

    • Main A-2-guitar-8

    • Main A-2-guitar_root-8

    • Ending B-1-piano-4

    • Ending B-1-bass-4

    For <id string> you can use whatever string you like, but it's a good practice to mention at least the target instrument. If you use the Extended style creation wizard, id string is generated for you and will be something like [Bass, C7M, ch11] : the instrument name, the source chord and source Midi channel.

    All tracks for a given variation must have the same length in beats. But different variations can have different lengths.

    Depending on the CASM data, there might be more than one source phrase for a given instrument (the guitar and guitar_root phrases in the example above). For example one channel can be used for major chords, the other one for minor chords.

    A track should only contain Midi note on/off messages for its source chord and source Midi channel, as defined in the CASM data of the base style. If you used the Extended style creation wizard, you have the source chord and Midi channel indicated in the <id string>, as explained above.

    Alternate source phrases

    To add alternate source phrases for a given variation, just append source phrases on each track of this variation. Each appended source phrase must have the same length than the original phrase.

    Example The source phrase length of track Main A-1-bass-8 is 8 beats (2 bars in 4/4). You can append 2 similar 8-beat source phrases on that track, so the track length becomes 24 beats. YamJJazz will consider the 2 appended phrases as alternate source phrases of the first source phrase, to be used randomly when rendering the Main A-1 bass part.

    Note that 2 alternate source phrases must be also added for all the other Main A-1 tracks: Main A-1-drums-8, Main A-1-guitar-8 and Main A-1-guitar_root-8.

    If you have for example 3 source phrases for Main A-1, JJazzLab will randomly pick a source phrase every 2 bars. The selection is actually not 100% random: the first source phrase has more chances to be selected than the second one, and the second one has more chances to be selected than the third one, etc. In other words the last source phrase has the least chances to get selected.

    YamJJazz rhythm engine
    Yamaha style

    The possibility to adjust bass and drums independently

    jjSwing is optimized to work with the internal FluidSynth as output synth. If you use a different output synth, you might hear weird sounds.

    Note that current jjSwing version only supports 4/4 time signature. Jazz waltz support will be added later.

    Rhythm parameters

    jjSwing has 2 specific rhythm parameters, bass style and drums style.

    Bass style

    Possible values are shown in the image below.

    Bass style
    Description

    auto

    Actual bass style depends on the rhythm variation (e.g. Main A-1)

    2-feel

    Walking in two

    walking

    Walking bass

    double-note

    Walking bass with many double notes (repeated notes)

    double-time

    Walking bass played twice as fast while preserving chord changes at original tempo. This should be used when Drums style is also set to double-time.

    intro

    To be used with rhythm variation Intro A

    Drums style

    Possible values are shown in the image below.

    Drums style
    Description

    auto

    Actual drums style will depend on the rhythm variation (e.g. Main A-1)

    brushes 1/2

    2 different brushes-based drums

    hi-hat 1/2

    2 different hi hat-based drums

    ride 1/2/3/4

    4 different ride cymbal-based drums

    shuffle 1/2

    2 different 12/8-based drums

    double

    Drums played twice as fast while preserving chord changes at original tempo. This should be used when Bass style is also set to double-time.

    Settings

    jjSwing settings are available in the Options/Rhythms tab or in the Rhythm selection dialog, when you select the jjSwing styles rhythm provider, as shown below.

    Yamaha styles
    extended Yamaha style

    Improve documentation

    Any user can change the online doc

    This site is hosted on the GitBook platform, which lets users update the documentation, like in a Wiki. Making changes is super easy because it's done directly in the internet browser, nothing to install.

    If you want to make some changes just send me an email () I'll reply with a link to grant you write access rights to the JJazzLab GitBook.

    If you're a GitHub user you can also use the Edit on GitHub button in the upper right of each page, or make a pull-request directly on the JJazzLab-X-UserGuide repository.

    Translate the online doc

    You can also help by fixing or adding new translations. Currently there is 2 languages, English and Japanese. If you language does not exist yet, contact me (here) so that I add a "GitBook variant" for that language.

    Top contributors

    H. Sakuda. : who created the Japanese doc pages

    here

    ending

    To be used with rhythm variation Ending A

    intro

    To be used with rhythm variation Intro A

    ending

    To be used with rhythm variation Ending A

    Translate JJazzLab

    THANKS to the top translation contributors!

    With 7 languages supported, JJazzLab can now be used by 3.5 billions people ! 😄

    • Chinese: Yafei

    • German: Hans Hahn, Torsten-Peh, helmutguitar, Ole Jenning, Samuel Buch

    • French: Daniel Patin, Hans Hahn

    • Japanese: H. Sakuda (GItBook online help)

    • Portuguese/Brazilian: Danilson Ramos De Oliveira

    • Spanish: Lucho

    And thank you also to all the other contributors, every little bit helps!

    It's easy

    JJazzLab uses the platform, which makes it super easy to translate phrases, directly from your browser.

    Who can do it?

    Everyone, provided that you're a native speaker of the target language and you're familiar with music software terms.

    How to start?

    • and register (it's free)

    • Choose a target language

    • Select a translation file (phrases are grouped per feature or UI component)

    • Pick an English phrase and translate it

    Use ctrl-O (or upper-left menu Open) to open a different file. Done!

    Crowdin provides many other translation facilities, like automatic translation proposals, possibility to request more info, a validation process, etc.

    Recommendations & tips

    • The shorter the better Don't forget that your phrases will be part of the JJazzLab user interface.

    • Be consistent across translations If "leadsheet" is "xyz" in your language, try to reuse "xyz" whenever possible. Use the Glossary if a term is often reused.

    • Translate the Glossary first It's the last translation file at the bottom. It contains the most used terms found in JJazzLab, and helps maintain consistency across translations.

    Proofreader role A proofreader validates maintains consistency and validate translation phrases. If you feel ready for this role, feel free to contact me.

  • Language missing? If you want to add a language not listed in Crowdin, feel free to contact me.

  • Want to try JJazzLab with the latest translation files? See this page.

  • crowdin.com
    https://crwd.in/jjazzlab