Skip to content

Releases: libraz/midi-sketch

v0.2.1

07 Jun 07:19

Choose a tag to compare

Patch release focused on eliminating residual dissonance in generated output.

Fixes

  • Motif: Trim sustained motif notes at dissonant chord changes; reject m2/M2 candidates against overlapping aux notes in repeated-pitch fixing
  • Bass: Theoretical chord-tone fallback in tritone-checked note placement; tritone guard added to bass microvariation
  • Vocal: Run-break placement now rejects close-second intervals; max same-pitch run reduced 5 → 4; phrase onset filter switched to score-first selection

Full Changelog: v0.2.0...v0.2.1

v0.2.0

06 Jun 20:15

Choose a tag to compare

First tagged release of midi-sketch — a C++17 MIDI auto-generation library for pop music sketches. WASM-ready, no external dependencies.

Highlights

Generation Engine

  • 9-track generation (Vocal, Chord, Bass, Motif, Arpeggio, Aux, Drums, SE, Guitar) orchestrated by a Coordinator with three paradigms: Traditional, RhythmSync, and MelodyDriven
  • 9 blueprints (Traditional, RhythmLock, StoryPop, Ballad, and 5 idol variants) with per-blueprint riff policies, tempo control, aux profiles, and percussion policies
  • Skeleton-first vocal melody generation with phrase planning, mora-timed rhythm, syllabic subdivision, and hook phrase handling
  • Guide chord phantom note system and SecondaryDominantPlanner for harmonic gravity
  • Keyboard and fretted-instrument physical models (hand span, playability, fast technique constraints)

Pitch Safety & Quality

  • Unified note creation API (createNote) with collision detection, octave-fold range handling, and full provenance/transform tracking on every note
  • Dissonance gate: 0 clashes across the 2700-config check matrix
  • Melodic discipline evaluator and music analyzer package (melodic / vocal / harmonic / rhythm / arrangement / structure scoring)
  • Reference MIDI comparison tooling tuned against real J-pop/vocaloid songs

Determinism & Interop

  • Bit-identical generation across macOS, Linux, and WASM
  • JSON-based config interchange between C++, CLI, and JS/WASM bindings (TypeScript), with v4 metadata enabling exact regeneration
  • SMF1/SMF2 output, MIDI Set Tempo ritardando support

Tooling

  • CLI with analysis modes (--analyze, --dump-collisions-at, --validate, external MIDI input)
  • ~3350 C++ unit tests, Python analyzer test suite, WASM/CLI output verification