# DeepPluck V0.13.0 Release Candidate — Implementation Report

Date: 2026-09-05 (Europe/Berlin)

Branch: `master`

Start HEAD: `fedb8ac7665cc43e956fd15900b1199596699dbf`

Reference: Windows 11 x64; Visual Studio Community 2026 18.9.2; MSVC
19.51.36256.0 / VCTools 14.51.36231; Windows SDK 10.0.26100.0; CMake 4.4.3;
JUCE 9.0.1; C++20.

Overall release-preparation verdict: **READY FOR V1.0 RELEASE PREPARATION**.
The complete automatable V0.13.0 RC gate passes. On 2026-09-05 the user reported
that the current synth runs without recognizable errors and declared V0.13.0
complete, closing the practical manual gate at milestone level. Individual
Cubase, Standalone-device, DPI and listening checklist outcomes were not
separately itemized and are not retroactively invented here. The historical
V0.11.5 D96/64 hard-deadline finding remains technically OPEN/deferred, but the
user explicitly accepted it as a known V1.0 release risk. That acceptance clears
the release-risk decision gate without converting the finding into a
performance PASS.

## Reconciliation and scope

The milestone began from the committed V0.12.75 Foundation at
`fedb8ac7665cc43e956fd15900b1199596699dbf` with a clean tracked index. Existing
untracked user material under `CubaseTest/` and `Docs/`, including historical
MasterPrompts and reference images, was treated as protected input. It was not
edited, deleted, moved, reset or staged. The supplied V0.13.0 MasterPrompt is the
only previously untracked document intentionally brought into this milestone.
`build/` and `Artifacts/` were ignored and `JUCE/` was unchanged.

The accepted V0.12.75 baseline evidence is
`Artifacts/V0.12.75/20260904T182415Z/`: warning-free Debug and Release builds,
40/40 CTests in each configuration and 696/696 Factory renders in each
configuration. It was reused as historical comparison material and was not
overwritten.

The V0.13.0 audit found no reproducible Severity-A or Severity-B product defect.
Consequently no speculative product fix was made. The milestone is a strict
feature freeze and changes no DSP, Processor, Voice, effects, modulation,
parameter, state, preset, Factory sound, MIDI or GUI implementation. `git diff`
from the Start HEAD is empty for both `Source/` and `Presets/`.

## Implemented release-candidate work

- `project(DeepPluck VERSION ...)` is now the single 0.13.0 version source.
- V0.13.0 was added narrowly to the project-local build- and final-audio-evidence
  path allowlists; their historical roots remain valid and immutable.
- `Tests/PrepareReleaseCandidatePackage.ps1` adds append-only, project-local RC
  packaging below `Artifacts/V0.13.0`. It accepts only a repository build tree
  and a V0.13.0 evidence subdirectory, runs the existing Release artifact check,
  copies only the complete Release VST3 bundle and Standalone executable,
  rejects developer/source/evidence file extensions, byte-compares every copy
  with the build output, verifies both binary versions and writes sizes and
  SHA-256 values to `package-manifest.json`.
- Evidence-path regression tests cover accepted V0.13.0 paths and rejected
  historical/external package destinations.
- `README.md`, `ARCHITECTURE.md`, `AGENTS.md`, Factory and Standalone verification
  documents, the RC verification guide, the binding MasterPrompt and this report
  describe the same version, baseline, feature-freeze boundary, evidence roots,
  package contract and open manual work.

No installer, signing, upload, push or automatic system-directory copy was
added. `COPY_PLUGIN_AFTER_BUILD` remains `FALSE`; build products are copied only
to `Artifacts/Debug` and `Artifacts/Release`.

## Preserved product and compatibility contracts

- Instrument bus contract: no audio input, stereo audio output, MIDI input and
  no MIDI output.
- Exactly 16 preallocated voices and the existing sample-accurate MIDI/stealing
  behavior.
- Exactly 62 public parameters. The complete frozen index, ID, host name, type,
  version hint, range, interval/choice order, default, mapping, raw meaning and
  text semantics remain unchanged.
- Existing state, legacy/partial migration, host automation and preset formats.
- 116 active user-approved Factory presets in eight categories. Historical
  `factory:0..3` sounds remain compatibility-only and are not browser entries.
- Oscillator, unison, transient, noise, filter, envelopes, LFO, random/lock/undo,
  FX order, headroom and tail behavior.
- Global effects remain after the complete stereo voice sum.
- Fixed VST3 1536 x 900 layout and fixed Standalone 1536 x 980 layout with the
  mouse-only virtual keyboard strip.
- Existing plugin manufacturer code `Tntx`, plugin code `DpV1`, bundle ID
  `de.tonetrax.deeppluck`, VST3 class identities and preset identities.

## Automated verification

Final evidence root: `Artifacts/V0.13.0/20260905T102000Z/`

| Gate | Result | Evidence |
|---|---|---|
| Confirmed toolchain and fresh configure | PASS; VS18 2026 x64, MSVC 19.51.36256, VCTools 14.51.36231, SDK 10.0.26100.0, CMake 4.4.3; 7.13 s | `final/configure-Release-20260905T102830901Z-*` |
| Debug build | PASS; all seven targets; 230.77 s; 0 compiler warnings, 0 compiler errors | `iteration/build-Debug-20260905T102854228Z-*` |
| Release build | PASS; all seven targets; 171.32 s; 0 compiler warnings, 0 compiler errors | `iteration/build-Release-20260905T103405617Z-*` |
| Focused Debug RC suites | PASS 7/7; 17.89 s | retained terminal/CTest result |
| Focused Release RC suites | PASS 7/7; 8.84 s | retained terminal/CTest result |
| Complete Debug CTest | PASS 40/40; 1338.92 s | `final/test-Debug-20260905T104009794Z-*` |
| Complete Release CTest | PASS 40/40; 195.25 s | `final/test-Release-20260905T110239831Z-*` |
| Debug final Factory corpus | PASS 696/696; exactly one run; 1349.80 s; 0 failures; max peak 0.583521; all finite, all tails quiet | `audio-debug/summary.json` |
| Release final Factory corpus | PASS 696/696; exactly one run; 258.34 s; 0 failures; max peak 0.583521; all finite, all tails quiet | `audio-release/summary.json` |
| Debug artifact/version/local-copy identity | PASS; version 0.13.0 plus stale/missing/class negative probes; 0.61 s | `final/versions-Debug-20260905T113619659Z-*` |
| Release artifact/version/local-copy identity | PASS; version 0.13.0 plus stale/missing/class negative probes; 0.56 s | `final/versions-Release-20260905T113619108Z-*` |
| Debug native VST3 factory load | PASS; native x64, two classes, InitDll/ExitDll and clean unload | `verification/vst3-debug-iteration.json` |
| Release native VST3 factory load | PASS; native x64, two classes, InitDll/ExitDll and clean unload | `verification/vst3-release-iteration.json` |
| Debug native Standalone process smoke | PASS; JUCE client 1538 x 1008 around exact 1536 x 980 editor; normal close; exit 0; no remaining owned process | `verification/standalone-debug-iteration.json` |
| Release native Standalone process smoke | PASS; same window contract, normal close, exit 0 and no remaining owned process | `verification/standalone-release-iteration.json` |
| Release package | PASS; three allowlisted files; exact build hashes; binary version 0.13.0 | `final/release-package/package-manifest.json` |

The first in-sandbox fresh-configure attempt stopped before compiler
identification because the sandbox denied the MSBuild toolchain access. Its log
is retained as `final/configure-Release-20260905T102756672Z.log`. The exact fresh
configure was then run once in the authorized confirmed Developer environment
and passed. This was an environment-access failure, not a compiler diagnostic;
neither successful build log contains a compiler warning or error.

The complete CTest gates cover parameter/state/preset migration and round trips,
Factory/User/Pack/Imported handling, random Amount/locks/Undo, FX order,
oscillators, envelopes, filter, transient/noise, unison, LFO/waveforms,
voice-stealing/reset/sample accuracy, finite output, smoothing, headroom/tails,
GUI, Welcome/About, Standalone keyboard, benchmark determinism, audio equivalence
and artifact versions. Both `audio_equivalence` configurations are bit-identical
to the preserved authentic reference. The separate final Factory corpus is 116
presets x 3 sample rates x Dry/Wet = 696, not the 669 full-processor plus 42
partition Tone corpus, the 39-case CPU suite or the 40 registered CTests.

All 696 successful raw render files in each configuration were hashed and then
removed by contract; 696 receipt hashes and summaries remain for each run. No
`.f32` raw file remains below the V0.13.0 evidence root. No second full corpus
was run because there was no failed/incomplete corpus and no later production
audio, DSP or preset-content change.

## Realtime and stability review

The product audio sources did not change. Static review reconfirmed the existing
one-snapshot-per-block parameter flow, sample-accurate MIDI subdivision and the
global `voice sum -> FX rack -> output gain/meter` order. No allocation,
container growth, lock, file/network operation, logging, GUI call or APVTS string
lookup was introduced into an audio callback. The editor continues to own no
DSP. Automated headroom, smoothing, effects, tails, stealing, reset and all
1,392 final Factory renders produced no NaN/Inf, peak violation or hanging tail.

Visual inspection of the generated 1536 x 900 Main, Modulation, FX, Settings and
Welcome snapshots and the 1536 x 980 Standalone keyboard snapshot found no
clipped content, overlap or unreadable version/About text. This is bounded
automated/visual evidence, not a substitute for real host DPI validation.

## Performance comparison and D96/64 status

V0.13.0 introduces no product-source or preset-content delta from Start HEAD, so
the Start and candidate DSP/inputs are identical. The normal Release benchmark
then ran the fixed 39-case representative suite once, covering independent
polyphony, unison, buffer, sample-rate, waveform and FX scaling plus Typical,
Dense and Worst scenarios. The maximum whole-case RTF was 0.235536.

That preserved first run recorded one block-deadline miss in
`M-r48000-b128-p16-u4-stress1-fx0-osc21-short2` (maximum block ratio 3.973). It
was not discarded or called a PASS. One pre-bounded nine-pair control series was
therefore run for exactly that suspected case, alternating the same unchanged
Start/candidate Release binary 18 times. All 18 runs had zero deadline misses;
maximum RTF was 0.113015 and maximum block ratio 0.224513. No further retry was
performed. Evidence is retained at `verification/cpu-representative-release/`
and `verification/cpu-48k128-stress-confirmation/`.

Conclusion: there is no reproducible new code-performance regression in
V0.13.0. The isolated first-run scheduling spike remains visible in the report
rather than being erased. This conclusion is not a general performance
guarantee and does not clear the independent historical D96/64 hard-deadline
finding. The V0.11.5 confirmation with eleven misses remains **OPEN/deferred**.
On 2026-09-05 the user explicitly accepted that unchanged technical finding as
a known V1.0 release risk. This is risk acceptance, not a D96/64 PASS. No new
optimization or profiling was justified, so none was performed.

## Artifacts and package

The verified development outputs and their byte-identical local copies are:

- Debug VST3:
  `build/DeepPluck_artefacts/Debug/VST3/DeepPluck.vst3` and
  `Artifacts/Debug/DeepPluck.vst3`.
- Debug Standalone:
  `build/DeepPluck_artefacts/Debug/Standalone/DeepPluck.exe` and
  `Artifacts/Debug/DeepPluck.exe`.
- Release VST3:
  `build/DeepPluck_artefacts/Release/VST3/DeepPluck.vst3` and
  `Artifacts/Release/DeepPluck.vst3`.
- Release Standalone:
  `build/DeepPluck_artefacts/Release/Standalone/DeepPluck.exe` and
  `Artifacts/Release/DeepPluck.exe`.

The ignored release-candidate package is
`Artifacts/V0.13.0/20260905T102000Z/final/release-package/package/`. It contains
only:

- `DeepPluck.exe` — 9,945,088 bytes,
  SHA-256 `ebdb27accd6fc36a6c9fce6d2500cd49e67b13f5affab611038413806a897b97`;
- `DeepPluck.vst3/Contents/Resources/moduleinfo.json` — 1,089 bytes,
  SHA-256 `cb169e839a0d107010b08b1b668147a4611a4e95ec57de1f44c6657b8604eb04`;
- `DeepPluck.vst3/Contents/x86_64-win/DeepPluck.vst3` — 10,300,416 bytes,
  SHA-256 `b0964158c8bed7df4a07783e4911b0b3e8db827f805bc522e31256fc7cbb4588`.

The manifest is deliberately beside, not inside, the distributable package.
Debug binaries, presets, benchmark/profile tools, sources, tests, logs, private
paths and evidence are absent. Nothing was installed into a system VST3 or
application directory.

## Known limitations

- The VST3 editor remains fixed at 1536 x 900 and Standalone at 1536 x 980; a
  free-scaling UI is not implemented.
- The virtual piano is Standalone-only and mouse-only. It has no QWERTZ/computer
  keyboard control, sustain/hold, pitch bend, MIDI learn, arpeggiator or MIDI
  output.
- There is no modulation matrix, additional post-V0.9 effect family, installer,
  signing, updater, upload or multi-platform validation.
- Granular Cubase, realtime/offline, device, Windows DPI and listening results
  were not separately itemized. The recorded manual evidence is the user's
  2026-09-05 practical milestone-level acceptance.
- The historical D96/64 hard-deadline finding remains technically OPEN/deferred;
  its unchanged V1.0 release risk was explicitly accepted by the user on
  2026-09-05.

## Manual acceptance — ACCEPTED AT MILESTONE LEVEL

On 2026-09-05 the user stated that the current synth runs without recognizable
errors and declared V0.13.0 complete. This closes the practical V0.13.0 manual
gate at milestone level. The checklist below records the intended scope, but the
user did not report every item separately; no individual PASS is invented. The
separate D96/64 release-risk decision is also ACCEPTED.

### Cubase checklist scope — not individually itemized

- VST3 scan succeeds under the unchanged identity without duplicate/stale entry.
- Plugin loads in a fresh project and an existing project.
- All 62 parameters appear with correct names, ranges, text and automation.
- Old project/state/preset recall is compatible; save, close and reopen is exact.
- Factory and user preset browsing, save/save-as/delete/folder workflow work.
- Random Amount, section locks and Undo behave correctly.
- Note-on/off, chords, rapid retrigger and voice stealing produce no stuck notes.
- Chorus, Delay, Reverb and all legal orders work; tails do not hang.
- Realtime playback and offline bounce agree musically.
- Multiple instances work without unexpected CPU spikes or dropouts.
- VST3 remains 1536 x 900 and contains no virtual keyboard.

### Standalone checklist scope — not individually itemized

- Application opens/reopens and the desired audio and MIDI devices can be used.
- Main UI plus the complete 80-pixel keyboard strip are visible.
- White/black keys, mouse-up, drag, chords and rapid retrigger work without a
  stuck note.
- `Oct -` / `Oct +` and their boundaries are correct.
- External MIDI works alone and simultaneously with virtual MIDI.
- Preset changes, audio-device stop/start and closing while a note is held are
  safe.
- Normal sound output, levels, tails and shutdown are correct on real hardware.

### GUI and DPI checklist scope — not individually itemized

- VST3 and Standalone are completely visible at Windows 100%, 125% and 150%
  scaling on the intended monitor setup.
- Main, Modulation, FX and Settings tabs remain aligned and fully operable.
- Labels, value fields, meters, switches, knobs, hover help and focus order are
  readable and unobstructed.
- Welcome overlay, “Don't show this again”, re-arm/show-now and About/version/URL
  behave correctly in real processes.

### Listening checklist scope — not individually itemized

- Representative presets in all eight Factory categories retain the intended
  Sound-Manifest character.
- Oscillator 2, unison, transient, noise, filter resonance/drive compensation,
  LFO routing and voice stealing remain musically correct.
- Dry versus Chorus/Delay/Reverb and alternate FX orders do not produce an
  excessive loudness loss, clipping, click or unstable tail.
- No obvious tone, stereo image, transient, envelope or headroom regression is
  audible against the accepted V0.12.75 product.

### Performance checklist scope and accepted release-risk decision

- A normal Cubase project and multiple instances are stable.
- 44.1/48/96 kHz and small/normal ASIO buffers are exercised where the real
  setup permits.
- No unexpected CPU spike or dropout is observed in practical use.
- **ACCEPTED 2026-09-05:** the user accepts the still-technically-open historical
  D96/64 finding as a known V1.0 release risk. This is not a technical PASS.

## Git and final status

Only the V0.13.0 version, RC evidence/packaging scripts and synchronized project
documentation are eligible for the milestone commit. `build/`, `Artifacts/`,
protected untracked user files and `JUCE/` must remain unstaged. The milestone
commit cannot contain its own hash; the exact commit hash and post-commit status
are reported in the final handoff.

Automatable V0.13.0 RC hardening: **PASS**.

Manual release-critical acceptance: **ACCEPTED AT MILESTONE LEVEL 2026-09-05**.

Historical D96/64 technical finding: **OPEN/deferred**.

Historical D96/64 V1.0 release-risk decision: **ACCEPTED 2026-09-05**.

Final verdict: **READY FOR V1.0 RELEASE PREPARATION**.
