Docs: record cross-rate playback; finish SEPT_VERIFY sample-rate checks

This commit is contained in:
2026-09-25 14:31:27 -04:00
parent 783ad7546e
commit c3e7556261
2 changed files with 30 additions and 2 deletions
+22
View File
@@ -1811,3 +1811,25 @@ Windows window class, so side-by-side installs could run the wrong channel's cod
each channel now registers its own class. Mechanism detail: `src/core/ui/CLAUDE.md`
(`window_origin`) and `src/shell/actions/drag_out_win.h`. Not DAW-verified — checks
are tracked in `docs/SEPT_VERIFY.md` §4.
### Cross-rate playback: ReaSampler 9000 plays any file rate at its own pitch and length
ReaSampler 9000 now plays a sample whose file rate differs from the project rate at its
correct pitch and wall-clock length — previously, e.g., a 44.1 kHz file in a 48 kHz project
played about 1.47 semitones sharp and short. The fix folds a file-rate/host-rate factor
into the read once per note rather than resampling at load; envelope stage times, the
filter, the loop crossfade, the Preserve (time-stretch) engine, and the bake all follow the
same factor (`SampleData::sourceRateRatio`, `play_params.h`; mechanism detail lives in
`src/core/instrument/CLAUDE.md`'s "Two frame domains" section, not restated here).
Same-rate playback at Rate 100% is unchanged, pinned by hashes of pre-change renders.
Landed in the same merge: a Preserve splice-crossfade fix that also changes output at
matched rate for high Rate settings (~200%+) — a down-splice previously read audio a prior
splice had already overwritten; Daniel approved the change. A file more than 32x the
project rate (`kMaxSourceRateRatio`, `play_params.h`) is refused: the ReaSampler 9000
editor title shows "... -- <refusal text>, not played" (clearing once another sample loads
or the project rate makes it supported), and a bake refuses with "cannot render: ...". A
project sample-rate change while the plugin is inactive re-stamps in place rather than
reloading from disk.
Not DAW-verified — checks are tracked in `docs/SEPT_VERIFY.md` §6.
+8 -2
View File
@@ -74,7 +74,7 @@ project rate 48000, unless a check says otherwise.
- [ ] Run stable and beta ReaSampler 9000 side by side and open both editors — each works normally,
no crash
## 5. Live spline-envelope drags (in progress, Sept 2026)
## 5. Live spline-envelope drags (landed Sept 2026)
- [ ] Set the amp envelope to Spline, hold a note, and drag a knot — the sound audibly follows the
shape change during the drag itself
@@ -90,7 +90,7 @@ project rate 48000, unless a check says otherwise.
- [ ] With a note held, add a new point to the spline — audible immediately
- [ ] With a note held, delete a point from the spline — audible immediately
## 6. Sample-rate playback (in progress, Sept 2026)
## 6. Sample-rate playback (landed Sept 2026)
- [ ] In a 48 kHz project, import a 44.1 kHz file via the Media Explorer into ReaSampler 9000; play
its root note — same pitch and length as the file auditioned in the Media Explorer. Repeat in
@@ -105,3 +105,9 @@ project rate 48000, unless a check says otherwise.
- [ ] Existing projects that used mismatched-rate samples WILL sound different now (correct pitch)
— reopen one and confirm it's the expected change
- [ ] Same-rate samples sound exactly as before
- [ ] In Preserve mode at matched rate, set Rate to ~200% — sounds clean (this changed with the
splice-crossfade fix; confirm it's an improvement, not a regression)
- [ ] Load a file more than 32x the project rate (e.g. a 384 kHz file in an 11.025 kHz project, if
one is available) — the editor title shows the refusal message, the sample plays silent, the
message clears when another sample is loaded, and a bake shows "cannot render"
- [ ] The refusal text is not truncated at the default editor width