Skip to content

Improve song quality: backing humanization + Watts mode - #3

Open
leoneperdigao wants to merge 2 commits into
mainfrom
feature/release
Open

Improve song quality: backing humanization + Watts mode#3
leoneperdigao wants to merge 2 commits into
mainfrom
feature/release

Conversation

@leoneperdigao

Copy link
Copy Markdown
Owner

Summary

Two rounds of quality work to make generated tracks sound less robotic.

1. Backing humanization (groove)

The procedural backing was too perfect — every bar a byte-identical repeat with flat random velocity and dead-static synthesis. This adds human imperfection (all seeded, so a given seed still reproduces exactly):

  • Accents & groove — musical accent curve (down/back-beat emphasis, ghosted off-beats); correlated per-bar timing drift instead of white-noise jitter; bass sits slightly behind the beat.
  • Variation — occasional dropped/added ghost hits, phrase-end drum fills, bass pickup notes (no two bars identical).
  • Articulation — per-note ADSR jitter; a pool of drum one-shot variants (kills the machine-gun identical-sample effect); bass per-note detune, slow pitch drift, optional glide, velocity-tracked filter.
  • Movement — pads get a real time-varying filter (fixes a bug that averaged the LFO into a static cutoff).

2. Watts mode (spoken word)

A contemplative mode pairing original Alan-Watts-style lyrics with a warm, measured delivery:

  • Lyrics — new WattsLyricGenerator: original, non-verbatim lines (the talks are copyrighted) across six theme groups, assembled into flowing passages. Selectable via lyrics_style / --lyrics watts.
  • Voice — new watts preset (no synthetic tremor, slow, spacious); deliberate_pacing makes the pipeline synthesize sentence-by-sentence so breaths/pauses fall naturally between thoughts. Configurable edge-tts voice/rate (en-GB-ThomasNeural, slower). Default headache vibrato dialed back to de-robotize all presets.
  • Space — configurable vocal reverb room for a lecture-hall feel.
  • Bundleconfig/moods/watts.yaml ties it together (vocal-led mix over a gentle lo-fi bed). --mood watts just works; --lyrics/--voice also compose with other moods.

Design spec and implementation plan included under docs/superpowers/.

Note: this branch also carries the earlier release-packaging workflow already present on feature/release.

Test Plan

  • pytest -m "not slow" — 193 passed (added tests for lyric/voice/mixing/config + backing determinism & bar variation)
  • ruff check + ruff format --check clean
  • --mood watts renders end-to-end: quality report 9 passed · 0 warnings · 0 failures
  • Composition verified: --mood melancholic --lyrics watts --voice watts
  • Existing moods unchanged
  • Reviewer: listen to a --mood watts render for warmth, pacing, and hall space

leoneperdigao and others added 2 commits June 27, 2026 10:53
- Drum accent curve (down/back-beat emphasis, ghosted off-beats) replacing
  flat random velocity; per-instrument profiles keep mix balance
- Correlated per-bar timing drift (groove) instead of white-noise jitter;
  bass sits slightly behind the beat
- Bar-to-bar variation: occasional dropped/added ghost hits, phrase-end
  fills, bass pickup notes
- Per-note ADSR jitter; pool of drum one-shot variants (kills machine-gun
  identical samples); bass per-note detune, slow pitch drift, optional glide,
  velocity-tracked filter envelope
- Pads: real time-varying filter via two-filter morph (fixes the
  averaged-cutoff bug that killed all movement)
- Tests: render determinism under seed + bar-to-bar variation

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…space

- WattsLyricGenerator: original (non-verbatim) Alan-Watts-style lines across
  six theme groups, assembled into flowing passages; selectable via the
  lyrics_style config key and --lyrics flag
- New 'watts' voice preset: no synthetic tremor, slow measured pacing,
  generous pauses; deliberate_pacing flag makes the pipeline synthesise
  sentence-by-sentence so breaths/pauses fall between lines
- Configurable edge-tts voice/rate (en-GB-ThomasNeural, slower); softer
  default 'headache' vibrato to de-robotise all presets
- Configurable vocal reverb room for lecture-hall space
- config/moods/watts.yaml bundle: vocal-led mix over a gentle lo-fi bed
- Backing humanisation config knobs (drums/synth) documented in defaults
- Design spec + implementation plan under docs/superpowers
- Tests across lyrics, vocals, mixing, and config

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant