Developping with JJazzLab
An open application for developers
Updating the application
Apache NetBeans Platform
JJazzLab is based on the which provides a reliable and extensible architecture for cross-platform desktop applications.
The NetBeans Platform manages the application lifecycle, window system, extension points, options, actions, and more.
It uses NetBeans modules (different from java 9 JPMS modules) which group related Java classes into pluggable components, while managing visibility and dependencies between them.
Adding new features
Suppose you have a reharmonization algorithm that proposes alternate chord progressions (e.g., replacing | A7 | Dmaj7 | with | Em7 A7 | Dmaj7 |).
You can easily implement an action that, when user selects chords, suggests these alternatives in the existing chord popup menu.
Then your code can be bundled in a module which is deployed like a plugin.
Develop your own rhythm generation engine without hassle
Out of the box, JJazzLab provides the infrastructure (“plumbing”) that developers would otherwise need to build themselves: data management, user interface, MIDI management, playback control, music-generation control, etc.
In JJazzLab, the rhythm generation engine just receives a context (chords, song structure, tempo, etc.) and returns musical phrases (one per instrument) that form the backing track, ready for playback.
The engine doesn’t have to manage real-time deadline: JJazzLab handles scheduling and synchronization.
JJazzLab Toolkit
The is a standalone jar file which contains the JJazzLab core features, the JJazzLab plugins and the required dependencies.
Use the toolkit to use JJazzLab features independently of the JJazzLab application.