S3: pure sampler core — voices, ADSR, keymap, loop-aware repitch
REAPER-free and VST3-free voice engine with bounded stealing, ADSR envelope, key/velocity keymap resolution, and repitch from root note with loop-point sustain. Test target links neither SDK.
This commit is contained in:
@@ -446,6 +446,22 @@ add_library(card_drag STATIC src/card_drag.cpp)
|
||||
target_include_directories(card_drag PUBLIC src)
|
||||
target_link_libraries(card_drag PUBLIC drag_out bank_grid)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 2v) Pure sampler_core library — NO VST3, NO REAPER, NO SWELL. The HEART of the
|
||||
# Phase S MIDI-playback instrument (S3 / D3): polyphonic voice allocation with
|
||||
# bounded stealing, an ADSR amplitude envelope, a key/velocity keymap with
|
||||
# (note, velocity) -> zone resolution, and repitch/interpolation from a root note
|
||||
# with loop-point-aware sustain. The mirror of bank_model / peaks / bank_book,
|
||||
# tested hard outside any host. Lives under src/vst/ (it is instrument code) but
|
||||
# links NEITHER SDK — the plain-data boundary is enforced structurally: the test
|
||||
# target below links only sampler_core (+ its peaks dep for the AudioSample alias,
|
||||
# the one house precedent wav_trim also relies on). The VST3 shell (src/vst/
|
||||
# reasampler_processor.cpp) marshals MIDI/audio to/from it and is DAW-verified.
|
||||
# ---------------------------------------------------------------------------
|
||||
add_library(sampler_core STATIC src/vst/sampler_core.cpp)
|
||||
target_include_directories(sampler_core PUBLIC src src/vst)
|
||||
target_link_libraries(sampler_core PUBLIC peaks)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 3) Standalone tests for the pure modules (run without launching REAPER).
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -584,6 +600,13 @@ add_executable(card_drag_tests tests/test_card_drag.cpp)
|
||||
target_link_libraries(card_drag_tests PRIVATE card_drag)
|
||||
add_test(NAME card_drag_tests COMMAND card_drag_tests)
|
||||
|
||||
# sampler_core: the S3 heart. Links ONLY sampler_core (+ its peaks dep) — NEITHER the
|
||||
# VST3 SDK nor the REAPER SDK — which is the structural proof of the plain-data
|
||||
# boundary (a VST3/REAPER type in the core would fail to compile/link here).
|
||||
add_executable(sampler_core_tests tests/test_sampler_core.cpp)
|
||||
target_link_libraries(sampler_core_tests PRIVATE sampler_core)
|
||||
add_test(NAME sampler_core_tests COMMAND sampler_core_tests)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 2i) Pure VST3-instrument helpers (Phase S1) — NO VST3, NO REAPER, NO SWELL/LICE.
|
||||
# editor_geometry: the IPlugView LICE editor's rectangle layout + hit-test math
|
||||
|
||||
Reference in New Issue
Block a user