Skip to content

Complete hybrid timestretch overhaul and finalize implementation plan#1

Merged
robmorgan merged 332 commits into
mainfrom
research
Mar 23, 2026
Merged

Complete hybrid timestretch overhaul and finalize implementation plan#1
robmorgan merged 332 commits into
mainfrom
research

Conversation

@robmorgan

@robmorgan robmorgan commented Feb 28, 2026

Copy link
Copy Markdown
Owner

Summary

  • complete the hybrid time-stretch and pitch-shift overhaul, plus the associated research, roadmap, architecture, and release documentation updates
  • implement transient detector controls, class-aware WSOLA adaptation, residual/noise HPSS defaults, and the broader realtime StreamProcessor improvements
  • improve tonal fast-path behavior for sparse tonal and dual-mono content, tighten vocal high-frequency formant handling, and expand streaming quality coverage
  • add quality benchmarking, realtime allocation checks, Rubber Band comparison harnesses, and the Ableton optimization tooling/workflows
  • fix the desktop app streaming wrapper so it reserves output buffers from StreamProcessor capacity/ratio data instead of fixed guesses, preventing stream_pending_output overflows during playback

Validation

  • cargo test --lib
  • cargo test --test pitch_shift -- --nocapture
  • cargo test --test quality_gates -- --nocapture
  • cargo test --test quality_benchmark -- --ignored --nocapture
  • cargo test -p timestretch-desktop

…s 905! +0.9 overall

Result: {"status":"keep","quality_score":945.8,"percussive_score":905,"edm_score":962.6,"harmonic_score":981.8}
…+0.4

Result: {"status":"keep","quality_score":946.2,"percussive_score":905,"edm_score":969.1,"harmonic_score":973.4}
…val. Score 929.3 (was 946.2 before removal, 837.6 after). Some quality lost due to other code changes in c0622cf.

Result: {"status":"keep","quality_score":929.3,"percussive_score":894.7,"edm_score":971.8,"harmonic_score":917.2}
…locking disabled) — fully recovers to 946.2

Result: {"status":"keep","quality_score":946.2,"percussive_score":905,"edm_score":969.1,"harmonic_score":973.4}
Result: {"status":"keep","quality_score":946.3,"percussive_score":903.8,"edm_score":970.8,"harmonic_score":973.1}
… percussive 913, harmonic 982

Result: {"status":"keep","quality_score":949.3,"percussive_score":913.3,"edm_score":963.1,"harmonic_score":982.3}
…erall 950.7

Result: {"status":"keep","quality_score":950.7,"percussive_score":917.3,"edm_score":963.3,"harmonic_score":981.9}
…verall 951.6 (+0.9)

Result: {"status":"keep","quality_score":951.6,"percussive_score":919.5,"edm_score":963,"harmonic_score":982.6}
Result: {"status":"keep","quality_score":951.8,"percussive_score":921.4,"edm_score":962.2,"harmonic_score":982}
Result: {"status":"keep","quality_score":951.9,"percussive_score":921.5,"edm_score":962.3,"harmonic_score":982}
…ve 924, overall 952.8 (+0.9)

Result: {"status":"keep","quality_score":952.8,"percussive_score":924.1,"edm_score":962.1,"harmonic_score":982}
…+0.1

Result: {"status":"keep","quality_score":952.9,"percussive_score":924.2,"edm_score":962.3,"harmonic_score":982}
…4.6, overall 953.1 (+0.2)

Result: {"status":"keep","quality_score":953.1,"percussive_score":924.6,"edm_score":962.3,"harmonic_score":982}
…9, overall 953.2 (+0.1)

Result: {"status":"keep","quality_score":953.2,"percussive_score":924.9,"edm_score":962.3,"harmonic_score":982}
…ut better percussive)

Result: {"status":"keep","quality_score":953.2,"percussive_score":925,"edm_score":962.3,"harmonic_score":982}
…(+0.3)

Result: {"status":"keep","quality_score":953.5,"percussive_score":924.5,"edm_score":963.5,"harmonic_score":982}
Result: {"status":"keep","quality_score":953.8,"percussive_score":925.4,"edm_score":963.5,"harmonic_score":982}
…nterpolation quality

Result: {"status":"keep","quality_score":953.8,"percussive_score":925.3,"edm_score":963.5,"harmonic_score":982}
Result: {"status":"keep","quality_score":953.8,"percussive_score":925,"edm_score":963.7,"harmonic_score":982}
Result: {"status":"keep","quality_score":953.8,"percussive_score":925,"edm_score":963.7,"harmonic_score":982}
@robmorgan robmorgan merged commit 5da243c into main Mar 23, 2026
8 checks passed
@robmorgan robmorgan deleted the research branch March 23, 2026 03:06
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