Releases: lidge-ai/music2-gen
Release list
v0.3.0
-
Breaking: Bun 1.4.0 is the only supported runtime. The package depends on the pinned
bunnpm package, and themusic2launcher (bin/music2.js) is a small Node script that runs the CLI on that bundled Bun, honorsMUSIC2_BUN_PATH, repairs a skipped Bun postinstall once, and keeps the JSON error contract when no Bun is available. Golden-digest tests now run on the pinned Bun, which renders the same bytes as Node 24 did.version --jsonreportsbunandbunSource. Malformed song JSON reports its line and column on any engine. CI runs on Bun across Linux, macOS and Windows and installs the packed tarball with npm; a dry-run-firstrelease.ymlpublishes through npm Trusted Publishing. -
Bundle five sampled SFZ instruments (
lib:grand-piano,lib:strings,lib:strings-staccato,lib:brass,lib:brass-staccato) with per-instrument confinement, manifest validation, license notices, and a newmusic2 instrumentsinventory. MIDI/ALS/DAWproject keep notes editable and warn when sampled sound is not portable. -
Add opt-in triangle waves to bass and lead without changing their defaults. Saw-based lead, bass, supersaw, and pad remain normal synth choices. Recipes avoid synthesized acoustic
stringsandbrass; lint warns on those voices, while sampled strings/brass serve acoustic parts. The saw-basedchoirhas no bundled sampled replacement and should be used sparingly. -
Extend Song v1 with optional absolute note lists, SFZ instruments, audio clips and automation while retaining legacy render behavior for songs that omit them.
-
Add ProjectIR, MIDI import/export, aligned track and bus-return stems, sample slicing, and experimental Ableton Live 12 and DAWproject exports. MIDI and frozen-audio routes have documented loss boundaries; generated ALS files still require a manual Live-open check.
-
Add an optional out-of-process plugin bridge with explicit render/audio-export opt-in, plus DAW examples, deterministic sample-fixture generation and user/agent guidance.
-
Store default outputs under
~/.music2(orMUSIC2_HOME):renderwithout-owritesrenders/<song>.wav,analyzewithout--outwritesanalysis/<name>/, andsfxno longer requires-oand writessfx/<preset>-<seed>.wav, adding-2,-3, … instead of overwriting. Explicit paths are unchanged.doctorreports the active home, and an emptyMUSIC2_HOMEnow falls back to~/.music2. -
Add an
sfxvoice for in-song transitions:riser,pitchriser,downlifter,impact,whoosh,revcymbal,noisebuild,subdrop,zapandcrackle, each with four timbre variants. An atom fills its whole weighted slot, andimpact/subdropring out toimpactDecay.rendernow checks every drum-kind atom against the voice's declared names, including unplaced section overrides. Lint never countssfxtracks as kick, snare or hat. -
Add a
tapestoptrack insert that slows playback to a stop from an absolute, meter-aware bar; partial--barsrenders pre-roll tape-stop tracks so crops match the full render. -
Add
music2 sfx, a standalone generator for the ten transition presets and eleven game/UI presets (pickup, laser, explosion, powerup, hit, jump, blip, alert, click, confirm, error). It writes a deterministic 16-bit WAV and a.sfx.jsonsidecar, never overwrites existing files, and accepts validated--paramsoverrides. -
Add twelve synthesized virtual instruments:
piano,epiano,organ(nine drawbars),strings,brass,flute,choir(five vowels),marimba,vibraphone,glockenspiel,kalimbaandguitar(nylon or steel). Adddrumsparams.kitfor 909-style, 808-style, acoustic-ish and lo-fi characters; kit 0 or an omitted kit renders byte-identically to before. The new focal voices join the register-collision lint, and strings, choir and organ count as beds. -
Add four example songs,
pop-transition,lofi-textures,cinematic-cueandgame-spark-loop, that pass strict lint and song-backed analysis with no balance warnings. -
Add a production effect system in song JSON: per-track insert chains (
eq,filterwith LFO sweep,drivewith 2x oversampling, stereo-linked RMScompressor,chorus,phaser,widthwith Linkwitz–Riley mono lows,crush,tremolo, tempo-synceddelay), configurable send buses (song.fx.reverbplate after Dattorro or room/hall FDN with pre-delay and return filtering;song.fx.delaytempo-synced filtered ping-pong) andmaster.fx(eq, compressor, drive, width) before loudness targeting. Songs without these fields render byte-identically to before. -
Add a band-limited
supersawvoice and optional polyBLEP unison, detune and filter envelopes onlead,bassandpad. -
Add advisory effect lint (reverb on low tracks, runaway delay feedback, widened lows) and an effects reference with genre chains.
-
Add layering lint rules L1–L6 for low ownership, chord spacing, low pan, kick/bass ducking, focal register collision, and sub-floor notes.
-
Add genre-aware rendered balance warnings A1–A4 for dominant low end, low-mid buildup, sub without body, and thin high end.
-
Add a layering reference and composition workflow pass, with rebalanced recipe starters and example songs checked by strict lint and song-backed analysis.
npm: https://www.npmjs.com/package/music2-gen/v/0.3.0 (shasum 1605fb76f21e7034aee6532af863ae4e45170046, built by release run 36528234786)