The #jazz Style Pack
Improv — editable rule pack · Phase 36
The #jazz Style Pack: Stopped
No pre-rendered audio yet Run it on the desktop CLI to hear it — see the source below.
Improv styles are musical content, not engine internals — they ship as editable Flow files. This is the baseline `#jazz` rule pack that `(jam style=#jazz ...)` consults: chord-tone-heavy weights on strong beats, scale tones favored on weak beats, light chromatic passing, an eighth-note swing template, and offbeat accents. A composer can copy it to `~/.config/flow/styles/` and retune the feel without touching the language. Read it to see exactly how Flow’s improviser thinks.
Source
Note: Phase 36 IMPROV-01 — baseline #jazz rule pack
Note: Loaded at FlowEngine init by StyleRegistry.LoadAtEngineInit
Note: See flow-lang/improv/styles/README.md for the Dict shape contract.
Note:
Note: Jazz character: chord-tone-heavy on strong beats, scale-tone-favored on
Note: weak beats, light chromatic passing tones, eighth-note swing template,
Note: accents on offbeats per jazz convention.
use "@improv"
Note: Inline dict literal — Flow's variable declarations require a type
Note: annotation and the rule pack's outer dict has heterogeneous values
Note: (Dict / Tuple / Dict-of-Symbol). The cleanest composer-facing surface
Note: is to pass the dict literal inline to (registerStyle ...), bypassing
Note: the type-annotation requirement.
(registerStyle #jazz
(dict
Note: ---- Beat-strength → chord-tone vs scale-tone vs chromatic weights ----
#beat_weights (dict
#strong (dict #chord_tone 0.75 #scale_tone 0.20 #chromatic_passing 0.05)
#weak (dict #chord_tone 0.30 #scale_tone 0.50 #chromatic_passing 0.20))
Note: ---- Interval-transition preferences (relative to previous note) ----
Note: Stepwise motion preferred; chromatic + leaps allowed but rare.
#interval_transitions (dict
#step_up 0.30 #step_down 0.30
#leap_up 0.10 #leap_down 0.15
#chromatic 0.10 #repeat 0.05)
Note: ---- Rhythmic template — eighth-note swing-heavy ----
Note: Symbols rather than NoteValue identifiers for portability — the
Note: jam impl maps #eighth/#quarter/etc. to the right beat slot count.
#rhythmic_template <<#eighth #eighth #eighth #eighth #eighth #eighth #eighth #eighth>>
Note: ---- Articulation distribution by beat strength ----
#articulation_distribution (dict
#downbeat #legato
#offbeat #accent
#syncopated #marcato)))
This piece reads files off disk or registers content at engine init, so it runs on the desktop CLI rather than in the browser playground.