@openmixer/plugin-qualify 0.11.0 → 0.13.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.
Files changed (51) hide show
  1. package/README.md +7 -1
  2. package/dist/clap-qualify.d.ts +60 -4
  3. package/dist/clap-qualify.js +141 -3
  4. package/dist/clap-qualify.js.map +1 -1
  5. package/dist/host-profiles.d.ts +1 -2
  6. package/dist/host-profiles.js +12 -2
  7. package/dist/host-profiles.js.map +1 -1
  8. package/dist/hosting-codes.d.ts +77 -57
  9. package/dist/hosting-codes.js +89 -77
  10. package/dist/hosting-codes.js.map +1 -1
  11. package/dist/hosting-suitability.d.ts +12 -4
  12. package/dist/hosting-suitability.js +18 -16
  13. package/dist/hosting-suitability.js.map +1 -1
  14. package/dist/measurement/cli.d.ts +8 -1
  15. package/dist/measurement/cli.js +15 -1
  16. package/dist/measurement/cli.js.map +1 -1
  17. package/dist/measurement/format.d.ts +45 -5
  18. package/dist/measurement/format.js +46 -3
  19. package/dist/measurement/format.js.map +1 -1
  20. package/dist/measurement/probe-json.js +3 -0
  21. package/dist/measurement/probe-json.js.map +1 -1
  22. package/dist/measurement/sweep-jsonl.js +2 -1
  23. package/dist/measurement/sweep-jsonl.js.map +1 -1
  24. package/dist/measurement/vocabulary.d.ts +39 -22
  25. package/dist/measurement/vocabulary.js +93 -145
  26. package/dist/measurement/vocabulary.js.map +1 -1
  27. package/dist/probe-judge.d.ts +6 -1
  28. package/dist/probe-judge.js +7 -3
  29. package/dist/probe-judge.js.map +1 -1
  30. package/dist/probe-output.d.ts +3 -0
  31. package/dist/probe-output.js +5 -0
  32. package/dist/probe-output.js.map +1 -1
  33. package/dist/qualification-record.d.ts +3 -1
  34. package/dist/qualification-record.js.map +1 -1
  35. package/fixtures/clap-scan/fake.json +109 -7
  36. package/fixtures/probe-output/success-msi.json +11 -0
  37. package/package.json +2 -2
  38. package/src/clap-qualify.ts +177 -5
  39. package/src/host-profiles.ts +12 -2
  40. package/src/hosting-codes.ts +182 -77
  41. package/src/hosting-suitability.ts +25 -18
  42. package/src/measurement/cli.ts +21 -1
  43. package/src/measurement/format.ts +81 -3
  44. package/src/measurement/probe-json.ts +3 -0
  45. package/src/measurement/sweep-jsonl.ts +2 -1
  46. package/src/measurement/vocabulary.ts +148 -149
  47. package/src/probe-judge.ts +13 -5
  48. package/src/probe-output.ts +6 -0
  49. package/src/qualification-record.ts +9 -2
  50. package/tools/benchmark.py +104 -13
  51. package/tools/lv2-measure.mjs +2 -0
@@ -1,83 +1,95 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-or-later
2
2
  // Copyright (C) 2026 Pau Aliagas <linuxnow@gmail.com>
3
3
  /**
4
- * The hosting verdict's message codes. Codes, never prose: the
5
- * surface renders the operator's locale.
4
+ * The hosting verdict's message codes. Codes, never prose: the surface renders the operator's
5
+ * locale.
6
6
  *
7
- * A UNION list file: `.gitattributes` marks it
8
- * `merge=union`, so two lanes that each add a code merge with both kept. Only the table lives
9
- * here, one `key: 'code',` per line, with keys and codes unique; the registry-hotspots gate
10
- * refuses anything else.
7
+ * omx-clap-core declares every hosting code now (the contract split moved `data/hosting/*.json`
8
+ * there, byte for byte): one `HOSTING_<DIMENSION>_CODES` table per dimension, rendered into the
9
+ * TypeScript modules its package installs under `pkg-config --variable=tsdir omx-clap-core`
10
+ * (BUILDING.md) — `omx-clap-core-vocabulary.js` for the dimensions carried from omx-contract,
11
+ * `omx-clap-core-hosting.js` for `hosting.idle.*`, its own (both with a `.d.ts`). {@link
12
+ * HOSTING_CODE} is those tables flattened into one `key: code` map, loaded at import: a code
13
+ * neither module declares cannot be named here, and a dimension either adds arrives without an
14
+ * edit.
11
15
  */
12
- export const HOSTING_CODE = {
13
- stabilitySoaked: 'hosting.stability.soaked',
14
- stabilityCrashedAttributed: 'hosting.stability.crashed-attributed-plugin',
15
- stabilityCrashedLive: 'hosting.stability.crashed-live-on-this-rig',
16
- stabilityBelowFloor: 'hosting.stability.cycles-below-floor',
17
- stabilityUnsoaked: 'hosting.stability.unsoaked',
18
- stabilitySoakFailedAtRate: 'hosting.stability.soak-failed-at-rate',
19
- stabilityUnmeasured: 'hosting.stability.unmeasured',
20
- stabilityCrashUnattributed: 'hosting.stability.crash-unattributed',
21
- stabilitySpawnsThreads: 'hosting.stability.spawns-threads',
22
- stabilityLinksGuiToolkit: 'hosting.stability.links-gui-toolkit',
23
- rtSafetyClean: 'hosting.rt-safety.clean-under-sweep',
24
- rtSafetyViolations: 'hosting.rt-safety.violations-in-run',
25
- rtSafetyUnmeasured: 'hosting.rt-safety.unmeasured',
26
- rtSafetyNotReproducible: 'hosting.rt-safety.not-reproducible',
27
- // The note sweep: an instrument played under the interposer, a count of its own.
28
- rtSafetyNotesClean: 'hosting.rt-safety.clean-under-notes',
29
- rtSafetyNotesViolations: 'hosting.rt-safety.violations-under-notes',
30
- rtSafetyNotesUnmeasured: 'hosting.rt-safety.notes-unmeasured',
31
- featuresProvided: 'hosting.features.all-provided',
32
- featuresMissing: 'hosting.features.required-not-provided',
33
- featuresDisqualifying: 'hosting.features.host-not-provided',
34
- featuresCv: 'hosting.features.cv-ports',
35
- featuresMidiIn: 'hosting.features.midi-in-fed-empty',
36
- featuresUnscanned: 'hosting.features.scan-predates-field',
37
- costWithinCeiling: 'hosting.cost.within-ceiling',
38
- costAboveCeiling: 'hosting.cost.above-ceiling',
39
- costSpiky: 'hosting.cost.spiky-tail',
40
- costUnmeasured: 'hosting.cost.unmeasured-at-rate-and-quantum',
41
- costFieldsMissing: 'hosting.cost.fields-missing',
42
- latencyResolved: 'hosting.latency.resolved',
43
- latencyUnmeasured: 'hosting.latency.unmeasured',
44
- latencyNonconforming: 'hosting.latency.nonconforming',
45
- latencyParameterDependent: 'hosting.latency.parameter-dependent',
46
- topologyMatched: 'hosting.topology.matched',
47
- topologyNoAudioInput: 'hosting.topology.no-audio-input',
48
- topologyNoAudioOutput: 'hosting.topology.no-audio-output',
49
- topologyExtraInputs: 'hosting.topology.extra-inputs-fed-silence',
50
- topologyInstrument: 'hosting.topology.instrument',
51
- // The CLAP arm: the SAME dimensions fed from CLAP facts,
52
- // minted here where the LV2 table has no code for the fact.
53
- topologyWiderThanStrip: 'hosting.topology.wider-than-strip',
54
- clapLatencyMismatch: 'hosting.clap.latency-mismatch',
55
- clapNotAudioEffect: 'hosting.clap.not-audio-effect',
56
- clapHeadlessFailed: 'hosting.clap.headless-failed',
57
- clapNoteInput: 'hosting.clap.note-input',
58
- clapThreadViolation: 'hosting.clap.thread-violation',
59
- clapProcessError: 'hosting.clap.process-error',
60
- clapUnqualified: 'hosting.clap.unqualified',
61
- clapFormatNotHosted: 'hosting.clap.format-not-hosted',
62
- clapExtensionsNotCovered: 'hosting.clap.extensions-not-covered',
63
- outputNonFinite: 'hosting.output.non-finite',
64
- workerNonconforming: 'hosting.worker.nonconforming',
65
- // The pin (spec §11; one-contract §10.3): a host's refusal at add, by the daemon's code.
66
- integrityUnpinned: 'hosting.integrity.unpinned',
67
- integrityBinaryMismatch: 'hosting.integrity.binary-mismatch',
68
- integrityLayoutMismatch: 'hosting.integrity.layout-mismatch',
69
- overrideIsolated: 'hosting.override.curator-isolated',
70
- hostProvenanceDiffers: 'hosting.provenance.host-differs',
71
- sweepControlDidNotFire: 'hosting.provenance.sweep-control-did-not-fire',
72
- // The five REALISED reasons. Everything above answers what a plugin EARNED; these answer
73
- // what the console DID with that, and the difference between the two is the operator's
74
- // whole question when a slot is not on the fast path.
75
- disabled: 'hosting.disabled',
76
- unjudged: 'hosting.unjudged',
77
- noRealisation: 'hosting.no-realisation',
78
- realisedInProcess: 'hosting.realised.in-process',
79
- // A plugin LINKED into the engine (the static-link registry) runs in-process without a
80
- // verdict: the library's oracles are its proof.
81
- linked: 'hosting.linked',
82
- };
16
+ import { execFileSync } from "node:child_process";
17
+ import { existsSync, readFileSync } from "node:fs";
18
+ import { join } from "node:path";
19
+ import { fileURLToPath } from "node:url";
20
+ /** The two TypeScript modules omx-clap-core's `tsdir` carries, each a `HOSTING_<DIMENSION>_CODES` source. */
21
+ const CLAP_CORE_TS_MODULES = ["omx-clap-core-vocabulary.js", "omx-clap-core-hosting.js"];
22
+ /** This package's own root, resolved from this module so it follows wherever it is installed. */
23
+ const PACKAGE_ROOT = fileURLToPath(new URL("..", import.meta.url));
24
+ /** `native/fetch-deps.sh`'s own checkout of omx-clap-core, for a build with no omx-clap-core-devel installed. */
25
+ const DEPS_TS_DIR = join(PACKAGE_ROOT, "native/deps/omx-clap-core/ts");
26
+ /** Where `make install` of omx-clap-host puts them (BUILDING.md), for a run with no `pkg-config` binary at all. */
27
+ const DEFAULT_SYSTEM_TS_DIR = "/usr/share/omx-clap-core/ts";
28
+ /** `pkg-config --variable=tsdir omx-clap-core`, or `undefined` where pkg-config or the package is absent. */
29
+ function pkgConfigTsDir(env) {
30
+ try {
31
+ const out = execFileSync(env.PKG_CONFIG ?? "pkg-config", ["--variable=tsdir", "omx-clap-core"], {
32
+ encoding: "utf8",
33
+ stdio: ["ignore", "pipe", "ignore"],
34
+ }).trim();
35
+ return out === "" ? undefined : out;
36
+ }
37
+ catch {
38
+ return undefined;
39
+ }
40
+ }
41
+ /**
42
+ * Where omx-clap-core's TypeScript modules are looked for, in order: `OMX_CLAP_CORE_TSDIR` when
43
+ * set (and only that), else `pkg-config --variable=tsdir omx-clap-core`, else the checkout
44
+ * `native/fetch-deps.sh` stages, else the path `make install` of omx-clap-host uses by default —
45
+ * a packaged plugin-qualify's runtime has no `pkg-config` binary to ask.
46
+ */
47
+ export function clapCoreTsDirCandidates(env = process.env) {
48
+ const set = env.OMX_CLAP_CORE_TSDIR;
49
+ if (set !== undefined && set !== "")
50
+ return [set];
51
+ const fromPkgConfig = pkgConfigTsDir(env);
52
+ return [...(fromPkgConfig === undefined ? [] : [fromPkgConfig]), DEPS_TS_DIR, DEFAULT_SYSTEM_TS_DIR];
53
+ }
54
+ function locateClapCoreTsDir() {
55
+ const candidates = clapCoreTsDirCandidates();
56
+ const dir = candidates.find((d) => CLAP_CORE_TS_MODULES.every((m) => existsSync(join(d, m))));
57
+ if (dir === undefined) {
58
+ throw new Error(`omx-clap-core's TypeScript modules (${CLAP_CORE_TS_MODULES.join(", ")}) were not found in any of: ` +
59
+ `${candidates.join(", ")}. Install omx-clap-core-devel (pkg-config omx-clap-core), set ` +
60
+ "OMX_CLAP_CORE_TSDIR to its tsdir, or run native/fetch-deps.sh.");
61
+ }
62
+ return dir;
63
+ }
64
+ /** True for an export name that is one of omx-clap-core's hosting tables. */
65
+ export function isHostingTableName(name) {
66
+ return /^HOSTING_[A-Z0-9_]+_CODES$/.test(name);
67
+ }
68
+ async function loadHostingTables() {
69
+ const dir = locateClapCoreTsDir();
70
+ const tables = {};
71
+ for (const name of CLAP_CORE_TS_MODULES) {
72
+ // The modules are self-contained ES modules in a directory with no package.json: Node 18 reads such a .js as
73
+ // CommonJS and refuses `export`, so the source is imported as a data: module, which is a module on every Node.
74
+ const source = readFileSync(join(dir, name), "utf8");
75
+ const mod = await import(`data:text/javascript;base64,${Buffer.from(source).toString("base64")}`);
76
+ for (const [exportName, table] of Object.entries(mod)) {
77
+ if (isHostingTableName(exportName))
78
+ tables[exportName] = table;
79
+ }
80
+ }
81
+ return tables;
82
+ }
83
+ function flatten(tables) {
84
+ const table = {};
85
+ for (const [name, entries] of Object.entries(tables)) {
86
+ for (const [key, entry] of Object.entries(entries)) {
87
+ if (key in table)
88
+ throw new Error(`omx-clap-core declares the hosting key ${key} twice (${name})`);
89
+ table[key] = entry.code;
90
+ }
91
+ }
92
+ return Object.freeze(table);
93
+ }
94
+ export const HOSTING_CODE = flatten(await loadHostingTables());
83
95
  //# sourceMappingURL=hosting-codes.js.map
@@ -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,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"}
1
+ {"version":3,"file":"hosting-codes.js","sourceRoot":"","sources":["../src/hosting-codes.ts"],"names":[],"mappings":"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"}
@@ -95,12 +95,11 @@ export type HostingCode = (typeof HOSTING_CODE)[keyof typeof HOSTING_CODE];
95
95
  */
96
96
  export declare const CLAP_CORE_REFUSALS: {
97
97
  readonly headlessFailed: "clapHeadlessFailed";
98
- readonly notAudioEffect: "clapNotAudioEffect";
99
98
  readonly noteInput: "clapNoteInput";
100
99
  readonly noAudioInput: "topologyNoAudioInput";
101
100
  readonly noAudioOutput: "topologyNoAudioOutput";
102
101
  readonly widerThanStrip: "topologyWiderThanStrip";
103
- readonly extraInputs: "topologyExtraInputs";
102
+ readonly tooManyPorts: "topologyTooManyPorts";
104
103
  readonly crashedLive: "stabilityCrashedLive";
105
104
  readonly outputNonFinite: "outputNonFinite";
106
105
  };
@@ -191,8 +190,14 @@ import { type HostingPolicy } from "./qualify-declarations.js";
191
190
  export interface ClapLatencyAtRate {
192
191
  /** `latency.get()` after `activate` at this rate; a plugin without the ext declares 0. */
193
192
  readonly declaredFrames: number;
194
- /** Where the qualifier's impulse landed through `process()`, in frames. */
193
+ /** Where the qualifier's impulse landed through `process()`, in frames; for an instrument, where a note's
194
+ * sound began. */
195
195
  readonly measuredFrames: number;
196
+ /** `note`: a plugin with no main audio input, measured from a note struck at frame 0 (the onset of its
197
+ * sound, which an attack envelope may put later than its latency). Absent: from an impulse. */
198
+ readonly from?: "note";
199
+ /** `false`: the note was struck and nothing was heard, so there is no onset to read. */
200
+ readonly heard?: boolean;
196
201
  }
197
202
  /**
198
203
  * What the CLAP prober (`native/clap-qualify`) MEASURED about a CLAP plugin, RAW (CLAP spec §3): the facts the CLAP
@@ -342,7 +347,10 @@ export declare function clapTopologyReasons(clap: PluginClapMeasurement | undefi
342
347
  /**
343
348
  * The CLAP arm of `latency` (CLAP spec §3): declared = measured at EVERY declared rate earns;
344
349
  * one rate that lies refuses (`unsuitable` — compensation reads the figure as truth); no rate
345
- * measured is `unknown`.
350
+ * measured is `unknown`. An instrument has no input to put an impulse in, so its figure is the onset
351
+ * of a note struck at frame 0: an onset before the declared latency is the same lie, one at or after
352
+ * it is resolved (an attack envelope sounds later than the plugin's delay, and that is no latency),
353
+ * and a note that was never heard is unmeasured.
346
354
  */
347
355
  export declare function clapLatencyReasons(clap: PluginClapMeasurement | undefined): readonly HostingReason[];
348
356
  /**
@@ -67,12 +67,11 @@ export { HOSTING_CODE };
67
67
  */
68
68
  export const CLAP_CORE_REFUSALS = {
69
69
  headlessFailed: "clapHeadlessFailed",
70
- notAudioEffect: "clapNotAudioEffect",
71
70
  noteInput: "clapNoteInput",
72
71
  noAudioInput: "topologyNoAudioInput",
73
72
  noAudioOutput: "topologyNoAudioOutput",
74
73
  widerThanStrip: "topologyWiderThanStrip",
75
- extraInputs: "topologyExtraInputs",
74
+ tooManyPorts: "topologyTooManyPorts",
76
75
  crashedLive: "stabilityCrashedLive",
77
76
  outputNonFinite: "outputNonFinite",
78
77
  };
@@ -82,12 +81,11 @@ export const CLAP_CORE_REFUSALS = {
82
81
  * refusal so the renderer holds no prose. A refusal without a line renders bare.
83
82
  */
84
83
  export const CLAP_CORE_REFUSAL_DESCRIPTIONS = {
85
- notAudioEffect: "the plugin is not an audio effect",
86
84
  noteInput: "the plugin declares a note input the configuration refuses",
87
85
  noAudioInput: "the plugin has no audio input",
88
86
  noAudioOutput: "the plugin has no audio output",
89
87
  widerThanStrip: "the plugin is wider than the strip",
90
- extraInputs: "the plugin has extra inputs, fed silence",
88
+ tooManyPorts: "the plugin has more ports than the auxiliary limit allows",
91
89
  crashedLive: "the plugin crashed live on this rig",
92
90
  outputNonFinite: "the plugin produced non-finite output",
93
91
  };
@@ -384,9 +382,6 @@ instruments = false) {
384
382
  features: missing.join(" "),
385
383
  }));
386
384
  }
387
- if ((features.cvPorts ?? 0) > 0) {
388
- out.push(reason("features", "objective", "unsuitable", HOSTING_CODE.featuresCv));
389
- }
390
385
  }
391
386
  if (descriptor.hasMidiIn && !instruments) {
392
387
  out.push(reason("features", "objective", "conditional", HOSTING_CODE.featuresMidiIn));
@@ -489,7 +484,7 @@ export function hostingTopologyReasons(descriptor, instruments = false) {
489
484
  ];
490
485
  }
491
486
  return [
492
- reason("topology", "objective", "conditional", HOSTING_CODE.topologyExtraInputs, { ins, outs }),
487
+ reason("topology", "objective", "conditional", HOSTING_CODE.topologyTooManyPorts, { ins, outs }),
493
488
  ];
494
489
  }
495
490
  /**
@@ -514,14 +509,17 @@ export function clapTopologyReasons(clap, instruments = false) {
514
509
  return [reason("topology", "objective", "unsuitable", HOSTING_CODE.topologyWiderThanStrip, { ins, outs })];
515
510
  }
516
511
  if (clap.sidechainInputs > 0) {
517
- return [reason("topology", "objective", "unsuitable", HOSTING_CODE.topologyExtraInputs, { ins, outs, sidechains: clap.sidechainInputs })];
512
+ return [reason("topology", "objective", "unsuitable", HOSTING_CODE.topologyTooManyPorts, { ins, outs, sidechains: clap.sidechainInputs })];
518
513
  }
519
514
  return [reason("topology", "objective", "suitable", HOSTING_CODE.topologyMatched, { ins, outs })];
520
515
  }
521
516
  /**
522
517
  * The CLAP arm of `latency` (CLAP spec §3): declared = measured at EVERY declared rate earns;
523
518
  * one rate that lies refuses (`unsuitable` — compensation reads the figure as truth); no rate
524
- * measured is `unknown`.
519
+ * measured is `unknown`. An instrument has no input to put an impulse in, so its figure is the onset
520
+ * of a note struck at frame 0: an onset before the declared latency is the same lie, one at or after
521
+ * it is resolved (an attack envelope sounds later than the plugin's delay, and that is no latency),
522
+ * and a note that was never heard is unmeasured.
525
523
  */
526
524
  export function clapLatencyReasons(clap) {
527
525
  const rates = clap ? Object.keys(clap.latency) : [];
@@ -530,7 +528,11 @@ export function clapLatencyReasons(clap) {
530
528
  }
531
529
  for (const rate of rates) {
532
530
  const at = clap.latency[rate];
533
- if (at.declaredFrames !== at.measuredFrames) {
531
+ if (at.from === "note" && at.heard === false) {
532
+ return [reason("latency", "objective", "unknown", HOSTING_CODE.latencyUnmeasured, { rate: Number(rate) })];
533
+ }
534
+ const lies = at.from === "note" ? at.measuredFrames < at.declaredFrames : at.declaredFrames !== at.measuredFrames;
535
+ if (lies) {
534
536
  return [
535
537
  reason("latency", "objective", "unsuitable", HOSTING_CODE.clapLatencyMismatch, {
536
538
  rate: Number(rate), declared: at.declaredFrames, measured: at.measuredFrames,
@@ -555,10 +557,6 @@ export function clapFeatureReasons(clap, profile = OPENMIXER_CONSOLE_PROFILE, sc
555
557
  }
556
558
  const out = [];
557
559
  const offered = profile.clapExtensions;
558
- const kindHosted = clap.features.includes(CLAP_FEATURE_AUDIO_EFFECT) || (profile.instruments && clap.features.includes(CLAP_FEATURE_INSTRUMENT));
559
- if (!kindHosted) {
560
- out.push(reason("features", "objective", "unsuitable", HOSTING_CODE.clapNotAudioEffect, { features: clap.features.join(" ") }));
561
- }
562
560
  if (!clap.headlessOk) {
563
561
  out.push(reason("features", "objective", "unsuitable", HOSTING_CODE.clapHeadlessFailed));
564
562
  }
@@ -641,12 +639,15 @@ export function classifyPluginHosting(descriptor, options) {
641
639
  // report could agree with itself while every served descriptor read unknown.
642
640
  // The CLAP arm: the SAME six dimensions, fed from the
643
641
  // qualifier's CLAP facts where the LV2 scan's facts do not exist for the format. Stability,
644
- // the interposer's counts and the cost are format-blind and read unchanged.
642
+ // the interposer's counts and the cost are format-blind and read unchanged. A host that plays
643
+ // notes (an instrument host) also reads the note sweep: an instrument is clean at rest, so the
644
+ // parameter sweep alone says nothing about what a voice does.
645
645
  const reasons = descriptor.format === "clap"
646
646
  ? [
647
647
  ...stabilityReasons(descriptor.stability, policy, options.pluginBinary, sharesProcess, options.rate),
648
648
  ...rtSafetyReasons(descriptor.rtSafety),
649
649
  ...clapRtReasons(descriptor.clap),
650
+ ...(profile.instruments ? noteSweepReasons(descriptor.rtSafety?.noteSweep, descriptor.clap?.noteInputs ?? (descriptor.hasMidiIn ? 1 : 0)) : []),
650
651
  ...clapFeatureReasons(descriptor.clap, profile, descriptor.hasMidiIn),
651
652
  ...hostingCostReasons(descriptor, options, policy),
652
653
  ...clapLatencyReasons(descriptor.clap),
@@ -655,6 +656,7 @@ export function classifyPluginHosting(descriptor, options) {
655
656
  : [
656
657
  ...stabilityReasons(descriptor.stability, policy, options.pluginBinary, sharesProcess, options.rate),
657
658
  ...rtSafetyReasons(descriptor.rtSafety),
659
+ ...(profile.instruments ? noteSweepReasons(descriptor.rtSafety?.noteSweep, descriptor.hasMidiIn ? 1 : 0) : []),
658
660
  ...featureReasons(descriptor.lv2Features, descriptor, profile.lv2Features, options.quantum !== undefined, profile.instruments),
659
661
  ...hostingCostReasons(descriptor, options, policy),
660
662
  ...hostingLatencyReasons(descriptor, profile.latency),
@@ -1 +1 @@
1
- {"version":3,"file":"hosting-suitability.js","sourceRoot":"","sources":["../src/hosting-suitability.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hosting-suitability.js","sourceRoot":"","sources":["../src/hosting-suitability.ts"],"names":[],"mappings":"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"}
@@ -40,6 +40,8 @@ export declare const TOOL_NAME = "lv2-measure";
40
40
  * needs to know which of the two it was.
41
41
  */
42
42
  export declare const TOOL_VERSION = "0.1.0";
43
+ /** The most notes a cost run holds: one per MIDI key, as the probers cap it. */
44
+ export declare const PROBE_NOTES_MAX = 128;
43
45
  /** A fully resolved invocation. */
44
46
  export interface MeasureOptions {
45
47
  /** Where the document goes. Absent = stdout. */
@@ -56,6 +58,11 @@ export interface MeasureOptions {
56
58
  readonly sweep: boolean;
57
59
  /** Core to pin the cost pass to. Absent = let the prober choose. */
58
60
  readonly costCpu?: number;
61
+ /**
62
+ * The notes the cost pass holds down while it times an instrument (`--probe-notes`, the console's
63
+ * `SYNTH_VOICE_PROBE_NOTES`), basis `probe`. Absent = an instrument is unmeasured `voices-unknown`.
64
+ */
65
+ readonly probeNotes?: number;
59
66
  readonly label?: string;
60
67
  /** Directory holding `scan.py` and `benchmark.py`. */
61
68
  readonly toolDir: string;
@@ -76,7 +83,7 @@ export interface MeasureOptions {
76
83
  * them: the provider's kinds (`--features`), its buf-size declarations (`--block-declares`) and its log
77
84
  * modes (`--log`). A conformance test reads both.
78
85
  */
79
- export declare const LV2_FEATURE_KINDS: readonly ["map", "unmap", "options", "bounded", "worker", "default-state", "log"];
86
+ export declare const LV2_FEATURE_KINDS: readonly ["map", "unmap", "options", "bounded", "worker", "default-state", "log", "rtmempool"];
80
87
  export declare const LV2_BLOCK_DECLARATIONS: readonly ["bounded", "fixed", "pow2"];
81
88
  export declare const LV2_LOG_MODES: readonly ["silent", "route", "capture"];
82
89
  /** One subprocess the pipeline runs, and what it leaves behind. */
@@ -47,12 +47,14 @@ export const TOOL_NAME = "lv2-measure";
47
47
  * needs to know which of the two it was.
48
48
  */
49
49
  export const TOOL_VERSION = "0.1.0";
50
+ /** The most notes a cost run holds: one per MIDI key, as the probers cap it. */
51
+ export const PROBE_NOTES_MAX = 128;
50
52
  /**
51
53
  * The words the LV2 measurer's feature-option flags take, as `native/lv2-measure-options.c` names
52
54
  * them: the provider's kinds (`--features`), its buf-size declarations (`--block-declares`) and its log
53
55
  * modes (`--log`). A conformance test reads both.
54
56
  */
55
- export const LV2_FEATURE_KINDS = ["map", "unmap", "options", "bounded", "worker", "default-state", "log"];
57
+ export const LV2_FEATURE_KINDS = ["map", "unmap", "options", "bounded", "worker", "default-state", "log", "rtmempool"];
56
58
  export const LV2_BLOCK_DECLARATIONS = ["bounded", "fixed", "pow2"];
57
59
  export const LV2_LOG_MODES = ["silent", "route", "capture"];
58
60
  /**
@@ -134,6 +136,7 @@ export function buildPipeline(options, native) {
134
136
  "--cost-provenance",
135
137
  costProvenance,
136
138
  ...(options.costCpu === undefined ? [] : ["--cost-cpu", String(options.costCpu)]),
139
+ ...(options.probeNotes === undefined ? [] : ["--probe-notes", String(options.probeNotes)]),
137
140
  ],
138
141
  produces: cost,
139
142
  dimension: "cost",
@@ -252,6 +255,7 @@ export function parseMeasureArgs(argv, env = {}, defaults) {
252
255
  let workDir = defaults.workDir;
253
256
  let sweep = false;
254
257
  let costCpu;
258
+ let probeNotes;
255
259
  let label;
256
260
  let toolDir = defaults.toolDir;
257
261
  let python = env.PYTHON ?? "python3";
@@ -333,6 +337,15 @@ export function parseMeasureArgs(argv, env = {}, defaults) {
333
337
  costCpu = cpu;
334
338
  break;
335
339
  }
340
+ case "--probe-notes": {
341
+ const value = next();
342
+ const notes = value === undefined ? Number.NaN : Number(value);
343
+ if (!Number.isInteger(notes) || notes < 1 || notes > PROBE_NOTES_MAX) {
344
+ return { ok: false, error: `--probe-notes needs a count of notes, 1 to ${PROBE_NOTES_MAX}` };
345
+ }
346
+ probeNotes = notes;
347
+ break;
348
+ }
336
349
  case "--label": {
337
350
  const value = next();
338
351
  if (value === undefined)
@@ -398,6 +411,7 @@ export function parseMeasureArgs(argv, env = {}, defaults) {
398
411
  ...(scanPath === undefined ? {} : { scanPath }),
399
412
  ...(plugins === undefined ? {} : { plugins }),
400
413
  ...(costCpu === undefined ? {} : { costCpu }),
414
+ ...(probeNotes === undefined ? {} : { probeNotes }),
401
415
  ...(label === undefined ? {} : { label }),
402
416
  ...(featureFlags.length === 0 ? {} : { featureFlags }),
403
417
  },