PROJECT & CREDITS
A web front end for JJazzLab.
This independent local prototype uses the JJazzLab Toolkit to turn chord charts into MIDI arrangements. It is not an official JJazzLab release.
Stage 2 · Browser listening
Edit your chart, select a style and variation in Song Part, generate a backing track, then press Play. The resizable Song tools panel also has a live instrument Mixer and Song Memo tab. Track and drum-pad gain sliders place 0 dB at their midpoint, with boost to the right, attenuation to the left and mute at the left endpoint. Double-click a fader to reset it. You can stop, restart, loop, adjust volume, and download the generated MIDI. Chord highlighting follows the sounding arrangement. Chart and variation changes require regeneration; those controls lock while listening. Memos remain editable and are included with the section variation when you save a song.
Create named sections with their own variations. Choose a native style in 2/4, 3/4, 4/4 or 5/4, enter chords supported by JJazzLab, and generate either selected bars or the whole song. Use section fills the preview range for the active section. WASM generation accepts up to 2,048 bars, 256 parts and 16 distinct styles per request. The footer reports current voices and sample memory, with peaks in Diagnostics.
Instrument sounds & attribution
JJazzLab SFZ is the default melodic bank for accompaniment and piano audition. FluidR3 drums are the default percussion source. The Bank 1/2 controls select SFZ or midi-js melody independently of drum-source and kit selection, without generating new MIDI. It uses the direct WAV/SFZ conversion of the original JJazzLab-SoundFont.sf2, with the FluidSynth-compatible static attenuation profile. Preset bank/program metadata selects the sounds; source velocity layers, loops, tuning and envelopes remain in their definitions. See the original bank attribution.
The secondary melodic instrument recordings use the FluidR3_GM sound bank, supplied as pre-rendered note samples by the midi-js-soundfonts project. The bank is listed by that project under Creative Commons Attribution 3.0. This app extracts individual notes, preserves their stereo channels, and applies playback envelopes, MIDI gain and pan. The upstream General MIDI instrument names are retained.
Secondary drums provide 31 sampled FluidR3 programs: Standard, Room, Power, Electronic, TR-808, Jazz, Brush, Orchestra and variants, rendered at three velocity levels. Choose From style or select a kit. Hi-hats share a choke group; cymbals retain their recorded tails. Identical recordings are shared between kits.
The drum source is the original FluidR3_GM 3.1 soundfont by Frank Wen and contributors, obtained from Debian's official archive. It is released under the MIT licence; see its original attribution and rendering notes. The three levels are separate soundfont renders, not three claimed original recording layers.
The SFZ bank includes all 128 GM melodic programs and 15 optional percussion kits. Missing default presets or samples detected during preparation visibly fall back to the local secondary bank. Explicit instrument choices are retained per track and can use either bank. SFZ playback still approximates some SF2 envelope/filter behavior and does not reproduce arbitrary SF2 modulators. Untranslated exclusive-class declarations are reported.
For the secondary recordings, GM program numbers are used for melodic instrument selection. Bank-specific XG/GS variations fall back to their GM program equivalent; unavailable drum patches or notes fall back to Standard with a warning. Pitch bends and RPN sensitivity are rendered. MIDI reverb/chorus and melodic SF2 sustain loops are not reconstructed; long held melodic notes may decay when their recorded sample ends. This player will sound different from JJazzLab's desktop synthesizer.
Upstream software
The footer Piano and accompaniment use the same primary JJazzLab SFZ/WAV bank. The FluidR3 MP3 tab remains available for secondary instrument choices. Both audition and automatic track selection start at 0 dB instrument trim; explicit user trims remain available. The piano keyboard view/input is adapted from the local DX7 app under the Apache 2.0 licence.
JJazzLab / JJazzLab Toolkit provide arrangement generation; the reused JJazzLab source headers carry LGPL-3.0-or-later notices. This deployment compiles the generation engine with TeaVM to browser WASM; no Java server runs here. See component notices and corresponding sources.
Tone.js supplies the output gain and limiter. @tonejs/midi parses the generated MIDI before playback. Both are MIT licensed; see the Tone.js licence and MIDI parser licence.
Where your music goes
Charts and accompaniment generation run in your browser. Instrument definitions and individual audio samples are served from this website on demand.
The browser must support Wasm GC, AudioWorklet and cross-origin isolation. Native JJazzLab song import and seven catalogue entries are not yet supported. JSON song downloads preserve your chart; unsaved edits are lost on reload.