Only this pageAll pages
Powered by GitBook
1 of 30

Deutsch

Loading...

Loading...

Loading...

Loading...

Playback control

Loading...

Loading...

Lieder

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Rhythms

Loading...

Loading...

Tools

Loading...

Loading...

Loading...

Rhythm engines

Loading...

Loading...

Loading...

Loading...

Contribute

Loading...

Loading...

Loading...

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 panel of the Options/Preferences, as shown abobe.

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.

FAQ

Frequently Asked Questions

I like JJazzLab and want to keep it free, how can I help?

  • Donate to keep JJazzLab free for all

  • Help translate JJazzLab

  • Contribute to improve this documentation

  • Like the videos and subscribe the YouTube channel

  • 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.com on social networks, blogs, websites, etc.

  • If you're a developer, contribute code

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 and make sure the VST Host and the VST plugins are configured so that all Midi channels (1-16) are received.

  4. Play a song in JJazzLab: you should hear the VST instruments

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 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.

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.

# Example on Win10 (x64)
"C:\Program Files\JJazzLab\bin\jjazzlab64.exe" "C:\my dir\MySong.sng" "D:\AnotherSong.sng"

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

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

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. Right 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, the before previous is messages.log.2, etc.

  4. Find the relevant log file and send it with your bug report

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)

Installation

!!! THIS PAGE IS OUT OF DATE, IT SHOULD BE UPDATED FOR JJAZLAB 4 !!!

Anleitung für Windows

Laden Sie das Setup Programm runter und starten Sie es.

Falls Sie keine Administratorrechte haben, wählen Sie während der Installation "Nur für mich installieren".

Wir empfehlen es, JJazzLab mit JJazzLab SoundFont zu benutzen.

➡️ Falls Sie eine schrittweise Installationsanleitung brauchen, schauen Sie bitte diese Installation Videoanleitung (englisch).

Falls Sie eine Windows Smart Screen Warnung bekommen:

Windows Smart Screen blockiert das Programm NICHT weil es ein schädliches Programm ist (ist es nicht!), sondern nur, weil JJazzLab neu ist und Windows Sicherheitsservers nicht über genug Statistik verfügt, um seine Sicherheit zu evaluieren.

Sobald genug Nutzer das Programm erfolgreich runtergeladen und installiert haben, wird Windows Smart Screen das Programm nicht länger blockieren.

Sie können eine ausführlichere Erklärung hierzu in diesem Artikel finden.

Linux instructions

Unzip the package.

Start JJazzLab using bin/jjazzlab in the installation directory.

We recommend to use JJazzLab with the JJazzLab SoundFont.

If you use Arch or Manjaro Linux, there is JJazzLab installation package available : https://aur.archlinux.org/packages/jjazzlab-x-bin/ (thanks to jypma!)

MacOS instructions

Unzip the package and open it to start JJazzLab.

If you get a security alert

Using the Finder, select the JJazzLab package, ctrl-click menu, Open, this will give you the choice to open the application in spite of the security alert.

We recommend to use JJazzLab with the JJazzLab SoundFont.

There is a known bug on MacOS: sometimes, after the computer wakes up from sleep mode, the audio can lag 2 or 3 seconds behind. This is due to a JDK problem, JJazzLab can't do anything.

JJazzLab

!! The german documentation might not be updated with the latest version JJazzLab 4 !!

Möchten Sie die Dokumentation ergänzen oder verbessern? Das können Sie! 😀 Bitte gehen Sie zur .

Wo fange ich an?

Versuchen Sie's mit diesem kurzen (englisch).

What is JJazzLab?

🎵 JJazzLab is a desktop application which automatically generates backing tracks for any song, even complex ones. It’s a jam buddy to have fun improvising at home, learn new stuff or just practice your instrument. It’s also a great tool for teachers.

🎷 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: platform developers can easily add new features and new music generation capabilities.

Features

Backing tracks

  • Instant generation of a Midi backing track with drums, percussion, bass, piano, guitar, pad, horn section, …

  • Fine tuning of the backing track per song part: rhythm variation, intensity, muted instruments, drum fills, tempo factor, custom phrases, drums transform…

  • Play from anywhere, loop selected bars

  • Play transposed (e.g. for sax or trumpet players)

  • Any song structure: intro, chorus, 1st coda, etc.

  • Adjust tempo, transposition, choose and solo/mute instruments

  • Import user tracks

  • Support for multi-rhythm backing tracks, possibly with different time signatures

  • Export to Midi file, the full backing track or a single instrument track

  • Easy Midi-to-MP3 conversion via export to Midi file

  • Customizable click and pre-count

Editors

  • Chord lead sheet editor, song structure editor, chord symbol editor, mix console, song memo editor

  • Multi-file editor with dockable windows

  • Intuitive user interface with unlimited undo/redo, copy/paste between songs

  • Free placement of the chord symbols (quantified or not), off-beat chord symbols anticipation

  • Support all pop-rock and jazz chord symbols, plus user-defined chord symbols

  • Edit chord symbol musical rendering: underlying harmony, accent type, harmony variation during solos, chord symbol substitution, …

  • Drag & drop support to import/export Midi files

  • Customizable song template

  • Customizable UI colors and fonts

  • Print chord lead sheet and song structure

Rhythms

  • Support for Yamaha style files (SFF1 & SFF2 format), access to thousands of free styles on the web

  • Hundreds of embedded rhythms in the installer

  • Support for “YamJJazz Extended Yamaha" style files for even more variations per style

  • Open architecture: new rhythm generation engines can be easily added via plugins

Notes viewer

  • Show backing track notes in real time

  • Show selected chord symbol notes and scales

  • Piano keyboard

  • Guitar diagrams with most common chords, open/close voiced chords, inversions

(pseudo) Arranger keyboard mode

  • Recognize chords played on Midi IN and update the backing track in (pseudo) real-time

Improvisation help

  • Automatic generate improvisation guides on your chord leadsheet

  • Based on Hal Crook's reference book "How to improvise"

Midi

  • Connect to any audio engine via Midi: SoundFont player (recommended with the JJazzLab SoundFont), Java internal synth, external synth, VST host via virtual Midi port such as ‘LoopBe1’

  • Compatible with GM/GM2/XG/GS instruments

  • Compatible with any Midi instrument via Cakewalk instrument definition files (.ins)

  • Automatic drums/percussion drum map remapping from Yamaha XG key map to GM/GM2/GS key maps

  • Optimized JJazzLab SoundFont for a high-quality rendering and automatic instrument selection

  • Ready-to-use presets for VirtualMidiSynth (Windows) and FluidSynth (Linux)

  • User-defined default mix per rhythm

  • User-defined default instruments

Import

  • Band-In-A-Box lead sheet files

  • musicXML lead sheet files

  • Impro-Visor lead sheet files

Miscellaneous

  • Song memo with hyperlinks opened upon song loading

  • Easily add new features thanks to the open-source pluggable architecture

  • Based on the Netbeans application framework

Improve documentation
Video Tutorial
JJazzlab 3

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)

Lieder Bearbeitung

Benutzen Sie den Akkorde-Leadsheet Editor, um:

  • Akkordsymbole hinzuzufügen, z. B. "Cm6", "Ab7", ...

  • Liedteile hinzuzufügen, z. B. "A", "B", "Vers", "Chorus", ...

  • Akkorde zu verschieben und zu verändern, rhymische Akzente zu verschieben, ...

Benutzen Sie den Liedstruktur Editor, um:

  • Die Reihenfolge der Liedteile zu bestimmen, z. B, "AABA", "Verse Verse Chorus Verse", ...

  • Rhythmen auszuwählen

  • Die Parameter der Rhythmen zu verändern, z. B. Dynamik, Variation, Intensität, Fill-ins, stummgeschaltete Instrumente

Benutzen Sie die Mix Konsole, um:

  • Die Instrumente auszuwählen, die spielen sollen

  • Lautstärke, Panorama, Hall, Chorus, Anschlagsstärke einzustellen

  • Instrumente auf stumm oder solo zu schalten

  • Zu transponieren

  • Benutzertracks einzufügen

Chord lead sheet

Use the chord leadsheet editor to:

  • Add chord symbols, eg Cm6, Ab7

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

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

Chord symbols

Input

Select a bar or a chord symbol then:

  • type the first letter of the chord symbol ('A' to 'G'), or

  • press ENTER, or

  • double-click, or

  • right-click menu, Edit

You can also select an existing chord symbol and move it while pressing the control button, it will create a new copy that can be edited.

To move a chord symbol just select it and move it with the mouse.

To change the size of the lead sheet, select a bar then right-click menu and select Set end bar.

Use ctrl-click or shift-click for multiple selection.

In order to input a lead sheet from scratch, the easier way is to select the first bar, directly type in the chord symbols, press ENTER (it will automatically select the next bar), type in the chord symbols for the second bar, 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.

Aliases

JJazzLab recognizes many aliases for each chord symbol. For example C7M can be written Cmaj7, Cma7, CM7, CMAJ7 etc.

You can add more aliases in menu Options/Chord Symbols.

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.

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 ) where the marker is set to Theme2. On the image below it means the C7M will be used only for the 2nd song part.

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...

The new section name must be different than the existing one.

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.

Mouse shortcuts

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 is displayed.

Befehle

Sie können die Wiedergabe des Backing-Tracks über die untenstehende Symbolleiste steuern.

Tastaturkürzel

Die Abkürzungen sind für Windows und Linux angegeben. Einige von ihnen müssen möglicherweise für Mac angepasst werden.

Tastaturkürzel

Befehl

Leertaste

Start / Pause / Fortsetzen

Shift+Leertaste

Stop

CTRL+Leertaste

Start von ausgewähltem Takt/Songteil

CTRL+Shift+Leertaste

Nur ausgewählte Takte/Songteile abspielen

F1

Wiedergabe zum vorherigen Songteil springen

F2

Wiedergabe zum nächsten Songteil springen

J oder -

Tempo verringern

K oder +

Tempo erhöhen

L

Loop-Modus umschalten

Importing songs

Band In A Box song files

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

JJazzLab can import musicXML (.xml) or compressed musicXML (.mxl).

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

Impro-Visor leadsheet files

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

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

Selection

Mouse

Action

bar, chord symbol, section

click

select

chord symbol

double click

edit using chord symbol editor

bar, section

double click

edit using bar editor

bar, chord symbol, section

right-click

popup menu

chord symbol

mouse-wheel

transpose

editor

ctrl mouse-wheel

change X zoom factor

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

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, 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-W

close song

song structure editor
Bar popup menu
Chord symbol popup menu
Section/Time signature popup menu
Snapshot to be updated! Alternate > Substitute
Snapshot to be updated! ALTERNATE > SUBSTITUTE

Mix console

Use the mix console to:

  • Change the instruments

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

  • Mute or solo channels

  • 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.

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

  • User track: Add a user track. See User tracks below.

Mix console menu bar

Menu File

  • Load/Save Default Rhythm Mix

    Change the current mix from a file. Consult this page for more information about .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 the original settings from the related rhythm.

Menu Midi

  • Enable/Disable all Midi parameters

    Use Disable all Midi parameters if you control the mix yourself directly on the output synth.

  • 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.

  • Use drums-rerouting for channels drums

    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 output synth information, potential issues.

Midi channel

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

User tracks

Add one or more user tracks using the Add user track button on the mix console toolbar (see above).

To add Midi notes to a user track, you can either drag & drop a Midi file in the rectangle area, or use the Edit via external Midi editor button in the lower left corner.

When using Edit via external Midi editor JJazzLab will first export the full backing track as a temporary Midi file, and then open it with your external Midi editor, so that you can add notes for your user track.

JJazzLab only import notes which match the user track Midi channel. Notes from other Midi channels are ignored.

For example, in the image above, the user track channel is 1, so when you use your Midi editor/DAW to add user track notes, make sure they have the channel 1.

Edit via external Midi editor requires that you have set an external Midi editor in the General panel of the Options/Preferences. If you don't have one, we recommend MidiEditor for Windows, it's free, open-source and lightweight.

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 a track icon.

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

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.

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

  • mySong.mix: contains only the mix information, i.e. the configuration of the instruments used.

Why using 2 different files ?

Because the mix information is specific to your . 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 also opens mySong.mix in the same directory. If mySong.mix does not exist then JJazzLab creates the mix using the .

Default rhythm mix

Each JJazzLab rhythm has a builtin default mix. This builtin default mix can only use GM instruments for maximum portability.

You can override the rhythm's builtin mix by saving a default rhythm mix file. Unlike the builtin mix, this rhythm mix can use any instruments.

By default this file is stored in the user rhythm directory set in Options/Rhythms. But the directory can be changed in Options/General.

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 (GM instruments only)

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

output synth
default rhythm mix

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).

Rhythm files

Rhythms are made available by rhythm engines. Some rhythms can be based on rhythm files.

For example the YamJJazz rhythm engine provides rhythms built from Yamaha style files such as poprock.sty or TripHop.S510.prs.

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.

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

Rhythm files scanning

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

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.

If you add or remove rhythm files in the user directory for rhythm files (or a subdirectory) you need to manually force a re-scan in order to update the cache file. This can be done in Option/Rhythms (see image above).

Adding new rhythm files

In order to avoid having too many files cluttering the User directory for rhythm files, the recommended way is:

  1. Test the rhythm files In the rhythm selection dialog, use the Add Rhythms button to load additional rhythm files for the current session only. These files can be anywhere on your hard drive.

    Standard Yamaha styles (.sty, .prs, .sst or .bcs) should appear in the YamJJazz standard styles, and extended Yamaha styles (.yjz) should appear in the YamJJazz extended styles.

  2. Copy the validated rhythm files Once you have selected the “best” rhythm files, copy them somewhere in the User Directory for Rhythm Files (see above).

  3. Force a Rescan from Options/Rhythms

Quality of Yamaha style files found on the web vary a lot. Furthermore some styles are sometimes “broken” (invalid file format). If there is an error the corresponding rhythm won’t show up in the rhythm selection dialog.

Notes viewer

Use the Notes viewer to see notes of the selected chord symbol or real-time notes from the backing track.

View notes from a chord symbol

The notes of the selected chord symbol can be viewed on a piano keyboard or using guitar diagrams.

Piano keyboard

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

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

View backing track notes in real-time

This will display the notes of a selected instrument of the backing track in real-time.

If notes are visually out of sync with the sounds, adjust the audio latency in the Advanced tab of the Output Synth Editor.

Song structure

Use the song structure editor to:

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

  • Select the rhythm(s) to be used

  • Adjust the rhythm parameters to introduce dynamics, eg variation, intensity, fill, muted instrument, ...

Song parts

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

A song part has a name, a rhythm and a value for each of the rhythm parameters.

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

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. Clicking this line will select all the related song parts.

Editing

Song parts can be reordered by dragging them using the mouse.

You can modify the song part name, rhythm, and rhythm parameter values.

Edition is done directly from the song structure editor using the mouse, or from the song part editor (see the image at the top of this page). Edits apply on the selected song parts or rhythm parameters.

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

Song part popup menu
Rhythm parameter popup menu

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%.

Change rhythm

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

Types

In theory a rhythm (or style) can define its own set of parameters. However in JJazzLab most rhythms use the same parameters:

  • Variation: a rhythm variation. YamJJazz engine rhythms usually have 4 Main variations, plus some Intros, Endings, and some Fills.

  • Intensity: most rhythm engines use this parameter to increase/decrease the Midi velocity of the backing track notes

  • Drums fill: JJazzLab will add a drums fill on the last bar of the song part.

  • Mute: mute one of more instruments during this song part. To edit this parameter it's easier to use the song part editor (see snapshot at the top of this page).

  • Marker: this parameter is useful only if you use substitute chord symbols in the chord leadsheet, as explained here.

  • Tempo factor: slow down or accelerate the tempo of the song part.

  • Drums transform: change some drums notes of the song part. For example you can make the hi-hat louder, or change the closed hi-hat notes into ride cymbal notes.

  • Custom phrase: replace one or more instrument phrases of the song part.

    To import your custom phrase, you can drag & drop a Midi file in the Custom phrase editor shown below, or use your external Midi editor via the Customize button.

    When using Edit via external Midi editor JJazzLab will first export the full backing track as a temporary Midi file, and then open it with your external Midi editor, so that you can change notes of one or more tracks.

Edit values

You can adjust the value of the parameters of each song part.

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

But you can also use rhythm parameter popup-menu to reset the parameter value, or copy/paste values, or use the song part editor (see snapshot at the top of this page).

Compact / full view

By default only a subset of the rhythm parameters are shown, 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.

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

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

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.

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

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.

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, , 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.

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 .

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 () so that I add a "GitBook variant" for that language.

Top contributors

H. Sakuda. : who created the Japanese doc pages

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.

here
JJazzLab-X-UserGuide repository
here
The Play/Rest exercise applied on the active song
Yamaha styles
extended Yamaha style
YamJJazz

Yamaha styles

The YamJJazz 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 resources page for useful links.

Yamaha styles usually have 4 variations Main A, Main B, Main C, Main D, plus some Intros and Endings. 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 SoundFonts (including the JJazzLab SoundFont) 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.

Extended Yamaha styles

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

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, …

  • 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.

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.

Testing translations

If you can't wait for the next official JJazzLab release, you may want to try JJazzLab with the latest translation files, to see how it looks.

First you'll need to build JJazzLab-X from the source code, according to these instructions, but use the l10n_master branch instead of the master branch, as explained below:

Retrieve the JJazzLab-X code source project from GitHub

  1. Menu Team/Git/Clone

  2. Enter repository address https://github.com/jjazzboss/JJazzLab-X.git

  3. Leave user and password blank

  4. Press Next and select only the branch l10n_master (l10n means "localization")

  5. let Netbeans open the JJazzLab-X project from the cloned files

The l10n_master branch is a localization branch where Crowdin automatically pushes new translation files. Note that this synchronization is done every hour, so you may not see the latest changes. Also, if there are several translation candidates for one source phrase, only the validated one is pushed. If no translation is validated yet, Crowdin uses the first candidate.

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 .

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

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

crowdin.com
https://crwd.in/jjazzlab
contact me
contact me
this page