@openmixer/plugin-qualify 0.10.1 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +52 -10
- package/bin/plugin-qualify.mjs +61 -28
- package/dist/clap-loader.d.ts +1 -1
- package/dist/clap-loader.js +3 -3
- package/dist/clap-loader.js.map +1 -1
- package/dist/clap-qualify.d.ts +60 -51
- package/dist/clap-qualify.js +143 -91
- package/dist/clap-qualify.js.map +1 -1
- package/dist/cost-fields.d.ts +26 -0
- package/dist/cost-fields.js +30 -0
- package/dist/cost-fields.js.map +1 -1
- package/dist/hosting-codes.d.ts +1 -0
- package/dist/hosting-codes.js +1 -0
- package/dist/hosting-codes.js.map +1 -1
- package/dist/hosting-suitability.d.ts +22 -3
- package/dist/hosting-suitability.js +25 -5
- package/dist/hosting-suitability.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/judge-cli.d.ts +41 -0
- package/dist/judge-cli.js +114 -0
- package/dist/judge-cli.js.map +1 -0
- package/dist/measurement/cli.d.ts +7 -0
- package/dist/measurement/cli.js +14 -0
- package/dist/measurement/cli.js.map +1 -1
- package/dist/measurement/format.d.ts +44 -4
- package/dist/measurement/format.js +46 -3
- package/dist/measurement/format.js.map +1 -1
- package/dist/measurement/probe-json.js +4 -0
- package/dist/measurement/probe-json.js.map +1 -1
- package/dist/measurement/sweep-jsonl.js +2 -1
- package/dist/measurement/sweep-jsonl.js.map +1 -1
- package/dist/measurement/vocabulary.d.ts +9 -0
- package/dist/measurement/vocabulary.js +33 -0
- package/dist/measurement/vocabulary.js.map +1 -1
- package/dist/probe-judge.d.ts +65 -0
- package/dist/probe-judge.js +217 -0
- package/dist/probe-judge.js.map +1 -0
- package/dist/probe-output-fixtures.d.ts +25 -0
- package/dist/probe-output-fixtures.js +134 -0
- package/dist/probe-output-fixtures.js.map +1 -0
- package/dist/probe-output.d.ts +153 -0
- package/dist/probe-output.js +374 -0
- package/dist/probe-output.js.map +1 -0
- package/dist/probe-runner.d.ts +79 -0
- package/dist/probe-runner.js +191 -0
- package/dist/probe-runner.js.map +1 -0
- package/dist/qualification-record.d.ts +82 -0
- package/dist/qualification-record.js +85 -0
- package/dist/qualification-record.js.map +1 -0
- package/dist/qualify-cli.js +1 -1
- package/dist/qualify-cli.js.map +1 -1
- package/dist/qualify-declarations.d.ts +11 -2
- package/dist/qualify-declarations.js +14 -4
- package/dist/qualify-declarations.js.map +1 -1
- package/fixtures/clap-scan/fake.json +30 -6
- package/fixtures/probe-output/memory-limit-refused.json +190 -0
- package/fixtures/probe-output/plugin-crash.json +236 -0
- package/fixtures/probe-output/success-msi.json +363 -0
- package/package.json +5 -1
- package/src/clap-loader.ts +3 -2
- package/src/clap-qualify.ts +179 -138
- package/src/cost-fields.ts +39 -0
- package/src/hosting-codes.ts +1 -0
- package/src/hosting-suitability.ts +42 -7
- package/src/index.ts +5 -0
- package/src/judge-cli.ts +133 -0
- package/src/measurement/cli.ts +20 -0
- package/src/measurement/format.ts +80 -2
- package/src/measurement/probe-json.ts +4 -0
- package/src/measurement/sweep-jsonl.ts +2 -1
- package/src/measurement/vocabulary.ts +38 -0
- package/src/probe-judge.ts +272 -0
- package/src/probe-output-fixtures.ts +146 -0
- package/src/probe-output.ts +511 -0
- package/src/probe-runner.ts +244 -0
- package/src/qualification-record.ts +149 -0
- package/src/qualify-cli.ts +1 -1
- package/src/qualify-declarations.ts +16 -4
- package/tools/benchmark.py +116 -13
- package/tools/lv2-measure.mjs +2 -0
package/dist/clap-qualify.js
CHANGED
|
@@ -10,20 +10,24 @@
|
|
|
10
10
|
* read, a prober that is absent, crashed or timed out, is a {@link ClapQualifyError}: nothing was
|
|
11
11
|
* measured, and nothing is rated.
|
|
12
12
|
*/
|
|
13
|
-
import { spawnSync } from "node:child_process";
|
|
14
13
|
import { existsSync } from "node:fs";
|
|
15
|
-
import {
|
|
14
|
+
import { CLAP_QUALIFY_TOOL_NAME, RT_INTERPOSE_NAME } from "./qualify-declarations.js";
|
|
16
15
|
import { HOSTING_CODE, clapRtReasons, contributedHostingRating, noteSweepReasons, rtSafetyReasons, } from "./hosting-suitability.js";
|
|
17
16
|
import { OMX_CLAP_HOST_CONFIGURED_EXTENSIONS, OMX_CLAP_HOST_EXTENSIONS, OPENMIXER_CONSOLE_PROFILE, } from "./host-profiles.js";
|
|
18
17
|
import { RATING_SEVERITY, worstRating } from "./rating.js";
|
|
19
18
|
import { halfPopulatedRefusal, locateNativeTools } from "./tool-paths.js";
|
|
20
19
|
import { readIntegrity } from "./measurement/format.js";
|
|
20
|
+
import { isVoiceBasis } from "./measurement/vocabulary.js";
|
|
21
|
+
import { coreFraction } from "./cost-fields.js";
|
|
21
22
|
export class ClapQualifyError extends Error {
|
|
22
23
|
constructor(message) {
|
|
23
24
|
super(message);
|
|
24
25
|
this.name = "ClapQualifyError";
|
|
25
26
|
}
|
|
26
27
|
}
|
|
28
|
+
export function isClapCostFigure(at) {
|
|
29
|
+
return !("unmeasuredReason" in at);
|
|
30
|
+
}
|
|
27
31
|
const SHA256 = /^[0-9a-f]{64}$/;
|
|
28
32
|
function isRecord(v) {
|
|
29
33
|
return Object.prototype.toString.call(v) === "[object Object]";
|
|
@@ -59,7 +63,16 @@ function readClap(v) {
|
|
|
59
63
|
for (const [rate, at] of Object.entries(latencyIn)) {
|
|
60
64
|
if (!/^[1-9]\d*$/.test(rate) || !isRecord(at))
|
|
61
65
|
return bad(`clap latency at ${rate}`);
|
|
62
|
-
|
|
66
|
+
if (at["from"] !== undefined && at["from"] !== "note")
|
|
67
|
+
return bad(`clap latency at ${rate} from ${JSON.stringify(at["from"])}`);
|
|
68
|
+
if (at["heard"] !== undefined && (at["from"] !== "note" || at["heard"] !== false))
|
|
69
|
+
return bad(`clap latency at ${rate} heard`);
|
|
70
|
+
latency[rate] = {
|
|
71
|
+
declaredFrames: count(at, "declaredFrames", `latency ${rate}`),
|
|
72
|
+
measuredFrames: count(at, "measuredFrames", `latency ${rate}`),
|
|
73
|
+
...(at["from"] === "note" ? { from: "note" } : {}),
|
|
74
|
+
...(at["heard"] === false ? { heard: false } : {}),
|
|
75
|
+
};
|
|
63
76
|
}
|
|
64
77
|
return {
|
|
65
78
|
mainInputChannels: count(v, "mainInputChannels", "clap"),
|
|
@@ -120,6 +133,126 @@ function readNoteSweep(v) {
|
|
|
120
133
|
events: strings(v, "events", "noteSweep"),
|
|
121
134
|
};
|
|
122
135
|
}
|
|
136
|
+
function figure(o, key, where) {
|
|
137
|
+
const v = o[key];
|
|
138
|
+
return typeof v === "number" && Number.isFinite(v) && v >= 0 ? v : bad(`${where} has no figure ${key}`);
|
|
139
|
+
}
|
|
140
|
+
function readVoices(v, where) {
|
|
141
|
+
if (!isRecord(v))
|
|
142
|
+
return bad(`${where} voices is not an object`);
|
|
143
|
+
const out = {};
|
|
144
|
+
if ("held" in v || "basis" in v) {
|
|
145
|
+
const basis = v["basis"];
|
|
146
|
+
if (!isVoiceBasis(basis))
|
|
147
|
+
return bad(`${where} voices basis ${JSON.stringify(basis)}`);
|
|
148
|
+
const held = count(v, "held", `${where} voices`);
|
|
149
|
+
if (held === 0)
|
|
150
|
+
return bad(`${where} holds no note`);
|
|
151
|
+
out.held = held;
|
|
152
|
+
out.basis = basis;
|
|
153
|
+
}
|
|
154
|
+
if ("capacity" in v)
|
|
155
|
+
out.capacity = count(v, "capacity", `${where} voices`);
|
|
156
|
+
return out;
|
|
157
|
+
}
|
|
158
|
+
function readCostAtRate(v, where, notes) {
|
|
159
|
+
if (!isRecord(v))
|
|
160
|
+
return bad(`${where} is not an object`);
|
|
161
|
+
const voices = v["voices"] === undefined ? undefined : readVoices(v["voices"], where);
|
|
162
|
+
if (voices !== undefined && !notes)
|
|
163
|
+
return bad(`${where} holds notes for a plugin fed noise`);
|
|
164
|
+
if (v["unmeasuredReason"] !== undefined) {
|
|
165
|
+
if (voices?.held !== undefined)
|
|
166
|
+
return bad(`${where} held notes and timed nothing`);
|
|
167
|
+
return {
|
|
168
|
+
unmeasuredReason: str(v, "unmeasuredReason", where),
|
|
169
|
+
unmeasuredDetail: str(v, "unmeasuredDetail", where),
|
|
170
|
+
...(voices?.capacity === undefined ? {} : { voices: { capacity: voices.capacity } }),
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
if (notes && (voices === undefined || voices.held === undefined || voices.basis === undefined)) {
|
|
174
|
+
return bad(`${where} timed an instrument without saying what it held`);
|
|
175
|
+
}
|
|
176
|
+
const blocks = count(v, "blocks", where);
|
|
177
|
+
if (blocks === 0)
|
|
178
|
+
return bad(`${where} timed no block`);
|
|
179
|
+
return {
|
|
180
|
+
nsPerSampleMedian: figure(v, "nsPerSampleMedian", where),
|
|
181
|
+
nsPerSampleP95: figure(v, "nsPerSampleP95", where),
|
|
182
|
+
nsPerSampleMin: figure(v, "nsPerSampleMin", where),
|
|
183
|
+
nsPerSampleMax: figure(v, "nsPerSampleMax", where),
|
|
184
|
+
warmupNsPerSampleMedian: figure(v, "warmupNsPerSampleMedian", where),
|
|
185
|
+
blocks,
|
|
186
|
+
...(voices?.held === undefined || voices.basis === undefined
|
|
187
|
+
? {}
|
|
188
|
+
: { voices: { held: voices.held, basis: voices.basis, ...(voices.capacity === undefined ? {} : { capacity: voices.capacity }) } }),
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
function readCost(v) {
|
|
192
|
+
if (!isRecord(v))
|
|
193
|
+
return bad("cost is not an object");
|
|
194
|
+
const stimulus = str(v, "stimulus", "cost");
|
|
195
|
+
if (stimulus !== "notes-held" && stimulus !== "noise")
|
|
196
|
+
return bad(`cost stimulus ${stimulus}`);
|
|
197
|
+
const perRateIn = v["perRate"];
|
|
198
|
+
if (!isRecord(perRateIn))
|
|
199
|
+
return bad("cost has no perRate map");
|
|
200
|
+
const perRate = {};
|
|
201
|
+
for (const [rate, at] of Object.entries(perRateIn)) {
|
|
202
|
+
if (!/^[1-9]\d*$/.test(rate))
|
|
203
|
+
return bad(`cost rate ${rate}`);
|
|
204
|
+
perRate[rate] = readCostAtRate(at, `cost at ${rate}`, stimulus === "notes-held");
|
|
205
|
+
}
|
|
206
|
+
return {
|
|
207
|
+
stimulus,
|
|
208
|
+
blockFrames: count(v, "blockFrames", "cost"),
|
|
209
|
+
warmupBlocks: count(v, "warmupBlocks", "cost"),
|
|
210
|
+
percentile: figure(v, "percentile", "cost"),
|
|
211
|
+
perRate,
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* The cost arm's figures as the classifier's cost gate reads them, per rate: the median and the P95
|
|
216
|
+
* per sample, and the P95 as a fraction of one core at that rate. A rate the arm did not time is absent.
|
|
217
|
+
*/
|
|
218
|
+
export function clapCostPerRate(cost) {
|
|
219
|
+
const out = {};
|
|
220
|
+
for (const [rate, at] of Object.entries(cost?.perRate ?? {})) {
|
|
221
|
+
if (!isClapCostFigure(at))
|
|
222
|
+
continue;
|
|
223
|
+
const fraction = coreFraction(at.nsPerSampleP95, Number(rate));
|
|
224
|
+
if (fraction === undefined)
|
|
225
|
+
continue;
|
|
226
|
+
out[rate] = {
|
|
227
|
+
coreFractionP95: fraction,
|
|
228
|
+
nsPerSampleMedian: at.nsPerSampleMedian,
|
|
229
|
+
nsPerSampleP95: at.nsPerSampleP95,
|
|
230
|
+
...(at.voices === undefined ? {} : { voices: at.voices }),
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
return out;
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* A prober line as the plugin the full classifier (`classifyPluginHosting`) reads: the CLAP facts, the
|
|
237
|
+
* interposer's counts with the note sweep beside them, and the cost arm's figures per rate. The prober
|
|
238
|
+
* measures no stability (that is the soak's), so the caller passes what it has; without it the verdict
|
|
239
|
+
* is `unknown` on stability, never a pass.
|
|
240
|
+
*/
|
|
241
|
+
export function qualifiedPluginOfClapLine(line, stability) {
|
|
242
|
+
const { events: _events, ...rtSafety } = line.rtSafety;
|
|
243
|
+
const { events: _noteEvents, ...noteSweep } = line.noteSweep;
|
|
244
|
+
const { nonFinite: _nonFinite, ...clap } = line.clap;
|
|
245
|
+
return {
|
|
246
|
+
format: "clap",
|
|
247
|
+
audioInputs: line.clap.mainInputChannels,
|
|
248
|
+
audioOutputs: line.clap.mainOutputChannels,
|
|
249
|
+
hasMidiIn: line.clap.noteInputs > 0,
|
|
250
|
+
clap,
|
|
251
|
+
rtSafety: { ...rtSafety, noteSweep },
|
|
252
|
+
cpuCost: { perRate: clapCostPerRate(line.cost) },
|
|
253
|
+
...(stability === undefined ? {} : { stability }),
|
|
254
|
+
};
|
|
255
|
+
}
|
|
123
256
|
/** One line of the prober's stdout, or a {@link ClapQualifyError} saying how it differs. */
|
|
124
257
|
export function parseClapQualifyLine(text) {
|
|
125
258
|
let v;
|
|
@@ -151,6 +284,7 @@ export function parseClapQualifyLine(text) {
|
|
|
151
284
|
clap: readClap(v["clap"]),
|
|
152
285
|
rtSafety: readRtSafety(v["rtSafety"]),
|
|
153
286
|
noteSweep: readNoteSweep(v["noteSweep"]),
|
|
287
|
+
...(v["cost"] === undefined ? {} : { cost: readCost(v["cost"]) }),
|
|
154
288
|
integrity: readIntegrity(v["integrity"]) ?? bad("no integrity"),
|
|
155
289
|
};
|
|
156
290
|
}
|
|
@@ -163,9 +297,11 @@ export function parseClapQualifyOutput(stdout) {
|
|
|
163
297
|
* The document's schema name; a reader refuses any other it does not know. `/2` is `/1` with
|
|
164
298
|
* `measured.noteSweep` added and the note sweep's reasons folded into `verdict` (a plugin with no
|
|
165
299
|
* note input gets none, so its `/2` verdict is its `/1` verdict); every `/1` field is unchanged, so
|
|
166
|
-
* a `/1` reader of `verdict.rating` and `verdict.rtSafe` reads a `/2` document right.
|
|
300
|
+
* a `/1` reader of `verdict.rating` and `verdict.rtSafe` reads a `/2` document right. `/3` is `/2`
|
|
301
|
+
* with `measured.cost` added (the cost arm, an instrument's with the notes it held), which no
|
|
302
|
+
* verdict reads.
|
|
167
303
|
*/
|
|
168
|
-
export const RT_SAFETY_DOCUMENT_SCHEMA = "plugin-qualify.rt-safety/
|
|
304
|
+
export const RT_SAFETY_DOCUMENT_SCHEMA = "plugin-qualify.rt-safety/3";
|
|
169
305
|
/**
|
|
170
306
|
* The verdict document for one prober line under one host profile. The interposer's counts and the
|
|
171
307
|
* two violations only a CLAP commits decide it. The line is judged against the profile's own CLAP
|
|
@@ -202,6 +338,7 @@ export function rtSafetyDocument(line, profile = OPENMIXER_CONSOLE_PROFILE) {
|
|
|
202
338
|
clap: line.clap,
|
|
203
339
|
rtSafety: line.rtSafety,
|
|
204
340
|
noteSweep: line.noteSweep,
|
|
341
|
+
...(line.cost === undefined ? {} : { cost: line.cost }),
|
|
205
342
|
integrity: line.integrity,
|
|
206
343
|
},
|
|
207
344
|
};
|
|
@@ -221,16 +358,7 @@ export function rtSafetyVerdict(doc) {
|
|
|
221
358
|
export function rtSafetyDocumentName(doc) {
|
|
222
359
|
return `${doc.plugin.binary.sha256}.${doc.console}.rt-safety.json`;
|
|
223
360
|
}
|
|
224
|
-
|
|
225
|
-
const r = spawnSync(tool, [...args], { encoding: "utf8", env: { ...env }, timeout: timeoutMs, maxBuffer: 64 << 20 });
|
|
226
|
-
return {
|
|
227
|
-
status: r.status,
|
|
228
|
-
signal: r.signal,
|
|
229
|
-
stdout: r.stdout ?? "",
|
|
230
|
-
stderr: r.stderr ?? "",
|
|
231
|
-
...(r.error === undefined ? {} : { error: r.error }),
|
|
232
|
-
};
|
|
233
|
-
};
|
|
361
|
+
// --- the prober and the interposer a run uses ---------------------------------------------------
|
|
234
362
|
/**
|
|
235
363
|
* The prober and the interposer this run uses: each its setting, else both from one place, the
|
|
236
364
|
* package's own build or else the first installed directory (`NATIVE_TOOL_DIRS`) holding them
|
|
@@ -249,37 +377,6 @@ export function clapQualifyTools(env, exists = existsSync) {
|
|
|
249
377
|
});
|
|
250
378
|
return { tool: tool, interposer: interposer };
|
|
251
379
|
}
|
|
252
|
-
/**
|
|
253
|
-
* Qualify the plugins of one `.clap` (all of them, or the one `id` names) under the interposer.
|
|
254
|
-
* Absent tools, a crash, a timeout, a load failure or an unreadable line throw: none of them is a
|
|
255
|
-
* measurement.
|
|
256
|
-
*/
|
|
257
|
-
export function qualifyClap(binaryPath, id, options) {
|
|
258
|
-
const env = options.env ?? process.env;
|
|
259
|
-
const { tool, interposer } = clapQualifyTools(env, options.exists ?? existsSync);
|
|
260
|
-
const args = [
|
|
261
|
-
"--rates",
|
|
262
|
-
options.rates.join(","),
|
|
263
|
-
"--block",
|
|
264
|
-
String(CLAP_SWEEP_FRAMES),
|
|
265
|
-
"--blocks",
|
|
266
|
-
String(CLAP_SWEEP_BLOCKS),
|
|
267
|
-
...(options.offer === undefined || options.offer.length === 0 ? [] : ["--offer", options.offer.join(",")]),
|
|
268
|
-
binaryPath,
|
|
269
|
-
...(id === undefined ? [] : [id]),
|
|
270
|
-
];
|
|
271
|
-
const r = (options.run ?? spawnQualify)(tool, args, { ...env, LD_PRELOAD: interposer }, CLAP_QUALIFY_TIMEOUT_S * 1000);
|
|
272
|
-
if (r.error !== undefined)
|
|
273
|
-
throw new ClapQualifyError(`cannot run ${tool}: ${r.error.message}`);
|
|
274
|
-
if (r.signal)
|
|
275
|
-
throw new ClapQualifyError(`${binaryPath} killed the prober (${r.signal})`);
|
|
276
|
-
if (r.status !== 0)
|
|
277
|
-
throw new ClapQualifyError(`${tool} exited ${String(r.status)} on ${binaryPath}: ${(r.stderr ?? "").trim()}`);
|
|
278
|
-
const lines = parseClapQualifyOutput(r.stdout);
|
|
279
|
-
if (lines.length === 0)
|
|
280
|
-
throw new ClapQualifyError(`${tool} printed nothing for ${binaryPath}`);
|
|
281
|
-
return lines;
|
|
282
|
-
}
|
|
283
380
|
/**
|
|
284
381
|
* What the prober must offer beyond the console's extensions to measure for `profile`: the extra
|
|
285
382
|
* extensions of its list, when the prober can offer each and the list holds the console's; `undefined`
|
|
@@ -295,49 +392,4 @@ export function proberOffer(profile) {
|
|
|
295
392
|
return undefined;
|
|
296
393
|
return OMX_CLAP_HOST_CONFIGURED_EXTENSIONS.filter((e) => extra.includes(e));
|
|
297
394
|
}
|
|
298
|
-
/**
|
|
299
|
-
* Qualify every CLAP target, one prober run per target and set of offered extensions (a crash takes
|
|
300
|
-
* only that plugin), and judge each line under every host profile, from the run that offered that
|
|
301
|
-
* profile's extensions. A target without a binary path (a bare `urn:clap:` id) has nothing to load
|
|
302
|
-
* and is a failure, never a pass.
|
|
303
|
-
*/
|
|
304
|
-
export function qualifyClapTargets(targets, options) {
|
|
305
|
-
const profiles = options.profiles ?? [OPENMIXER_CONSOLE_PROFILE];
|
|
306
|
-
const documents = [];
|
|
307
|
-
const verdicts = [];
|
|
308
|
-
const failures = [];
|
|
309
|
-
for (const target of targets) {
|
|
310
|
-
const id = target.uri.startsWith("urn:clap:") ? target.uri.slice("urn:clap:".length) : undefined;
|
|
311
|
-
// one run per distinct offer, the console's (none) for a profile the prober cannot stand in for
|
|
312
|
-
const offers = new Map();
|
|
313
|
-
for (const profile of profiles) {
|
|
314
|
-
const offer = proberOffer(profile) ?? [];
|
|
315
|
-
offers.set(offer.join(","), offer);
|
|
316
|
-
}
|
|
317
|
-
const runs = new Map();
|
|
318
|
-
try {
|
|
319
|
-
if (target.binaryPath === undefined)
|
|
320
|
-
throw new ClapQualifyError(`${target.uri}: no .clap to load; name the file or a directory holding it`);
|
|
321
|
-
for (const [key, offer] of offers)
|
|
322
|
-
runs.set(key, qualifyClap(target.binaryPath, id, { ...options, offer }));
|
|
323
|
-
}
|
|
324
|
-
catch (e) {
|
|
325
|
-
if (!(e instanceof ClapQualifyError))
|
|
326
|
-
throw e;
|
|
327
|
-
failures.push({ uri: target.uri, problem: e.message });
|
|
328
|
-
for (const profile of profiles) {
|
|
329
|
-
verdicts.push({ uri: target.uri, host: profile.id, measured: false, rating: "unknown", qualified: false, deciding: "not-measured" });
|
|
330
|
-
}
|
|
331
|
-
continue;
|
|
332
|
-
}
|
|
333
|
-
for (const profile of profiles) {
|
|
334
|
-
for (const line of runs.get((proberOffer(profile) ?? []).join(","))) {
|
|
335
|
-
const doc = rtSafetyDocument(line, profile);
|
|
336
|
-
documents.push(doc);
|
|
337
|
-
verdicts.push(rtSafetyVerdict(doc));
|
|
338
|
-
}
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
return { documents, verdicts, failures };
|
|
342
|
-
}
|
|
343
395
|
//# sourceMappingURL=clap-qualify.js.map
|
package/dist/clap-qualify.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clap-qualify.js","sourceRoot":"","sources":["../src/clap-qualify.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"clap-qualify.js","sourceRoot":"","sources":["../src/clap-qualify.ts"],"names":[],"mappings":"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"}
|
package/dist/cost-fields.d.ts
CHANGED
|
@@ -44,3 +44,29 @@ export declare function costFieldsMissing(reading: unknown): string[];
|
|
|
44
44
|
* primitive: derived figures are not carried in the document.
|
|
45
45
|
*/
|
|
46
46
|
export declare function classifierCostFromDocument(reading: CostAtRate, rate: number): ClassifierCostReading | undefined;
|
|
47
|
+
/**
|
|
48
|
+
* The key of one point of a cost grid: the rate and the quantum it was measured at. One place spells it,
|
|
49
|
+
* so the reader that fills a grid and the gate that looks a point up cannot disagree.
|
|
50
|
+
*/
|
|
51
|
+
export declare function costPointKey(rate: number, quantum: number): string;
|
|
52
|
+
/** The percentile the classifier's `nsPerSampleP95` is. A figure taken at another percentile is not that field. */
|
|
53
|
+
export declare const CLASSIFIER_PERCENTILE = 95;
|
|
54
|
+
/** One point of a grid as it is measured: the figures {@link gridCostReadings} turns into the classifier's. */
|
|
55
|
+
export interface CostGridPoint {
|
|
56
|
+
readonly rate: number;
|
|
57
|
+
readonly quantum: number;
|
|
58
|
+
readonly outcome: string;
|
|
59
|
+
readonly cost?: {
|
|
60
|
+
readonly median: number;
|
|
61
|
+
readonly percentile: {
|
|
62
|
+
readonly p: number;
|
|
63
|
+
readonly value: number;
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* The classifier's cost readings of a grid, by {@link costPointKey}. A point that did not end `probe.ok`, has no
|
|
69
|
+
* cost, or whose percentile is not {@link CLASSIFIER_PERCENTILE} has no reading: the gate then reads the pair as
|
|
70
|
+
* unmeasured, which is the truth, where a figure under the wrong name would be judged as if it were the P95.
|
|
71
|
+
*/
|
|
72
|
+
export declare function gridCostReadings(points: readonly CostGridPoint[], okOutcome: string): Record<string, ClassifierCostReading>;
|
package/dist/cost-fields.js
CHANGED
|
@@ -43,4 +43,34 @@ export function classifierCostFromDocument(reading, rate) {
|
|
|
43
43
|
[COST_FIELDS.classifier.coreFraction]: fraction,
|
|
44
44
|
};
|
|
45
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* The key of one point of a cost grid: the rate and the quantum it was measured at. One place spells it,
|
|
48
|
+
* so the reader that fills a grid and the gate that looks a point up cannot disagree.
|
|
49
|
+
*/
|
|
50
|
+
export function costPointKey(rate, quantum) {
|
|
51
|
+
return `${rate}/${quantum}`;
|
|
52
|
+
}
|
|
53
|
+
/** The percentile the classifier's `nsPerSampleP95` is. A figure taken at another percentile is not that field. */
|
|
54
|
+
export const CLASSIFIER_PERCENTILE = 95;
|
|
55
|
+
/**
|
|
56
|
+
* The classifier's cost readings of a grid, by {@link costPointKey}. A point that did not end `probe.ok`, has no
|
|
57
|
+
* cost, or whose percentile is not {@link CLASSIFIER_PERCENTILE} has no reading: the gate then reads the pair as
|
|
58
|
+
* unmeasured, which is the truth, where a figure under the wrong name would be judged as if it were the P95.
|
|
59
|
+
*/
|
|
60
|
+
export function gridCostReadings(points, okOutcome) {
|
|
61
|
+
const out = {};
|
|
62
|
+
for (const p of points) {
|
|
63
|
+
if (p.outcome !== okOutcome || p.cost === undefined || p.cost.percentile.p !== CLASSIFIER_PERCENTILE)
|
|
64
|
+
continue;
|
|
65
|
+
const fraction = coreFraction(p.cost.percentile.value, p.rate);
|
|
66
|
+
if (fraction === undefined)
|
|
67
|
+
continue;
|
|
68
|
+
out[costPointKey(p.rate, p.quantum)] = {
|
|
69
|
+
[COST_FIELDS.classifier.median]: p.cost.median,
|
|
70
|
+
[COST_FIELDS.classifier.percentile]: p.cost.percentile.value,
|
|
71
|
+
[COST_FIELDS.classifier.coreFraction]: fraction,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
return out;
|
|
75
|
+
}
|
|
46
76
|
//# sourceMappingURL=cost-fields.js.map
|
package/dist/cost-fields.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cost-fields.js","sourceRoot":"","sources":["../src/cost-fields.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AASnD;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,QAAQ,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,uBAAuB,EAAE;IAC9E,UAAU,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,iBAAiB,EAAE;CAI3G,CAAC;AAEF,8EAA8E;AAC9E,MAAM,aAAa,GAAG,GAAG,CAAC;AAE1B;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,WAAmB,EAAE,IAAY;IAC5D,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,SAAS,CAAC;IACnE,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,aAAa,CAAC;AAC9C,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IAChD,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAChD,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3D,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QACvB,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,OAAmB,EAAE,IAAY;IAC1E,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpD,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACzC,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,SAAS,CAAC;IACzE,OAAO;QACL,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM;QACvC,CAAC,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,GAAG;QACxC,CAAC,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,QAAQ;KAChD,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"cost-fields.js","sourceRoot":"","sources":["../src/cost-fields.ts"],"names":[],"mappings":"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"}
|
package/dist/hosting-codes.d.ts
CHANGED
|
@@ -56,6 +56,7 @@ export declare const HOSTING_CODE: {
|
|
|
56
56
|
readonly clapFormatNotHosted: "hosting.clap.format-not-hosted";
|
|
57
57
|
readonly clapExtensionsNotCovered: "hosting.clap.extensions-not-covered";
|
|
58
58
|
readonly outputNonFinite: "hosting.output.non-finite";
|
|
59
|
+
readonly workerNonconforming: "hosting.worker.nonconforming";
|
|
59
60
|
readonly integrityUnpinned: "hosting.integrity.unpinned";
|
|
60
61
|
readonly integrityBinaryMismatch: "hosting.integrity.binary-mismatch";
|
|
61
62
|
readonly integrityLayoutMismatch: "hosting.integrity.layout-mismatch";
|
package/dist/hosting-codes.js
CHANGED
|
@@ -61,6 +61,7 @@ export const HOSTING_CODE = {
|
|
|
61
61
|
clapFormatNotHosted: 'hosting.clap.format-not-hosted',
|
|
62
62
|
clapExtensionsNotCovered: 'hosting.clap.extensions-not-covered',
|
|
63
63
|
outputNonFinite: 'hosting.output.non-finite',
|
|
64
|
+
workerNonconforming: 'hosting.worker.nonconforming',
|
|
64
65
|
// The pin (spec §11; one-contract §10.3): a host's refusal at add, by the daemon's code.
|
|
65
66
|
integrityUnpinned: 'hosting.integrity.unpinned',
|
|
66
67
|
integrityBinaryMismatch: 'hosting.integrity.binary-mismatch',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hosting-codes.js","sourceRoot":"","sources":["../src/hosting-codes.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,sDAAsD;AACtD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,eAAe,EAAE,0BAA0B;IAC3C,0BAA0B,EAAE,6CAA6C;IACzE,oBAAoB,EAAE,4CAA4C;IAClE,mBAAmB,EAAE,sCAAsC;IAC3D,iBAAiB,EAAE,4BAA4B;IAC/C,yBAAyB,EAAE,uCAAuC;IAClE,mBAAmB,EAAE,8BAA8B;IACnD,0BAA0B,EAAE,sCAAsC;IAClE,sBAAsB,EAAE,kCAAkC;IAC1D,wBAAwB,EAAE,qCAAqC;IAC/D,aAAa,EAAE,qCAAqC;IACpD,kBAAkB,EAAE,qCAAqC;IACzD,kBAAkB,EAAE,8BAA8B;IAClD,uBAAuB,EAAE,oCAAoC;IAC7D,iFAAiF;IACjF,kBAAkB,EAAE,qCAAqC;IACzD,uBAAuB,EAAE,0CAA0C;IACnE,uBAAuB,EAAE,oCAAoC;IAC7D,gBAAgB,EAAE,+BAA+B;IACjD,eAAe,EAAE,wCAAwC;IACzD,qBAAqB,EAAE,oCAAoC;IAC3D,UAAU,EAAE,2BAA2B;IACvC,cAAc,EAAE,oCAAoC;IACpD,iBAAiB,EAAE,sCAAsC;IACzD,iBAAiB,EAAE,6BAA6B;IAChD,gBAAgB,EAAE,4BAA4B;IAC9C,SAAS,EAAE,yBAAyB;IACpC,cAAc,EAAE,6CAA6C;IAC7D,iBAAiB,EAAE,6BAA6B;IAChD,eAAe,EAAE,0BAA0B;IAC3C,iBAAiB,EAAE,4BAA4B;IAC/C,oBAAoB,EAAE,+BAA+B;IACrD,yBAAyB,EAAE,qCAAqC;IAChE,eAAe,EAAE,0BAA0B;IAC3C,oBAAoB,EAAE,iCAAiC;IACvD,qBAAqB,EAAE,kCAAkC;IACzD,mBAAmB,EAAE,2CAA2C;IAChE,kBAAkB,EAAE,6BAA6B;IACjD,yDAAyD;IACzD,4DAA4D;IAC5D,sBAAsB,EAAE,mCAAmC;IAC3D,mBAAmB,EAAE,+BAA+B;IACpD,kBAAkB,EAAE,+BAA+B;IACnD,kBAAkB,EAAE,8BAA8B;IAClD,aAAa,EAAE,yBAAyB;IACxC,mBAAmB,EAAE,+BAA+B;IACpD,gBAAgB,EAAE,4BAA4B;IAC9C,eAAe,EAAE,0BAA0B;IAC3C,mBAAmB,EAAE,gCAAgC;IACrD,wBAAwB,EAAE,qCAAqC;IAC/D,eAAe,EAAE,2BAA2B;IAC5C,yFAAyF;IACzF,iBAAiB,EAAE,4BAA4B;IAC/C,uBAAuB,EAAE,mCAAmC;IAC5D,uBAAuB,EAAE,mCAAmC;IAC5D,gBAAgB,EAAE,mCAAmC;IACrD,qBAAqB,EAAE,iCAAiC;IACxD,sBAAsB,EAAE,+CAA+C;IACvE,yFAAyF;IACzF,uFAAuF;IACvF,sDAAsD;IACtD,QAAQ,EAAE,kBAAkB;IAC5B,QAAQ,EAAE,kBAAkB;IAC5B,aAAa,EAAE,wBAAwB;IACvC,iBAAiB,EAAE,6BAA6B;IAChD,uFAAuF;IACvF,gDAAgD;IAChD,MAAM,EAAE,gBAAgB;CAChB,CAAC"}
|
|
1
|
+
{"version":3,"file":"hosting-codes.js","sourceRoot":"","sources":["../src/hosting-codes.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,sDAAsD;AACtD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,eAAe,EAAE,0BAA0B;IAC3C,0BAA0B,EAAE,6CAA6C;IACzE,oBAAoB,EAAE,4CAA4C;IAClE,mBAAmB,EAAE,sCAAsC;IAC3D,iBAAiB,EAAE,4BAA4B;IAC/C,yBAAyB,EAAE,uCAAuC;IAClE,mBAAmB,EAAE,8BAA8B;IACnD,0BAA0B,EAAE,sCAAsC;IAClE,sBAAsB,EAAE,kCAAkC;IAC1D,wBAAwB,EAAE,qCAAqC;IAC/D,aAAa,EAAE,qCAAqC;IACpD,kBAAkB,EAAE,qCAAqC;IACzD,kBAAkB,EAAE,8BAA8B;IAClD,uBAAuB,EAAE,oCAAoC;IAC7D,iFAAiF;IACjF,kBAAkB,EAAE,qCAAqC;IACzD,uBAAuB,EAAE,0CAA0C;IACnE,uBAAuB,EAAE,oCAAoC;IAC7D,gBAAgB,EAAE,+BAA+B;IACjD,eAAe,EAAE,wCAAwC;IACzD,qBAAqB,EAAE,oCAAoC;IAC3D,UAAU,EAAE,2BAA2B;IACvC,cAAc,EAAE,oCAAoC;IACpD,iBAAiB,EAAE,sCAAsC;IACzD,iBAAiB,EAAE,6BAA6B;IAChD,gBAAgB,EAAE,4BAA4B;IAC9C,SAAS,EAAE,yBAAyB;IACpC,cAAc,EAAE,6CAA6C;IAC7D,iBAAiB,EAAE,6BAA6B;IAChD,eAAe,EAAE,0BAA0B;IAC3C,iBAAiB,EAAE,4BAA4B;IAC/C,oBAAoB,EAAE,+BAA+B;IACrD,yBAAyB,EAAE,qCAAqC;IAChE,eAAe,EAAE,0BAA0B;IAC3C,oBAAoB,EAAE,iCAAiC;IACvD,qBAAqB,EAAE,kCAAkC;IACzD,mBAAmB,EAAE,2CAA2C;IAChE,kBAAkB,EAAE,6BAA6B;IACjD,yDAAyD;IACzD,4DAA4D;IAC5D,sBAAsB,EAAE,mCAAmC;IAC3D,mBAAmB,EAAE,+BAA+B;IACpD,kBAAkB,EAAE,+BAA+B;IACnD,kBAAkB,EAAE,8BAA8B;IAClD,aAAa,EAAE,yBAAyB;IACxC,mBAAmB,EAAE,+BAA+B;IACpD,gBAAgB,EAAE,4BAA4B;IAC9C,eAAe,EAAE,0BAA0B;IAC3C,mBAAmB,EAAE,gCAAgC;IACrD,wBAAwB,EAAE,qCAAqC;IAC/D,eAAe,EAAE,2BAA2B;IAC5C,mBAAmB,EAAE,8BAA8B;IACnD,yFAAyF;IACzF,iBAAiB,EAAE,4BAA4B;IAC/C,uBAAuB,EAAE,mCAAmC;IAC5D,uBAAuB,EAAE,mCAAmC;IAC5D,gBAAgB,EAAE,mCAAmC;IACrD,qBAAqB,EAAE,iCAAiC;IACxD,sBAAsB,EAAE,+CAA+C;IACvE,yFAAyF;IACzF,uFAAuF;IACvF,sDAAsD;IACtD,QAAQ,EAAE,kBAAkB;IAC5B,QAAQ,EAAE,kBAAkB;IAC5B,aAAa,EAAE,wBAAwB;IACvC,iBAAiB,EAAE,6BAA6B;IAChD,uFAAuF;IACvF,gDAAgD;IAChD,MAAM,EAAE,gBAAgB;CAChB,CAAC"}
|
|
@@ -36,13 +36,23 @@ export interface QualifiedPlugin {
|
|
|
36
36
|
readonly scalingClass?: string;
|
|
37
37
|
readonly paramSweep?: unknown;
|
|
38
38
|
};
|
|
39
|
-
/** Measured cost per rate (Hz as a string key). */
|
|
39
|
+
/** Measured cost: per rate (Hz as a string key), or per rate AND quantum. */
|
|
40
40
|
readonly cpuCost?: {
|
|
41
|
+
/** One figure per rate, at the block the prober ran: the old format. Read only when `perRateQuantum` is absent. */
|
|
41
42
|
readonly perRate?: Readonly<Record<string, {
|
|
42
43
|
readonly coreFractionP95: number;
|
|
43
44
|
readonly nsPerSampleMedian: number;
|
|
44
45
|
readonly nsPerSampleP95: number;
|
|
45
46
|
}>>;
|
|
47
|
+
/**
|
|
48
|
+
* One figure per rate and quantum, keyed by {@link costPointKey}: a probe output's grid. When this is
|
|
49
|
+
* present it is the only cost there is, so a pair it lacks is unmeasured, never read from `perRate`.
|
|
50
|
+
*/
|
|
51
|
+
readonly perRateQuantum?: Readonly<Record<string, {
|
|
52
|
+
readonly coreFractionP95: number;
|
|
53
|
+
readonly nsPerSampleMedian: number;
|
|
54
|
+
readonly nsPerSampleP95: number;
|
|
55
|
+
}>>;
|
|
46
56
|
};
|
|
47
57
|
readonly stability?: PluginStabilityMeasurement;
|
|
48
58
|
readonly rtSafety?: PluginRtSafetyMeasurement;
|
|
@@ -181,8 +191,14 @@ import { type HostingPolicy } from "./qualify-declarations.js";
|
|
|
181
191
|
export interface ClapLatencyAtRate {
|
|
182
192
|
/** `latency.get()` after `activate` at this rate; a plugin without the ext declares 0. */
|
|
183
193
|
readonly declaredFrames: number;
|
|
184
|
-
/** Where the qualifier's impulse landed through `process()`, in frames
|
|
194
|
+
/** Where the qualifier's impulse landed through `process()`, in frames; for an instrument, where a note's
|
|
195
|
+
* sound began. */
|
|
185
196
|
readonly measuredFrames: number;
|
|
197
|
+
/** `note`: a plugin with no main audio input, measured from a note struck at frame 0 (the onset of its
|
|
198
|
+
* sound, which an attack envelope may put later than its latency). Absent: from an impulse. */
|
|
199
|
+
readonly from?: "note";
|
|
200
|
+
/** `false`: the note was struck and nothing was heard, so there is no onset to read. */
|
|
201
|
+
readonly heard?: boolean;
|
|
186
202
|
}
|
|
187
203
|
/**
|
|
188
204
|
* What the CLAP prober (`native/clap-qualify`) MEASURED about a CLAP plugin, RAW (CLAP spec §3): the facts the CLAP
|
|
@@ -332,7 +348,10 @@ export declare function clapTopologyReasons(clap: PluginClapMeasurement | undefi
|
|
|
332
348
|
/**
|
|
333
349
|
* The CLAP arm of `latency` (CLAP spec §3): declared = measured at EVERY declared rate earns;
|
|
334
350
|
* one rate that lies refuses (`unsuitable` — compensation reads the figure as truth); no rate
|
|
335
|
-
* measured is `unknown`.
|
|
351
|
+
* measured is `unknown`. An instrument has no input to put an impulse in, so its figure is the onset
|
|
352
|
+
* of a note struck at frame 0: an onset before the declared latency is the same lie, one at or after
|
|
353
|
+
* it is resolved (an attack envelope sounds later than the plugin's delay, and that is no latency),
|
|
354
|
+
* and a note that was never heard is unmeasured.
|
|
336
355
|
*/
|
|
337
356
|
export declare function clapLatencyReasons(clap: PluginClapMeasurement | undefined): readonly HostingReason[];
|
|
338
357
|
/**
|
|
@@ -162,7 +162,7 @@ export function attributeCrash(crash, table = CRASH_SIGNATURES, pluginBinary) {
|
|
|
162
162
|
}
|
|
163
163
|
export { DEFAULT_HOSTING_POLICY } from "./qualify-declarations.js";
|
|
164
164
|
import { DEFAULT_HOSTING_POLICY } from "./qualify-declarations.js";
|
|
165
|
-
import { costFieldsMissing } from "./cost-fields.js";
|
|
165
|
+
import { costFieldsMissing, costPointKey } from "./cost-fields.js";
|
|
166
166
|
function reason(dimension, kind, rating, code, params = {}) {
|
|
167
167
|
return { dimension, kind, rating, code, params };
|
|
168
168
|
}
|
|
@@ -397,7 +397,12 @@ instruments = false) {
|
|
|
397
397
|
return out;
|
|
398
398
|
}
|
|
399
399
|
export function hostingCostReasons(descriptor, options, policy) {
|
|
400
|
-
const
|
|
400
|
+
const grid = descriptor.cpuCost?.perRateQuantum;
|
|
401
|
+
const perRate = grid === undefined
|
|
402
|
+
? descriptor.cpuCost?.perRate?.[String(options.rate)]
|
|
403
|
+
: options.quantum === undefined
|
|
404
|
+
? undefined
|
|
405
|
+
: grid[costPointKey(options.rate, options.quantum)];
|
|
401
406
|
if (perRate === undefined) {
|
|
402
407
|
return [
|
|
403
408
|
reason("cost", "objective", "unknown", HOSTING_CODE.costUnmeasured, {
|
|
@@ -448,6 +453,10 @@ export function hostingLatencyReasons(descriptor, handling = "compensated") {
|
|
|
448
453
|
// one the benchmark declared unmeasurable, has not been judged and does not pass by
|
|
449
454
|
// default. The oracle's first fixture omitted latency and still expected `suitable`,
|
|
450
455
|
// which is how this branch was missing — a self-consistent suite proving nothing.
|
|
456
|
+
// A plugin whose worker interface was refused is not unmeasured by accident: it is not hostable.
|
|
457
|
+
if (typeof latency?.unmeasurable === "string" && latency.unmeasurable.includes(HOSTING_CODE.workerNonconforming)) {
|
|
458
|
+
return [reason("latency", "objective", "unsuitable", HOSTING_CODE.workerNonconforming)];
|
|
459
|
+
}
|
|
451
460
|
if (latency === undefined || latency.unmeasurable !== undefined) {
|
|
452
461
|
return [reason("latency", "objective", "unknown", HOSTING_CODE.latencyUnmeasured)];
|
|
453
462
|
}
|
|
@@ -512,7 +521,10 @@ export function clapTopologyReasons(clap, instruments = false) {
|
|
|
512
521
|
/**
|
|
513
522
|
* The CLAP arm of `latency` (CLAP spec §3): declared = measured at EVERY declared rate earns;
|
|
514
523
|
* one rate that lies refuses (`unsuitable` — compensation reads the figure as truth); no rate
|
|
515
|
-
* measured is `unknown`.
|
|
524
|
+
* measured is `unknown`. An instrument has no input to put an impulse in, so its figure is the onset
|
|
525
|
+
* of a note struck at frame 0: an onset before the declared latency is the same lie, one at or after
|
|
526
|
+
* it is resolved (an attack envelope sounds later than the plugin's delay, and that is no latency),
|
|
527
|
+
* and a note that was never heard is unmeasured.
|
|
516
528
|
*/
|
|
517
529
|
export function clapLatencyReasons(clap) {
|
|
518
530
|
const rates = clap ? Object.keys(clap.latency) : [];
|
|
@@ -521,7 +533,11 @@ export function clapLatencyReasons(clap) {
|
|
|
521
533
|
}
|
|
522
534
|
for (const rate of rates) {
|
|
523
535
|
const at = clap.latency[rate];
|
|
524
|
-
if (at.
|
|
536
|
+
if (at.from === "note" && at.heard === false) {
|
|
537
|
+
return [reason("latency", "objective", "unknown", HOSTING_CODE.latencyUnmeasured, { rate: Number(rate) })];
|
|
538
|
+
}
|
|
539
|
+
const lies = at.from === "note" ? at.measuredFrames < at.declaredFrames : at.declaredFrames !== at.measuredFrames;
|
|
540
|
+
if (lies) {
|
|
525
541
|
return [
|
|
526
542
|
reason("latency", "objective", "unsuitable", HOSTING_CODE.clapLatencyMismatch, {
|
|
527
543
|
rate: Number(rate), declared: at.declaredFrames, measured: at.measuredFrames,
|
|
@@ -632,12 +648,15 @@ export function classifyPluginHosting(descriptor, options) {
|
|
|
632
648
|
// report could agree with itself while every served descriptor read unknown.
|
|
633
649
|
// The CLAP arm: the SAME six dimensions, fed from the
|
|
634
650
|
// qualifier's CLAP facts where the LV2 scan's facts do not exist for the format. Stability,
|
|
635
|
-
// the interposer's counts and the cost are format-blind and read unchanged.
|
|
651
|
+
// the interposer's counts and the cost are format-blind and read unchanged. A host that plays
|
|
652
|
+
// notes (an instrument host) also reads the note sweep: an instrument is clean at rest, so the
|
|
653
|
+
// parameter sweep alone says nothing about what a voice does.
|
|
636
654
|
const reasons = descriptor.format === "clap"
|
|
637
655
|
? [
|
|
638
656
|
...stabilityReasons(descriptor.stability, policy, options.pluginBinary, sharesProcess, options.rate),
|
|
639
657
|
...rtSafetyReasons(descriptor.rtSafety),
|
|
640
658
|
...clapRtReasons(descriptor.clap),
|
|
659
|
+
...(profile.instruments ? noteSweepReasons(descriptor.rtSafety?.noteSweep, descriptor.clap?.noteInputs ?? (descriptor.hasMidiIn ? 1 : 0)) : []),
|
|
641
660
|
...clapFeatureReasons(descriptor.clap, profile, descriptor.hasMidiIn),
|
|
642
661
|
...hostingCostReasons(descriptor, options, policy),
|
|
643
662
|
...clapLatencyReasons(descriptor.clap),
|
|
@@ -646,6 +665,7 @@ export function classifyPluginHosting(descriptor, options) {
|
|
|
646
665
|
: [
|
|
647
666
|
...stabilityReasons(descriptor.stability, policy, options.pluginBinary, sharesProcess, options.rate),
|
|
648
667
|
...rtSafetyReasons(descriptor.rtSafety),
|
|
668
|
+
...(profile.instruments ? noteSweepReasons(descriptor.rtSafety?.noteSweep, descriptor.hasMidiIn ? 1 : 0) : []),
|
|
649
669
|
...featureReasons(descriptor.lv2Features, descriptor, profile.lv2Features, options.quantum !== undefined, profile.instruments),
|
|
650
670
|
...hostingCostReasons(descriptor, options, policy),
|
|
651
671
|
...hostingLatencyReasons(descriptor, profile.latency),
|