A monophonic pitch corrector built as three staged deliverables over one shared C++20 DSP library. V0A is an offline command-line renderer that takes a mono WAV, a manually specified period and pitch ratio, and writes a resampled WAV plus a diagnostic CSV, isolating the resynthesis primitive for audition. V0B adds automatic detection, octave arbitration, chromatic targeting, and voiced/unvoiced gating, still offline and deterministic. V1-Lab wraps the same library in a JUCE AU/VST3 plugin with key/scale selection, retune speed, humanize, voice type, tracking mode, and a three-state note matrix.
Correction runs through a period-synchronous variable-rate resampler. A fractional read head advances over a circular buffer; when read/write separation exceeds bounds, the read coordinate jumps by one detected period — subtracting a period to repeat a cycle when shifting sharp, adding one to delete a cycle when shifting flat.
The project reconstructs the behavior of Antares Auto-Tune EFX 3 clean-room, from public patents and forensic technical research, with no proprietary binaries, extracted assets, or copied source. An evidence discipline is maintained alongside the code. Implementation decisions follow a fixed authority order — the product directive first, then the architecture and evidence documents, then the supplied research reports, and only then new engineering inference — with an explicit rule that a report does not become authoritative by using confident language, equations, or concrete constants.
Every non-mechanical choice carries a provenance label: EVIDENCE-BASED for claims resting on the EFX 3 manual, the Hildebrand patent, or Hildebrand’s public statements; PLAUSIBLE RECONSTRUCTION for inference consistent with the evidence but historically unconfirmed; EXPERIMENTAL for testable hypotheses, disabled by default; and PRODUCT REQUIREMENT for things the project needs that make no historical claim at all. Confidence is tracked separately from provenance, on the principle that a high-confidence product requirement is still not evidence.
The evidence ledger holds fifteen numbered claims, each with its classification and the concrete engineering consequence that follows from it. A parallel registry holds sixteen hypotheses, each with a stable ID, a default state, a discriminating test designed to falsify it, and a promotion criterion it must clear before becoming default behavior. Where the two research reports disagree — on twelve topics, from target hysteresis and retune smoothing domain through humanize timing, tracking epsilon, and latency to resampler direction — a table records each report’s position and the decision implemented. Unresolved alternatives ship as disabled experiments.
Measured plugin latency is 4,112 samples at 48kHz: the reconstruction’s own figure. The original’s latency is one of the project’s open questions.