@openmixer/plugin-qualify 0.11.0 → 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.
Files changed (41) hide show
  1. package/README.md +6 -0
  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/hosting-suitability.d.ts +11 -2
  6. package/dist/hosting-suitability.js +14 -3
  7. package/dist/hosting-suitability.js.map +1 -1
  8. package/dist/measurement/cli.d.ts +7 -0
  9. package/dist/measurement/cli.js +14 -0
  10. package/dist/measurement/cli.js.map +1 -1
  11. package/dist/measurement/format.d.ts +44 -4
  12. package/dist/measurement/format.js +46 -3
  13. package/dist/measurement/format.js.map +1 -1
  14. package/dist/measurement/probe-json.js +3 -0
  15. package/dist/measurement/probe-json.js.map +1 -1
  16. package/dist/measurement/sweep-jsonl.js +2 -1
  17. package/dist/measurement/sweep-jsonl.js.map +1 -1
  18. package/dist/measurement/vocabulary.d.ts +9 -0
  19. package/dist/measurement/vocabulary.js +27 -0
  20. package/dist/measurement/vocabulary.js.map +1 -1
  21. package/dist/probe-judge.d.ts +6 -1
  22. package/dist/probe-judge.js +7 -3
  23. package/dist/probe-judge.js.map +1 -1
  24. package/dist/probe-output.d.ts +3 -0
  25. package/dist/probe-output.js +5 -0
  26. package/dist/probe-output.js.map +1 -1
  27. package/dist/qualification-record.d.ts +3 -1
  28. package/dist/qualification-record.js.map +1 -1
  29. package/package.json +1 -1
  30. package/src/clap-qualify.ts +177 -5
  31. package/src/hosting-suitability.ts +21 -4
  32. package/src/measurement/cli.ts +20 -0
  33. package/src/measurement/format.ts +80 -2
  34. package/src/measurement/probe-json.ts +3 -0
  35. package/src/measurement/sweep-jsonl.ts +2 -1
  36. package/src/measurement/vocabulary.ts +31 -0
  37. package/src/probe-judge.ts +13 -5
  38. package/src/probe-output.ts +6 -0
  39. package/src/qualification-record.ts +9 -2
  40. package/tools/benchmark.py +104 -13
  41. package/tools/lv2-measure.mjs +2 -0
@@ -1 +1 @@
1
- {"version":3,"file":"vocabulary.js","sourceRoot":"","sources":["../../src/measurement/vocabulary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vocabulary.js","sourceRoot":"","sources":["../../src/measurement/vocabulary.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import type { HostProfile } from "./host-profiles.js";
3
3
  import { type ProbeOutput } from "./probe-output.js";
4
4
  import type { QualifyVerdict } from "./qualify-cli.js";
5
5
  import { type SuitabilityRating } from "./rating.js";
6
+ import type { VoicesHeld } from "./measurement/format.js";
6
7
  /** Facts of the descriptor, which the probe output repeats none of. */
7
8
  export interface JudgeFacts {
8
9
  /** Note input ports the plugin declares. */
@@ -34,10 +35,14 @@ export interface HostJudgment {
34
35
  /** In-process only for a suitable plugin on a host that runs its plugins in its own process, else isolated. */
35
36
  readonly hosting: "in-process" | "isolated";
36
37
  readonly reasons: readonly RecordReason[];
37
- /** The cost reasons at this host's rate and quantum, kept beside the verdict, not folded into it. */
38
+ /**
39
+ * The cost reasons at this host's rate and quantum, kept beside the verdict, not folded into it; for an instrument,
40
+ * the notes it held while that figure was timed.
41
+ */
38
42
  readonly cost: {
39
43
  readonly rate: number;
40
44
  readonly quantum: number;
45
+ readonly voices?: VoicesHeld;
41
46
  readonly reasons: readonly RecordReason[];
42
47
  };
43
48
  }
@@ -19,7 +19,7 @@
19
19
  import { DEFAULT_HOSTING_POLICY } from "./qualify-declarations.js";
20
20
  import { rtSafetyDocument, } from "./clap-qualify.js";
21
21
  import { gridCostReadings } from "./cost-fields.js";
22
- import { hostingCostReasons, rtSafetyReasons, contributedHostingRating, } from "./hosting-suitability.js";
22
+ import { hostingCostReasons, noteSweepReasons, rtSafetyReasons, contributedHostingRating, } from "./hosting-suitability.js";
23
23
  import { PROBE_NOT_ATTEMPTED, PROBE_OK } from "./probe-output.js";
24
24
  import { RATING_SEVERITY, worstRating } from "./rating.js";
25
25
  /** A sum of one count over the points, or `undefined` when a point lacks it: a missing count is not zero. */
@@ -140,7 +140,8 @@ function decidingOf(reasons, rating) {
140
140
  function costOf(output, profile) {
141
141
  const { rate, quantum } = profile.cost;
142
142
  const reasons = hostingCostReasons({ cpuCost: { perRateQuantum: gridCostReadings(output.grid, PROBE_OK) } }, { rate, quantum, profile }, DEFAULT_HOSTING_POLICY);
143
- return { rate, quantum, reasons: reasons.map(asRecordReason) };
143
+ const voices = output.grid.find((p) => p.outcome === PROBE_OK && p.rate === rate && p.quantum === quantum)?.cost?.voices;
144
+ return { rate, quantum, ...(voices === undefined ? {} : { voices }), reasons: reasons.map(asRecordReason) };
144
145
  }
145
146
  /**
146
147
  * The outcome that ended the run badly, or `undefined` when it ended well. The run's own outcome is the
@@ -186,7 +187,10 @@ export function judgeProbeOutput(output, profiles, facts = {}) {
186
187
  reasons = doc.verdict.reasons.map(asRecordReason);
187
188
  }
188
189
  else {
189
- reasons = rtSafetyReasons(rtSafetyOfProbeOutput(output)).map(asRecordReason);
190
+ // an LV2 plugin: the control sweep's counts, and the note sweep's when it was played through a MIDI input
191
+ const rt = rtSafetyOfProbeOutput(output);
192
+ const notes = noteSweepOfProbeOutput(output, rt);
193
+ reasons = [...rtSafetyReasons(rt), ...noteSweepReasons(notes, facts.noteInputs ?? (notes.applicable ? 1 : 0))].map(asRecordReason);
190
194
  }
191
195
  const rating = worstRating(reasons.map((r) => r.rating));
192
196
  const deciding = decidingOf(reasons, rating);
@@ -1 +1 @@
1
- {"version":3,"file":"probe-judge.js","sourceRoot":"","sources":["../src/probe-judge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"probe-judge.js","sourceRoot":"","sources":["../src/probe-judge.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,sDAAsD;AACtD;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EACL,gBAAgB,GAKjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,wBAAwB,GAEzB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAyC,MAAM,mBAAmB,CAAC;AAEzG,OAAO,EAAE,eAAe,EAAE,WAAW,EAA0B,MAAM,aAAa,CAAC;AASnF,6GAA6G;AAC7G,SAAS,KAAK,CAAC,MAAiC,EAAE,KAAgD;IAChG,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,CAAC,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QACtC,GAAG,IAAI,CAAC,CAAC;IACX,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,8EAA8E;AAC9E,SAAS,QAAQ,CAAC,MAAmB;IACnC,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAmB;IACvD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;IACxE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,UAAU,KAAK,IAAI,CAAC;QAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IAC7G,MAAM,OAAO,GAAG,CAAC,CAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;IAClD,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IAClE,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC5D,OAAO;QACL,UAAU,EAAE,IAAI;QAChB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;QACtD,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,eAAe,KAAK,IAAI,CAAC;QACzE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC;QAC1D,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC;QACpC,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAC;QACvE,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QACrD,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;QAC9D,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,EAAE,CAAC;KACxD,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAmB,EAAE,EAAuB;IAC1E,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,UAAU,KAAK,IAAI,CAAC,EAAE,SAAS,CAAC;IACzF,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IACvD,MAAM,OAAO,GAAkC,EAAE,CAAC;IAClD,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM;QAAE,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAC7F,MAAM,IAAI,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,WAAW,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAC3J,IAAI,CAAC,EAAE,CAAC,UAAU;QAAE,OAAO,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IAC1D,OAAO;QACL,GAAG,IAAI;QACP,UAAU,EAAE,IAAI;QAChB,GAAG,CAAC,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;QACrF,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QACnE,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;KAC7E,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAmB;IACjD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC;IACpD,IAAI,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/C,OAAO,EAAE,gBAAgB,EAAE,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,EAAE,gBAAgB,EAAE,UAAU,IAAI,sCAAsC,EAAE,CAAC;IAC/J,CAAC;IACD,OAAO;QACL,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAClF,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,MAAM;KACP,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAmB,EAAE,QAAoB,EAAE;IACjF,MAAM,QAAQ,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,sBAAsB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChC,MAAM,OAAO,GAAuE,EAAE,CAAC;IACvF,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,SAAS;YAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;IAC5G,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;IAC9D,OAAO;QACL,GAAG,EAAE,YAAY,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE;QACnC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE;QACpB,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;QAClE,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc,IAAI,EAAE;QACjD,IAAI,EAAE;YACJ,iBAAiB,EAAE,CAAC;YACpB,kBAAkB,EAAE,CAAC;YACrB,eAAe,EAAE,CAAC;YAClB,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC;YACxF,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9D,OAAO;YACP,gBAAgB,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,gBAAgB,IAAI,CAAC,CAAC,IAAI,CAAC;YAC9E,aAAa,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,aAAa,IAAI,CAAC,CAAC,IAAI,CAAC;YACxE,gGAAgG;YAChG,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM;YAC1E,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,yBAAyB,CAAC;SAC7E;QACD,QAAQ;QACR,SAAS;QACT,SAAS,EAAE,sBAAsB,CAAC,MAAM,CAAC;KAC1C,CAAC;AACJ,CAAC;AAUD,MAAM,cAAc,GAAG,CAAC,CAAgB,EAAgB,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,wBAAwB,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAsB7J,SAAS,UAAU,CAAC,OAAgC,EAAE,MAAyB;IAC7E,IAAI,MAAM,KAAK,UAAU;QAAE,OAAO,SAAS,CAAC;IAC5C,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;AAC7H,CAAC;AAED,SAAS,MAAM,CAAC,MAAmB,EAAE,OAAoB;IACvD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IACvC,MAAM,OAAO,GAAG,kBAAkB,CAChC,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,EACxE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAC1B,sBAAsB,CACvB,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC;IACzH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;AAC9G,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,MAAmB;IACxC,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;IAC/D,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,KAAK,mBAAmB,CAAC,EAAE,OAAO,CAAC;AACvG,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAmB,EAAE,QAAgC,EAAE,QAAoB,EAAE;IAC5G,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IAChG,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACrG,OAAO;YACL,MAAM;YACN,SAAS,EAAE,EAAE;YACb,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAChC,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE;gBAC3G,OAAO,EAAE,UAAU;gBACnB,OAAO,EAAE,CAAC,MAAM,CAAC;gBACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;aAC9B,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,uBAAuB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClG,MAAM,SAAS,GAAuB,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAgB,EAAE;QACnD,IAAI,OAAuB,CAAC;QAC5B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC5C,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpB,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,0GAA0G;YAC1G,MAAM,EAAE,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;YACzC,MAAM,KAAK,GAAG,sBAAsB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACjD,OAAO,GAAG,CAAC,GAAG,eAAe,CAAC,EAAE,CAAC,EAAE,GAAG,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACrI,CAAC;QACD,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7C,OAAO;YACL,OAAO,EAAE;gBACP,GAAG;gBACH,IAAI,EAAE,OAAO,CAAC,EAAE;gBAChB,QAAQ,EAAE,IAAI;gBACd,MAAM;gBACN,SAAS,EAAE,MAAM,KAAK,UAAU;gBAChC,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;aAC/D;YACD,OAAO,EAAE,MAAM,KAAK,UAAU,IAAI,OAAO,CAAC,SAAS,KAAK,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU;YAChG,OAAO;YACP,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;SAC9B,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AACtC,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,gBAAgB,CAAC,QAAkB;IACjD,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAC9C,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { type VoicesHeld } from "./measurement/format.js";
1
2
  export declare const PROBE_OUTPUT_FORMAT = "plugin-hostd.probe-output";
2
3
  /** The one major this reader knows. A minor of it only adds fields. */
3
4
  export declare const PROBE_OUTPUT_MAJOR = 1;
@@ -29,6 +30,8 @@ export interface ProbeCost {
29
30
  };
30
31
  readonly blocks: number;
31
32
  readonly warmupBlocks: number;
33
+ /** For an instrument: the notes it held while it was timed, how many and why that many. */
34
+ readonly voices?: VoicesHeld;
32
35
  }
33
36
  export interface ProbeRtSafety {
34
37
  readonly interposer: boolean;
@@ -19,6 +19,7 @@
19
19
  */
20
20
  import { createHash } from "node:crypto";
21
21
  import { finiteNumber, isRecord, nonEmptyString, optional } from "./measurement/guards.js";
22
+ import { readVoicesHeld } from "./measurement/format.js";
22
23
  export const PROBE_OUTPUT_FORMAT = "plugin-hostd.probe-output";
23
24
  /** The one major this reader knows. A minor of it only adds fields. */
24
25
  export const PROBE_OUTPUT_MAJOR = 1;
@@ -111,11 +112,15 @@ function readCost(v, where) {
111
112
  const value = num(pct, "value", `${where} percentile`);
112
113
  if (median < 0 || value < 0)
113
114
  invalid(`${where} holds a negative cost`);
115
+ const voices = o["voices"] === undefined ? undefined : readVoicesHeld(o["voices"]);
116
+ if (o["voices"] !== undefined && voices === undefined)
117
+ invalid(`${where} voices is not a count of held notes with its basis`);
114
118
  return {
115
119
  median,
116
120
  percentile: { p, value },
117
121
  blocks: posInt(o, "blocks", where),
118
122
  warmupBlocks: count(o, "warmupBlocks", where),
123
+ ...(voices === undefined ? {} : { voices }),
119
124
  };
120
125
  }
121
126
  function readRtSafety(v, where) {
@@ -1 +1 @@
1
- {"version":3,"file":"probe-output.js","sourceRoot":"","sources":["../src/probe-output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"probe-output.js","sourceRoot":"","sources":["../src/probe-output.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { Judgment, RecordReason } from "./probe-judge.js";
2
2
  import { type ProbeGridPoint, type ProbeOutput } from "./probe-output.js";
3
+ import type { VoicesHeld } from "./measurement/format.js";
3
4
  export declare const QUALIFICATION_RECORD_SCHEMA = "plugin-qualify.qualification-record/1";
4
5
  /** One host's verdict in the record. */
5
6
  export interface RecordVerdict {
@@ -24,11 +25,12 @@ export interface QualificationRecord {
24
25
  readonly testedVersion?: string;
25
26
  readonly binary: ProbeOutput["binary"];
26
27
  readonly verdicts: readonly RecordVerdict[];
27
- /** The cost reasons at each host's rate and quantum, beside the verdicts. */
28
+ /** The cost reasons at each host's rate and quantum, beside the verdicts; an instrument's with the notes it held. */
28
29
  readonly cost: readonly {
29
30
  readonly host: string;
30
31
  readonly rate: number;
31
32
  readonly quantum: number;
33
+ readonly voices?: VoicesHeld;
32
34
  readonly reasons: readonly RecordReason[];
33
35
  }[];
34
36
  /** The figures as measured, per rate and quantum. */
@@ -1 +1 @@
1
- {"version":3,"file":"qualification-record.js","sourceRoot":"","sources":["../src/qualification-record.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"qualification-record.js","sourceRoot":"","sources":["../src/qualification-record.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openmixer/plugin-qualify",
3
- "version": "0.11.0",
3
+ "version": "0.12.0",
4
4
  "description": "Qualify audio plugins for real-time hosting: scan, offline latency and cost measurement, a mod-host hosting sweep, and a fail-closed rating.",
5
5
  "type": "module",
6
6
  "license": "GPL-3.0-or-later",
@@ -19,10 +19,13 @@ import {
19
19
  contributedHostingRating,
20
20
  noteSweepReasons,
21
21
  rtSafetyReasons,
22
+ type ClapLatencyAtRate,
22
23
  type HostingReason,
23
24
  type PluginClapMeasurement,
24
25
  type PluginNoteSweepMeasurement,
25
26
  type PluginRtSafetyMeasurement,
27
+ type PluginStabilityMeasurement,
28
+ type QualifiedPlugin,
26
29
  } from "./hosting-suitability.js";
27
30
  import {
28
31
  OMX_CLAP_HOST_CONFIGURED_EXTENSIONS,
@@ -33,7 +36,9 @@ import {
33
36
  import type { QualifyVerdict } from "./qualify-cli.js";
34
37
  import { RATING_SEVERITY, worstRating, type SuitabilityRating } from "./rating.js";
35
38
  import { halfPopulatedRefusal, locateNativeTools } from "./tool-paths.js";
36
- import { readIntegrity, type IntegrityMeasurement } from "./measurement/format.js";
39
+ import { readIntegrity, type IntegrityMeasurement, type VoicesHeld } from "./measurement/format.js";
40
+ import { isVoiceBasis } from "./measurement/vocabulary.js";
41
+ import { coreFraction } from "./cost-fields.js";
37
42
 
38
43
  export class ClapQualifyError extends Error {
39
44
  constructor(message: string) {
@@ -61,6 +66,45 @@ export interface ClapProbedFacts extends PluginClapMeasurement {
61
66
  readonly nonFinite: boolean;
62
67
  }
63
68
 
69
+ /** One rate's cost: the block times in nanoseconds per sample, warm-up dropped, and the notes held for an instrument. */
70
+ export interface ClapCostFigure {
71
+ readonly nsPerSampleMedian: number;
72
+ readonly nsPerSampleP95: number;
73
+ readonly nsPerSampleMin: number;
74
+ readonly nsPerSampleMax: number;
75
+ /** The median of the dropped warm-up blocks: the evidence that dropping them was warranted. */
76
+ readonly warmupNsPerSampleMedian: number;
77
+ readonly blocks: number;
78
+ /** For an instrument: the notes held while it was timed. Absent for an effect. */
79
+ readonly voices?: VoicesHeld;
80
+ }
81
+
82
+ /** One rate the cost arm did not time, and why; an instrument's declared capacity is kept when it has one. */
83
+ export interface ClapCostUnmeasured {
84
+ readonly unmeasuredReason: string;
85
+ readonly unmeasuredDetail: string;
86
+ readonly voices?: { readonly capacity: number };
87
+ }
88
+
89
+ export type ClapCostAtRate = ClapCostFigure | ClapCostUnmeasured;
90
+
91
+ export function isClapCostFigure(at: ClapCostAtRate): at is ClapCostFigure {
92
+ return !("unmeasuredReason" in at);
93
+ }
94
+
95
+ /**
96
+ * The cost arm: every rate timed with every parameter swept, an effect fed noise and an instrument
97
+ * holding notes (`notes-held`), each rate's figures or the reason it has none.
98
+ */
99
+ export interface ClapCostReading {
100
+ readonly stimulus: "notes-held" | "noise";
101
+ readonly blockFrames: number;
102
+ readonly warmupBlocks: number;
103
+ /** The percentile `nsPerSampleP95` is taken at. */
104
+ readonly percentile: number;
105
+ readonly perRate: Readonly<Record<string, ClapCostAtRate>>;
106
+ }
107
+
64
108
  /** One plugin's line from `clap-qualify`. */
65
109
  export interface ClapQualifyLine {
66
110
  readonly uri: string;
@@ -72,6 +116,8 @@ export interface ClapQualifyLine {
72
116
  readonly rtSafety: ClapRtSafetyReading;
73
117
  /** The note sweep: the plugin played through its note input, counted apart. */
74
118
  readonly noteSweep: ClapNoteSweepReading;
119
+ /** The cost arm; absent when the plugin did not initialise and activate headless. */
120
+ readonly cost?: ClapCostReading;
75
121
  /**
76
122
  * The pin (spec §11): the `.clap`'s digest by its name in its directory and the layout fingerprint
77
123
  * the prober computed through plugin-hostd's `pin.h`, or the reason it took none.
@@ -114,10 +160,17 @@ function readClap(v: unknown): ClapProbedFacts {
114
160
  if (!isRecord(v)) return bad("no clap facts");
115
161
  const latencyIn = v["latency"];
116
162
  if (!isRecord(latencyIn)) return bad("clap has no latency map");
117
- const latency: Record<string, { declaredFrames: number; measuredFrames: number }> = {};
163
+ const latency: Record<string, ClapLatencyAtRate> = {};
118
164
  for (const [rate, at] of Object.entries(latencyIn)) {
119
165
  if (!/^[1-9]\d*$/.test(rate) || !isRecord(at)) return bad(`clap latency at ${rate}`);
120
- latency[rate] = { declaredFrames: count(at, "declaredFrames", `latency ${rate}`), measuredFrames: count(at, "measuredFrames", `latency ${rate}`) };
166
+ if (at["from"] !== undefined && at["from"] !== "note") return bad(`clap latency at ${rate} from ${JSON.stringify(at["from"])}`);
167
+ if (at["heard"] !== undefined && (at["from"] !== "note" || at["heard"] !== false)) return bad(`clap latency at ${rate} heard`);
168
+ latency[rate] = {
169
+ declaredFrames: count(at, "declaredFrames", `latency ${rate}`),
170
+ measuredFrames: count(at, "measuredFrames", `latency ${rate}`),
171
+ ...(at["from"] === "note" ? { from: "note" as const } : {}),
172
+ ...(at["heard"] === false ? { heard: false } : {}),
173
+ };
121
174
  }
122
175
  return {
123
176
  mainInputChannels: count(v, "mainInputChannels", "clap"),
@@ -175,6 +228,120 @@ function readNoteSweep(v: unknown): ClapNoteSweepReading {
175
228
  };
176
229
  }
177
230
 
231
+ function figure(o: Record<string, unknown>, key: string, where: string): number {
232
+ const v = o[key];
233
+ return typeof v === "number" && Number.isFinite(v) && v >= 0 ? v : bad(`${where} has no figure ${key}`);
234
+ }
235
+
236
+ function readVoices(v: unknown, where: string): { held?: number; basis?: VoicesHeld["basis"]; capacity?: number } {
237
+ if (!isRecord(v)) return bad(`${where} voices is not an object`);
238
+ const out: { held?: number; basis?: VoicesHeld["basis"]; capacity?: number } = {};
239
+ if ("held" in v || "basis" in v) {
240
+ const basis = v["basis"];
241
+ if (!isVoiceBasis(basis)) return bad(`${where} voices basis ${JSON.stringify(basis)}`);
242
+ const held = count(v, "held", `${where} voices`);
243
+ if (held === 0) return bad(`${where} holds no note`);
244
+ out.held = held;
245
+ out.basis = basis;
246
+ }
247
+ if ("capacity" in v) out.capacity = count(v, "capacity", `${where} voices`);
248
+ return out;
249
+ }
250
+
251
+ function readCostAtRate(v: unknown, where: string, notes: boolean): ClapCostAtRate {
252
+ if (!isRecord(v)) return bad(`${where} is not an object`);
253
+ const voices = v["voices"] === undefined ? undefined : readVoices(v["voices"], where);
254
+ if (voices !== undefined && !notes) return bad(`${where} holds notes for a plugin fed noise`);
255
+ if (v["unmeasuredReason"] !== undefined) {
256
+ if (voices?.held !== undefined) return bad(`${where} held notes and timed nothing`);
257
+ return {
258
+ unmeasuredReason: str(v, "unmeasuredReason", where),
259
+ unmeasuredDetail: str(v, "unmeasuredDetail", where),
260
+ ...(voices?.capacity === undefined ? {} : { voices: { capacity: voices.capacity } }),
261
+ };
262
+ }
263
+ if (notes && (voices === undefined || voices.held === undefined || voices.basis === undefined)) {
264
+ return bad(`${where} timed an instrument without saying what it held`);
265
+ }
266
+ const blocks = count(v, "blocks", where);
267
+ if (blocks === 0) return bad(`${where} timed no block`);
268
+ return {
269
+ nsPerSampleMedian: figure(v, "nsPerSampleMedian", where),
270
+ nsPerSampleP95: figure(v, "nsPerSampleP95", where),
271
+ nsPerSampleMin: figure(v, "nsPerSampleMin", where),
272
+ nsPerSampleMax: figure(v, "nsPerSampleMax", where),
273
+ warmupNsPerSampleMedian: figure(v, "warmupNsPerSampleMedian", where),
274
+ blocks,
275
+ ...(voices?.held === undefined || voices.basis === undefined
276
+ ? {}
277
+ : { voices: { held: voices.held, basis: voices.basis, ...(voices.capacity === undefined ? {} : { capacity: voices.capacity }) } }),
278
+ };
279
+ }
280
+
281
+ function readCost(v: unknown): ClapCostReading {
282
+ if (!isRecord(v)) return bad("cost is not an object");
283
+ const stimulus = str(v, "stimulus", "cost");
284
+ if (stimulus !== "notes-held" && stimulus !== "noise") return bad(`cost stimulus ${stimulus}`);
285
+ const perRateIn = v["perRate"];
286
+ if (!isRecord(perRateIn)) return bad("cost has no perRate map");
287
+ const perRate: Record<string, ClapCostAtRate> = {};
288
+ for (const [rate, at] of Object.entries(perRateIn)) {
289
+ if (!/^[1-9]\d*$/.test(rate)) return bad(`cost rate ${rate}`);
290
+ perRate[rate] = readCostAtRate(at, `cost at ${rate}`, stimulus === "notes-held");
291
+ }
292
+ return {
293
+ stimulus,
294
+ blockFrames: count(v, "blockFrames", "cost"),
295
+ warmupBlocks: count(v, "warmupBlocks", "cost"),
296
+ percentile: figure(v, "percentile", "cost"),
297
+ perRate,
298
+ };
299
+ }
300
+
301
+ /**
302
+ * The cost arm's figures as the classifier's cost gate reads them, per rate: the median and the P95
303
+ * per sample, and the P95 as a fraction of one core at that rate. A rate the arm did not time is absent.
304
+ */
305
+ export function clapCostPerRate(
306
+ cost: ClapCostReading | undefined,
307
+ ): Record<string, { coreFractionP95: number; nsPerSampleMedian: number; nsPerSampleP95: number; voices?: VoicesHeld }> {
308
+ const out: Record<string, { coreFractionP95: number; nsPerSampleMedian: number; nsPerSampleP95: number; voices?: VoicesHeld }> = {};
309
+ for (const [rate, at] of Object.entries(cost?.perRate ?? {})) {
310
+ if (!isClapCostFigure(at)) continue;
311
+ const fraction = coreFraction(at.nsPerSampleP95, Number(rate));
312
+ if (fraction === undefined) continue;
313
+ out[rate] = {
314
+ coreFractionP95: fraction,
315
+ nsPerSampleMedian: at.nsPerSampleMedian,
316
+ nsPerSampleP95: at.nsPerSampleP95,
317
+ ...(at.voices === undefined ? {} : { voices: at.voices }),
318
+ };
319
+ }
320
+ return out;
321
+ }
322
+
323
+ /**
324
+ * A prober line as the plugin the full classifier (`classifyPluginHosting`) reads: the CLAP facts, the
325
+ * interposer's counts with the note sweep beside them, and the cost arm's figures per rate. The prober
326
+ * measures no stability (that is the soak's), so the caller passes what it has; without it the verdict
327
+ * is `unknown` on stability, never a pass.
328
+ */
329
+ export function qualifiedPluginOfClapLine(line: ClapQualifyLine, stability?: PluginStabilityMeasurement): QualifiedPlugin {
330
+ const { events: _events, ...rtSafety } = line.rtSafety;
331
+ const { events: _noteEvents, ...noteSweep } = line.noteSweep;
332
+ const { nonFinite: _nonFinite, ...clap } = line.clap;
333
+ return {
334
+ format: "clap",
335
+ audioInputs: line.clap.mainInputChannels,
336
+ audioOutputs: line.clap.mainOutputChannels,
337
+ hasMidiIn: line.clap.noteInputs > 0,
338
+ clap,
339
+ rtSafety: { ...rtSafety, noteSweep },
340
+ cpuCost: { perRate: clapCostPerRate(line.cost) },
341
+ ...(stability === undefined ? {} : { stability }),
342
+ };
343
+ }
344
+
178
345
  /** One line of the prober's stdout, or a {@link ClapQualifyError} saying how it differs. */
179
346
  export function parseClapQualifyLine(text: string): ClapQualifyLine {
180
347
  let v: unknown;
@@ -200,6 +367,7 @@ export function parseClapQualifyLine(text: string): ClapQualifyLine {
200
367
  clap: readClap(v["clap"]),
201
368
  rtSafety: readRtSafety(v["rtSafety"]),
202
369
  noteSweep: readNoteSweep(v["noteSweep"]),
370
+ ...(v["cost"] === undefined ? {} : { cost: readCost(v["cost"]) }),
203
371
  integrity: readIntegrity(v["integrity"]) ?? bad("no integrity"),
204
372
  };
205
373
  }
@@ -215,9 +383,11 @@ export function parseClapQualifyOutput(stdout: string): ClapQualifyLine[] {
215
383
  * The document's schema name; a reader refuses any other it does not know. `/2` is `/1` with
216
384
  * `measured.noteSweep` added and the note sweep's reasons folded into `verdict` (a plugin with no
217
385
  * note input gets none, so its `/2` verdict is its `/1` verdict); every `/1` field is unchanged, so
218
- * a `/1` reader of `verdict.rating` and `verdict.rtSafe` reads a `/2` document right.
386
+ * a `/1` reader of `verdict.rating` and `verdict.rtSafe` reads a `/2` document right. `/3` is `/2`
387
+ * with `measured.cost` added (the cost arm, an instrument's with the notes it held), which no
388
+ * verdict reads.
219
389
  */
220
- export const RT_SAFETY_DOCUMENT_SCHEMA = "plugin-qualify.rt-safety/2";
390
+ export const RT_SAFETY_DOCUMENT_SCHEMA = "plugin-qualify.rt-safety/3";
221
391
 
222
392
  /**
223
393
  * The RT-safety verdict of one plugin binary for one console: keyed by the binary's SHA-256 and
@@ -246,6 +416,7 @@ export interface RtSafetyDocument {
246
416
  readonly clap: ClapProbedFacts;
247
417
  readonly rtSafety: ClapRtSafetyReading;
248
418
  readonly noteSweep: ClapNoteSweepReading;
419
+ readonly cost?: ClapCostReading;
249
420
  readonly integrity: IntegrityMeasurement;
250
421
  };
251
422
  }
@@ -288,6 +459,7 @@ export function rtSafetyDocument(line: ClapQualifyLine, profile: HostProfile = O
288
459
  clap: line.clap,
289
460
  rtSafety: line.rtSafety,
290
461
  noteSweep: line.noteSweep,
462
+ ...(line.cost === undefined ? {} : { cost: line.cost }),
291
463
  integrity: line.integrity,
292
464
  },
293
465
  };
@@ -320,8 +320,14 @@ import { costFieldsMissing, costPointKey } from "./cost-fields.js";
320
320
  export interface ClapLatencyAtRate {
321
321
  /** `latency.get()` after `activate` at this rate; a plugin without the ext declares 0. */
322
322
  readonly declaredFrames: number;
323
- /** Where the qualifier's impulse landed through `process()`, in frames. */
323
+ /** Where the qualifier's impulse landed through `process()`, in frames; for an instrument, where a note's
324
+ * sound began. */
324
325
  readonly measuredFrames: number;
326
+ /** `note`: a plugin with no main audio input, measured from a note struck at frame 0 (the onset of its
327
+ * sound, which an attack envelope may put later than its latency). Absent: from an impulse. */
328
+ readonly from?: "note";
329
+ /** `false`: the note was struck and nothing was heard, so there is no onset to read. */
330
+ readonly heard?: boolean;
325
331
  }
326
332
 
327
333
  /**
@@ -847,7 +853,10 @@ export function clapTopologyReasons(clap: PluginClapMeasurement | undefined, ins
847
853
  /**
848
854
  * The CLAP arm of `latency` (CLAP spec §3): declared = measured at EVERY declared rate earns;
849
855
  * one rate that lies refuses (`unsuitable` — compensation reads the figure as truth); no rate
850
- * measured is `unknown`.
856
+ * measured is `unknown`. An instrument has no input to put an impulse in, so its figure is the onset
857
+ * of a note struck at frame 0: an onset before the declared latency is the same lie, one at or after
858
+ * it is resolved (an attack envelope sounds later than the plugin's delay, and that is no latency),
859
+ * and a note that was never heard is unmeasured.
851
860
  */
852
861
  export function clapLatencyReasons(clap: PluginClapMeasurement | undefined): readonly HostingReason[] {
853
862
  const rates = clap ? Object.keys(clap.latency) : [];
@@ -856,7 +865,11 @@ export function clapLatencyReasons(clap: PluginClapMeasurement | undefined): rea
856
865
  }
857
866
  for (const rate of rates) {
858
867
  const at = clap.latency[rate]!;
859
- if (at.declaredFrames !== at.measuredFrames) {
868
+ if (at.from === "note" && at.heard === false) {
869
+ return [reason("latency", "objective", "unknown", HOSTING_CODE.latencyUnmeasured, { rate: Number(rate) })];
870
+ }
871
+ const lies = at.from === "note" ? at.measuredFrames < at.declaredFrames : at.declaredFrames !== at.measuredFrames;
872
+ if (lies) {
860
873
  return [
861
874
  reason("latency", "objective", "unsuitable", HOSTING_CODE.clapLatencyMismatch, {
862
875
  rate: Number(rate), declared: at.declaredFrames, measured: at.measuredFrames,
@@ -978,12 +991,15 @@ export function classifyPluginHosting(
978
991
  // report could agree with itself while every served descriptor read unknown.
979
992
  // The CLAP arm: the SAME six dimensions, fed from the
980
993
  // qualifier's CLAP facts where the LV2 scan's facts do not exist for the format. Stability,
981
- // the interposer's counts and the cost are format-blind and read unchanged.
994
+ // the interposer's counts and the cost are format-blind and read unchanged. A host that plays
995
+ // notes (an instrument host) also reads the note sweep: an instrument is clean at rest, so the
996
+ // parameter sweep alone says nothing about what a voice does.
982
997
  const reasons: HostingReason[] = descriptor.format === "clap"
983
998
  ? [
984
999
  ...stabilityReasons(descriptor.stability, policy, options.pluginBinary, sharesProcess, options.rate),
985
1000
  ...rtSafetyReasons(descriptor.rtSafety),
986
1001
  ...clapRtReasons(descriptor.clap),
1002
+ ...(profile.instruments ? noteSweepReasons(descriptor.rtSafety?.noteSweep, descriptor.clap?.noteInputs ?? (descriptor.hasMidiIn ? 1 : 0)) : []),
987
1003
  ...clapFeatureReasons(descriptor.clap, profile, descriptor.hasMidiIn),
988
1004
  ...hostingCostReasons(descriptor, options, policy),
989
1005
  ...clapLatencyReasons(descriptor.clap),
@@ -992,6 +1008,7 @@ export function classifyPluginHosting(
992
1008
  : [
993
1009
  ...stabilityReasons(descriptor.stability, policy, options.pluginBinary, sharesProcess, options.rate),
994
1010
  ...rtSafetyReasons(descriptor.rtSafety),
1011
+ ...(profile.instruments ? noteSweepReasons(descriptor.rtSafety?.noteSweep, descriptor.hasMidiIn ? 1 : 0) : []),
995
1012
  ...featureReasons(descriptor.lv2Features, descriptor, profile.lv2Features, options.quantum !== undefined, profile.instruments),
996
1013
  ...hostingCostReasons(descriptor, options, policy),
997
1014
  ...hostingLatencyReasons(descriptor, profile.latency),