Name captures after their source track: label and filename both, on every interactive mint site, and show the name on the panel card

This commit is contained in:
2026-08-01 21:46:53 -04:00
parent 09d64c9f46
commit 3278b4eced
23 changed files with 626 additions and 25 deletions
+13 -4
View File
@@ -243,7 +243,7 @@ CaptureResult renderOffline(CaptureScope scope,
CaptureResult captureAndIndexOne(ReaSamplerSession& session,
CaptureScope scope,
const ResolvedSource& src,
const std::string& baseName,
const CaptureName& name,
double startSeconds,
double endSeconds)
{
@@ -262,7 +262,8 @@ CaptureResult captureAndIndexOne(ReaSamplerSession& session,
req.sampleRate = 0; // follow project rate
req.channelCount = 2;
req.bitDepth = WavBitDepth::Float32; // deterministic, no dither
req.baseName = baseName;
req.baseName = name.stemBase;
req.displayName = name.label;
req.trackGuids = src.trackGuids; // recorded on the Sample (provenance)
// M10: compute provenance BEFORE the FxBypassGuard neutralizes the in-scope chain —
@@ -320,7 +321,12 @@ std::string RunCapture(ReaSamplerSession& session, const CaptureActionDef& def)
return {};
}
CaptureResult res = captureAndIndexOne(session, def.scope, src, def.baseName,
// The scope literal survives only as the fallback for a source whose name could not
// be read at all — the source track names the capture on every reachable path.
const CaptureName name =
captureNameFor(src.trackNames, /*ordinal=*/0, def.baseName);
CaptureResult res = captureAndIndexOne(session, def.scope, src, name,
src.startSeconds, src.endSeconds);
if (res.status != CaptureStatus::Ok)
{
@@ -438,7 +444,10 @@ void RunCaptureRealtimeTrack(ReaSamplerSession& session)
req.sampleRate = 0; // follow project rate
req.channelCount = 2;
req.bitDepth = WavBitDepth::Float32;
req.baseName = "realtime";
const CaptureName name =
captureNameFor(src.trackNames, /*ordinal=*/0, "realtime");
req.baseName = name.stemBase;
req.displayName = name.label;
req.trackGuids = src.trackGuids; // provenance on the Sample
CaptureResult failure;