Developer Guide
User guide
  • JJazzLab
  • Build from source code
  • Getting started
  • Add a rhythm engine
  • API
    • Main modules
    • Data model
    • Javadoc API
Powered by GitBook
On this page
  • Architecture
  • Develop your own rhythm generation engine without hassle
  • Easily add new features

Was this helpful?

Export as PDF

JJazzLab

NextBuild from source code

Last updated 1 year ago

Was this helpful?

JJazzLab is a Midi-based application dedicated to backing tracks generation.

The ultimate objective is to develop a jam buddy able to quickly generate intelligent and interesting backing tracks: realistic and non-boring backing tracks which you can easily adjust to specific songs.

Architecture

Develop your own rhythm generation engine without hassle

Thanks to JJazzLab developers can save a huge amount of work by only focusing on their music generation engine. Out of the box, the JJazzLab framework provides all the infrastructure, all the “plumbing” that, before, every developer had to write themselves.

  1. The framework shows the song in the editors

  2. The framework sends Midi messages to initialize the connected Midi sound device

  3. When user press Play, the framework sends the song data to the music generation engine

  4. The music engine uses the song data to generate the Midi data for the backing tracks

  5. The framework retrieves the Midi data and plays it

Easily add new features

The Netbeans Platform turns JJazzLab into a pluggable application where plugins can be installed or deactivated at runtime. Plugins can easily add or alter features and the related UI elements such as menu items.

JJazzLab has a rather well-commented source code: don't hesitate to browse the or the .

JJazzLab can host any number of as plugins. What happens when you load a song file and press the Play button?

JJazzLab is based on the . It provides a reliable and extensible application architecture.

For example suppose that you work on reharmonization algorithms (e.g. replace | A7 | D7M | by | Em7 A7 | D7M). It's easy to add a feature which propose possible reharmonizations when user selects multiple chord symbols. You'll just create a new action class which implements the algorithm on the current chord symbols selection, and "connect" (via annotations, no code required) this action to a new menu item in the Chord Symbol popup menu, as explained in the .

GitHub repository
Javadoc API
music generation engines
Apache Netbeans Platform
Getting started page