Commit Graph

23 Commits

Author SHA1 Message Date
daniel 8a7dc4b1c6 fix(trigger-seam): thread startFrame into both envelope converters; extract pure triggerPlayLength module + tests 2026-07-27 14:37:05 -04:00
daniel c12a374b88 Phase S Wave 2: three-view ReaSampler 9000 editor (Sample home / Browse modal / Zone)
Retire the flat toggle; Sample-home face wires the Wave-1 envelope overlay + draggable nodes, preview button + velocity knob, Mono/Stereo, key-track. Browse reduced to a confirm/cancel modal; Zone retained with piano-pattern strip. RT-safe off-thread preview-note mailbox added.
2026-07-27 14:17:58 -04:00
daniel 7528a53a2a feat(vst-editor): bump default window to 840x560 + checkSizeConstraint floor (S-VIEW-SIZE-1) 2026-07-27 13:26:11 -04:00
daniel 774d753b4c Phase L L3: restyle VST editor + embed strip through the L1 kit (B pastel + spectral strip) 2026-07-27 05:30:44 -04:00
daniel 26e2bf2fc6 S17 drop-and-load onto track FX button; S13 editor drop-accept (relay degraded)
S17: drag_out InstrumentDrop gesture + instrument_drop blob reusing the
instrument's own serializer; bank_panel FX hover-track + add-VST/vst_chunk
inject. S13 relay deferred (read-only bridge) — editor shows drop affordance.
2026-07-27 04:34:01 -04:00
daniel a54af277e4 S12: store wall-clock ADSR/pitch-env as seconds, resolve to frames at live rate
Kill kTier0Nominal*, adsrNeedsRateResolve, tier0Adsr, gateAdsr. Zones payload v5 carries
seconds; v3 legacy reads convert at the frozen authoring rate; v4 (branch-only) dropped.
Editor sliders now seconds. Engine takes frames resolved at keymap build.
2026-07-27 04:25:38 -04:00
daniel 1d338318e7 fix: S12 R2 — marker-drag sets selectedZone_, ADSR rate-resolve, gateAdsr doc
Marker drag now sets selectedZone_ so single-capture controls stay reachable. Lifted/default ADSR rescales nominal 44100-Hz frame counts by sampleRate/44100 via adsrNeedsRateResolve; v4-authored zones skip rescale. gateAdsr documented vestigial.
2026-07-27 04:20:34 -04:00
daniel 7fb778206c fix(S12 review): per-zone A/D/S/R reaches voice; zones payload v4 + v3 back-compat
Voice::start reads full zone ADSR instead of folding only holdFrames into instrument-wide gateAdsr. Wire format bumped to v4 (four new fields); v3 blobs lift A/D/S/R to kTier0Nominal* constants. Single-capture editor controls now reachable. Minor comment and geometry fixes.
2026-07-27 04:20:34 -04:00
daniel 4f30124ef7 S12: editor scale + S15/S16 control surfaces
Pure browser_scroll/note_entry/param_slider modules (+ CTest) for scroll,
type-to-filter search, numeric note entry, and the AHDSR/Trigger/pitch-engine/
pitch-env control panel. Editor shell draws + routes through them; params edit
the selected zone's ZonePlayParams via commitAndReload.
2026-07-27 04:20:34 -04:00
daniel f79b9cafa3 Merge ps-w10-vst-channel: S18 VST3 channel isolation 2026-07-27 04:20:34 -04:00
daniel 8785cbe646 Merge ps-w9-t1-sync: S9 bank-generation change-detection + assignment reader 2026-07-27 04:16:49 -04:00
daniel fe55a9a96e feat(vst): S18 VST3 channel isolation — beta ReaSampler 9000 pairs with beta extension only
Fork the VST3 class UID (beta UID minted+frozen), on-disk name, and display
name by the one channel bit via app_version; couple UID selection to the
channel at compile time so a refactor can't split identity from data.
2026-07-27 04:16:49 -04:00
daniel 66d47fb410 feat(S9/S8): bank-generation change-detection + instrument-side assignment reader
Extension stamps a monotonic bank_generation counter, bumped at content
mutations; the VST3 instrument polls it off-thread on an editor timer and
consumes assignment requests, refreshing playback hands-free.
2026-07-27 04:15:59 -04:00
daniel 70d73ea798 fix(vst): replace non-ASCII em-dash/ellipsis in editor string literals with ASCII equivalents to fix mojibake on ANSI DrawTextA path 2026-07-27 04:15:08 -04:00
daniel 75f717bd47 Merge ps-w8-t2-waveform: S11 waveform view + draggable loop points 2026-07-27 04:15:08 -04:00
daniel 38238c66ac fix S11 review: extract upsertPickedOverride, restore map_ on drag-cancel, clamp start to frames-1, pin startFrame>loopEnd wrap test 2026-07-27 04:09:50 -04:00
daniel 4a3551b3b9 S7: stereo channel mode — core channel dimension, v4 mode state, VST3 bus negotiation, editor toggle
Per-instance mono|stereo (default mono, byte-identical). Stereo grows SampleData a 2nd
channel + a per-channel VoiceEngine render; decodeChannels applies the cross-mode policy;
setBusArrangements pins the mode's arrangement and restartComponent(kIoChanged) re-negotiates.
2026-07-27 04:09:50 -04:00
daniel 9743547dff S11: waveform view with draggable start/loop markers + zero-crossing snap
Pure waveform_view module (frame<->pixel markers, zero-crossing snap); per-zone
loop/start overrides on PerformanceZone with self-versioning zone payload; core
start-point read offset; editor waveform surface with drag machine.
2026-07-27 04:09:50 -04:00
daniel b9ad1ee18f fix S10 code-review findings: WM_CAPTURECHANGED, proportional drag, paintSetup root source, Add Zone dedup, strip-area helpers 2026-07-27 04:09:50 -04:00
daniel 7151e19432 S10: capture-first ReaSampler 9000 editor — browser, single-capture setup, zones toggle
Reverse S4 auto-select (empty=silence+empty state), add peak-thumbnail capture
browser + bank filter + keyboard-strip drag machine, v3 component state (selection
+ zones), and the S-NAME-1 filename/display rename (UID locked). MSVC min/max
macro collisions fixed post-implementation; 26/26 tests green.
2026-07-27 04:09:50 -04:00
daniel 2356958930 S5 Tier-1: zoned keymap editor + performance-map playback/persistence
Zone editor in the IPlugView LICE surface, zoned resolution built off-thread into the
LoadedInstrument keymap with Tier-0 fallback, performance map in VST3 component state
with v1 back-compat. Pure resolve/build/serialize + geometry with CTest coverage.
2026-07-27 04:07:10 -04:00
daniel 0cde457224 S4 Tier 0: the bank plays — VST3 marshals MIDI to the S3 core, reads the live bank + resolves WAV the M4 way, mono downmix, lock-free load handoff, LICE sample-pick 2026-07-27 04:07:09 -04:00
daniel 3c2a7c45b2 feat(vst): stand up VST3 instrument spike (S1) — skeleton, IPlugView↔LICE editor, REAPER bridge read
Vendor Steinberg VST3 SDK (v3.7.9_build_61); add reasampler_vst.vst3 as a second, additive build artifact with pure editor-geometry + bridge-marshal helpers under CTest.
2026-07-27 04:02:28 -04:00