@helix3/helix-cli 0.1.22-helix3.413 → 0.1.22-helix3.415

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 (35) hide show
  1. package/README.md +1 -1
  2. package/dist/index.js +8 -4
  3. package/dist/index.js.map +1 -1
  4. package/dist/tsconfig.build.tsbuildinfo +1 -1
  5. package/dist/vehicle/audio.d.ts +52 -2
  6. package/dist/vehicle/audio.js +177 -9
  7. package/dist/vehicle/audio.js.map +1 -1
  8. package/dist/vehicle/audioDefects.d.ts +40 -0
  9. package/dist/vehicle/audioDefects.js +62 -0
  10. package/dist/vehicle/audioDefects.js.map +1 -1
  11. package/dist/vehicle/audioDistinct.d.ts +62 -0
  12. package/dist/vehicle/audioDistinct.js +479 -0
  13. package/dist/vehicle/audioDistinct.js.map +1 -0
  14. package/dist/vehicle/audioReference.d.ts +36 -0
  15. package/dist/vehicle/audioReference.js +176 -0
  16. package/dist/vehicle/audioReference.js.map +1 -0
  17. package/dist/vehicle/drive.js +4 -2
  18. package/dist/vehicle/drive.js.map +1 -1
  19. package/dist/vehicle/enginePolicy.d.ts +68 -0
  20. package/dist/vehicle/enginePolicy.js +209 -0
  21. package/dist/vehicle/enginePolicy.js.map +1 -0
  22. package/dist/vehicle/simulate.d.ts +10 -1
  23. package/dist/vehicle/simulate.js +7 -1
  24. package/dist/vehicle/simulate.js.map +1 -1
  25. package/dist/vehicle/validate.js +8 -1
  26. package/dist/vehicle/validate.js.map +1 -1
  27. package/docs/vehicle-simulate.md +16 -0
  28. package/package.json +1 -1
  29. package/plugins/beamng-vehicle/bin/__pycache__/beamng_abs.cpython-312.pyc +0 -0
  30. package/plugins/beamng-vehicle/bin/__pycache__/beamng_audio.cpython-312.pyc +0 -0
  31. package/plugins/beamng-vehicle/bin/__pycache__/beamng_engine.cpython-312.pyc +0 -0
  32. package/plugins/beamng-vehicle/bin/__pycache__/beamng_expression.cpython-312.pyc +0 -0
  33. package/plugins/beamng-vehicle/bin/__pycache__/beamng_jbeam.cpython-312.pyc +0 -0
  34. package/plugins/beamng-vehicle/bin/__pycache__/beamng_materials.cpython-312.pyc +0 -0
  35. package/plugins/beamng-vehicle/bin/__pycache__/test_beamng_engine.cpython-312.pyc +0 -0
@@ -1,3 +1,4 @@
1
+ import { type ReferenceComparison } from './audioReference';
1
2
  type Json = Record<string, unknown>;
2
3
  export type AudioIssueLevel = 'error' | 'warn';
3
4
  export interface AudioIssue {
@@ -68,6 +69,53 @@ export interface LadderRef {
68
69
  export declare function collectLadders(pkg: unknown): LadderRef[];
69
70
  /** Ladder-level content defects: a copied rung, a fixed formant stack, a fixed tone. Needs each rung's decoded bytes. */
70
71
  export declare function judgeLadders(pkg: unknown, bytesByName: ReadonlyMap<string, Uint8Array>): AudioIssue[];
72
+ /** The rev limiter slot is re-fired every 60 ms by the runtime, so it has to be a short crack: a long clip stacks into a held tone. */
73
+ export declare function judgeRevLimiterRow(path: string, label: string, bytes: Uint8Array): AudioIssue[];
74
+ export interface ClipRef {
75
+ /** `bank` rung or `slot` one-shot. */
76
+ use: 'bank' | 'slot';
77
+ path: string;
78
+ /** Slot name, or the ladder path for a rung. */
79
+ role: string;
80
+ /** The asset name. */
81
+ name: string;
82
+ rpm?: number;
83
+ /** Human label for messages. */
84
+ label: string;
85
+ bytes: Uint8Array;
86
+ }
87
+ /**
88
+ * Near-duplicate SLOTS across roles: one take, one random seed or one resampled recording used under two names that are
89
+ * meant to sound different (shift up vs shift down, horn vs an engine rung, an engine rung vs an exhaust rung, a door
90
+ * open vs close). Same-ladder clusters are an error once they take half the ladder (or three rungs), a warning below.
91
+ */
92
+ export declare function judgeNearDuplicates(clips: readonly ClipRef[]): AudioIssue[];
93
+ /** Every (ladder, rung) pair that has decoded bytes, as clips with the ladder as their role. */
94
+ export declare function rungClips(pkg: unknown, rungBytes: ReadonlyMap<string, Uint8Array>): ClipRef[];
95
+ export interface AudioCheckOptions {
96
+ /** Real-car reference clips to compare the idle voice (and named slots) with. */
97
+ reference?: ReferenceClips;
98
+ }
99
+ /** What a reference clip is compared with in the candidate. */
100
+ export interface ReferenceClips {
101
+ /** Slot name -> reference clips for it. `idle` is the engine at idle: the idle slot's sample, else the lowest engine-ladder rung. */
102
+ bySlot: ReadonlyMap<string, Array<{
103
+ source: string;
104
+ samples: Float64Array;
105
+ sampleRate: number;
106
+ }>>;
107
+ }
108
+ export interface ReferenceReportRow {
109
+ slot: string;
110
+ candidate: string;
111
+ references: string[];
112
+ comparisons: ReferenceComparison[];
113
+ }
114
+ /** Compare the candidate's idle voice (and any named slot) with real-car reference clips. */
115
+ export declare function judgeAgainstReference(pkg: unknown, clips: readonly ClipRef[], reference: ReferenceClips): {
116
+ issues: AudioIssue[];
117
+ rows: ReferenceReportRow[];
118
+ };
71
119
  /** The engine numbers a ladder rung's pitch is judged against, read from the package's `audio` block. */
72
120
  export interface AudioPitchMeta {
73
121
  cylinderCount: number;
@@ -142,6 +190,8 @@ export interface AudioCheckReport {
142
190
  fallbackEngine: boolean;
143
191
  rows: AudioCheckRowReport[];
144
192
  issues: AudioIssue[];
193
+ /** Timbre measured against the supplied real-car reference clips (only when `--reference` was given). */
194
+ reference?: ReferenceReportRow[];
145
195
  }
146
196
  export type FetchLike = (url: string) => Promise<{
147
197
  status: number;
@@ -153,11 +203,11 @@ export declare const defaultFetch: FetchLike;
153
203
  * URL; local files are decoded and measured, and URLs are fetched. Exact object pins and public URLs are required
154
204
  * before sealing, so these fields are optional only during local preflight.
155
205
  */
156
- export declare function checkAudioLocal(pkg: unknown, dir: string, fetchImpl?: FetchLike, closure?: ReadonlySet<string>): Promise<AudioCheckReport>;
206
+ export declare function checkAudioLocal(pkg: unknown, dir: string, fetchImpl?: FetchLike, closure?: ReadonlySet<string>, options?: AudioCheckOptions): Promise<AudioCheckReport>;
157
207
  /**
158
208
  * READ-BACK: the package as the runtime receives it. Every selected row must pass the adapter's shape test AND
159
209
  * fetch 200 with the declared size and digest AND decode to an audible WAV. Identical urls are fetched once.
160
210
  */
161
- export declare function checkAudioReadBack(pkg: unknown, fetchImpl?: FetchLike, closure?: ReadonlySet<string>): Promise<AudioCheckReport>;
211
+ export declare function checkAudioReadBack(pkg: unknown, fetchImpl?: FetchLike, closure?: ReadonlySet<string>, options?: AudioCheckOptions): Promise<AudioCheckReport>;
162
212
  export declare function formatAudioReport(report: AudioCheckReport): string;
163
213
  export {};
@@ -8,6 +8,10 @@ exports.judgeClipDc = judgeClipDc;
8
8
  exports.judgeHornRow = judgeHornRow;
9
9
  exports.collectLadders = collectLadders;
10
10
  exports.judgeLadders = judgeLadders;
11
+ exports.judgeRevLimiterRow = judgeRevLimiterRow;
12
+ exports.judgeNearDuplicates = judgeNearDuplicates;
13
+ exports.rungClips = rungClips;
14
+ exports.judgeAgainstReference = judgeAgainstReference;
11
15
  exports.audioPitchMeta = audioPitchMeta;
12
16
  exports.judgeRungPitch = judgeRungPitch;
13
17
  exports.collectAudioRows = collectAudioRows;
@@ -42,6 +46,8 @@ const node_crypto_1 = require("node:crypto");
42
46
  const node_fs_1 = require("node:fs");
43
47
  const node_path_1 = require("node:path");
44
48
  const audioDefects_1 = require("./audioDefects");
49
+ const audioDistinct_1 = require("./audioDistinct");
50
+ const audioReference_1 = require("./audioReference");
45
51
  const audioSpectral_1 = require("./audioSpectral");
46
52
  const isRecord = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
47
53
  /** Below this peak a sample is treated as silent. −60 dBFS is ~0.1 % of full scale. */
@@ -315,6 +321,145 @@ function judgeLadders(pkg, bytesByName) {
315
321
  }
316
322
  return issues;
317
323
  }
324
+ /** The rev limiter slot is re-fired every 60 ms by the runtime, so it has to be a short crack: a long clip stacks into a held tone. */
325
+ function judgeRevLimiterRow(path, label, bytes) {
326
+ try {
327
+ const { samples, sampleRate } = (0, audioSpectral_1.decodeWavMono)(bytes, true);
328
+ let peak = 0;
329
+ for (let i = 0; i < samples.length; i += 1)
330
+ peak = Math.max(peak, Math.abs(samples[i]));
331
+ if (peak < 1e-3)
332
+ return [];
333
+ const v = (0, audioDefects_1.judgeRevLimiter)(samples, sampleRate);
334
+ if (v.level === 'ok')
335
+ return [];
336
+ const cut = v.cutHz > 0 && v.cutDepthDb >= 6 ? ` (it carries its own ${v.cutHz.toFixed(1)} Hz cut ${v.cutDepthDb.toFixed(0)} dB deep, which the overlap smears away)` : '';
337
+ return [{ code: 'AUDIO_REV_LIMITER_HELD', level: v.level, path,
338
+ message: `${label} is ${v.durationS.toFixed(2)} s long, but the runtime fires the rev-limiter slot every ${(audioDefects_1.REV_LIMITER_INTERVAL_S * 1000).toFixed(0)} ms while the car sits on its limiter, so about ${v.stackedVoices.toFixed(0)} copies play at once: that is a held tone, not a fuel-cut stutter${cut}`,
339
+ fix: 'author the limiter as one short crack (a fuel-cut burst of 0.05-0.2 s with a quick decay): the stutter is the 60 ms retrigger, not something to bake into a long clip' }];
340
+ }
341
+ catch {
342
+ return [];
343
+ }
344
+ }
345
+ /**
346
+ * Near-duplicate SLOTS across roles: one take, one random seed or one resampled recording used under two names that are
347
+ * meant to sound different (shift up vs shift down, horn vs an engine rung, an engine rung vs an exhaust rung, a door
348
+ * open vs close). Same-ladder clusters are an error once they take half the ladder (or three rungs), a warning below.
349
+ */
350
+ function judgeNearDuplicates(clips) {
351
+ const distinct = [];
352
+ const byId = new Map();
353
+ for (const c of clips) {
354
+ try {
355
+ const { samples, sampleRate } = (0, audioSpectral_1.decodeWavMono)(c.bytes, true);
356
+ let peak = 0;
357
+ for (let i = 0; i < samples.length; i += 1)
358
+ peak = Math.max(peak, Math.abs(samples[i]));
359
+ if (peak < 1e-3)
360
+ continue;
361
+ const id = `${c.use === 'bank' ? `rung ${c.name}@${c.rpm} rpm` : `slot ${c.role} "${c.name}"`} [${c.role}]`;
362
+ byId.set(id, c);
363
+ distinct.push({ id, samples, sampleRate, role: c.role, rpm: c.rpm });
364
+ }
365
+ catch {
366
+ // named by measureWav
367
+ }
368
+ }
369
+ if (distinct.length < 2)
370
+ return [];
371
+ const { clusters } = (0, audioDistinct_1.findNearDuplicates)(distinct);
372
+ const issues = [];
373
+ const ladderSize = new Map();
374
+ for (const d of distinct)
375
+ if (d.rpm !== undefined)
376
+ ladderSize.set(d.role, (ladderSize.get(d.role) ?? 0) + 1);
377
+ for (const cl of clusters) {
378
+ const refs = cl.ids.map((id) => byId.get(id));
379
+ const names = refs.map((r) => (r.use === 'bank' ? `${r.name} (${r.rpm} rpm)` : `slot ${r.role}`));
380
+ const roles = [...new Set(refs.map((r) => (r.use === 'bank' ? `ladder ${r.role}` : `slot ${r.role}`)))];
381
+ const top = cl.pairs.reduce((m, p) => (p.envNcc > m.envNcc ? p : m), cl.pairs[0] ?? { envNcc: 0, ratio: 1, lineNcc: 0 });
382
+ const best = top.envNcc;
383
+ const evidence = cl.exact
384
+ ? 'the samples are identical'
385
+ : `band-envelope correlation ${best.toFixed(2)} after undoing a ${top.ratio.toFixed(3)} playback ratio (line-pattern correlation ${top.lineNcc.toFixed(2)}); independent recordings measure <= 0.66, a resampled copy 0.93-1.0`;
386
+ const first = refs[0];
387
+ const proof = cl.confirmed ? '' : ' (the match is below copy strength and the line pattern does not corroborate it, so this is a suspicion: check by ear and by spectrogram)';
388
+ if (cl.crossRole || cl.exact) {
389
+ issues.push({ code: cl.confirmed ? 'AUDIO_NEAR_DUPLICATE_SOUNDS' : 'AUDIO_POSSIBLE_DUPLICATE_SOUNDS', level: cl.confirmed ? 'error' : 'warn', path: first.path,
390
+ message: `${names.join(', ')} are one recording (or one synthesised take) under different roles (${roles.join('; ')}): ${evidence}${proof}`,
391
+ fix: 'give every role its own sound: capture or synthesise each independently (own noise, own timing, own resonances); a shift-down is not the shift-up retimed, a horn is not an engine rung, an exhaust ladder is not the engine ladder resampled' });
392
+ continue;
393
+ }
394
+ const total = ladderSize.get(first.role) ?? cl.ids.length;
395
+ const heavy = cl.confirmed && (cl.ids.length >= 3 || cl.ids.length >= total / 2);
396
+ issues.push({ code: 'AUDIO_NEAR_DUPLICATE_RUNGS', level: heavy ? 'error' : 'warn', path: first.path,
397
+ message: `${cl.ids.length} rungs of ladder ${first.role} (${names.join(', ')}) are one recording resampled to different pitches: ${evidence}${proof}`,
398
+ fix: 'capture or synthesise every rung independently (own noise, own cycle-to-cycle variation); the runtime already pitch-shifts between rungs' });
399
+ }
400
+ return issues;
401
+ }
402
+ /** Every (ladder, rung) pair that has decoded bytes, as clips with the ladder as their role. */
403
+ function rungClips(pkg, rungBytes) {
404
+ const out = [];
405
+ for (const ladder of collectLadders(pkg)) {
406
+ for (const r of ladder.rungs) {
407
+ const bytes = rungBytes.get(r.name);
408
+ if (bytes)
409
+ out.push({ use: 'bank', path: ladder.path, role: ladder.path, name: r.name, rpm: r.rpm, label: `${r.name} (${r.rpm} rpm)`, bytes });
410
+ }
411
+ }
412
+ return out;
413
+ }
414
+ /** Compare the candidate's idle voice (and any named slot) with real-car reference clips. */
415
+ function judgeAgainstReference(pkg, clips, reference) {
416
+ const issues = [];
417
+ const rows = [];
418
+ const bySlot = (slot) => clips.find((c) => c.use === 'slot' && c.role === slot);
419
+ const lowestRung = () => {
420
+ const ladders = collectLadders(pkg);
421
+ for (const ladder of ladders) {
422
+ const rung = [...ladder.rungs].sort((a, b) => a.rpm - b.rpm)[0];
423
+ const hit = rung && clips.find((c) => c.use === 'bank' && c.name === rung.name);
424
+ if (hit)
425
+ return hit;
426
+ }
427
+ return undefined;
428
+ };
429
+ for (const [slot, refs] of reference.bySlot) {
430
+ const target = slot === 'idle' ? (bySlot('idle') ?? lowestRung()) : bySlot(slot);
431
+ if (!target) {
432
+ issues.push({ code: 'AUDIO_REFERENCE_SLOT_MISSING', level: 'warn', path: `audio.slots[${slot}]`,
433
+ message: `a reference clip was supplied for "${slot}" but the package ships no ${slot === 'idle' ? 'idle sample or engine-ladder rung' : `consumed ${slot} sample`} to compare it with`,
434
+ fix: slot === 'idle' ? 'ship the engine ladder, or drop the reference' : `ship a ${slot} sample, or drop the reference` });
435
+ continue;
436
+ }
437
+ let cand;
438
+ try {
439
+ const d = (0, audioSpectral_1.decodeWavMono)(target.bytes, true);
440
+ cand = (0, audioReference_1.timbreMetrics)(d.samples, d.sampleRate);
441
+ }
442
+ catch {
443
+ continue;
444
+ }
445
+ const refMetrics = refs.map((r) => (0, audioReference_1.timbreMetrics)(r.samples, r.sampleRate));
446
+ const comparisons = (0, audioReference_1.compareToReference)(cand, refMetrics);
447
+ rows.push({ slot, candidate: target.label, references: refs.map((r) => r.source), comparisons });
448
+ const spread = refMetrics.length > 1 ? ` (${refMetrics.length} reference clips, median)` : '';
449
+ for (const c of comparisons) {
450
+ if (c.level === 'ok')
451
+ continue;
452
+ const unit = c.metric === 'roughness' ? '' : ' Hz';
453
+ const dir = c.ratio > 1 ? 'higher' : 'lower';
454
+ issues.push({ code: 'AUDIO_REFERENCE_TIMBRE', level: c.level, path: target.path,
455
+ message: `${slot === 'idle' ? 'idle voice' : `slot ${slot}`} (${target.label}): ${c.label} ${c.candidate.toFixed(c.metric === 'roughness' ? 2 : 0)}${unit} against ${c.reference.toFixed(c.metric === 'roughness' ? 2 : 0)}${unit} in the reference${spread}: x${c.ratio.toFixed(2)}, ${dir} than the real sound by more than a recording alone explains`,
456
+ fix: c.metric === 'roughness'
457
+ ? (c.ratio > 1 ? 'the firing pulses are exaggerated (a chug or tremolo): soften the amplitude modulation of the synthesis' : 'the voice is smoothed over: a real engine has cycle-to-cycle firing irregularity, so resynthesise from the reference\'s own spectrum and cycle variation')
458
+ : (c.ratio > 1 ? 'the voice is much brighter than the real car: roll off the top, and check the rung is not a near-white noise bed' : 'the voice is much duller than the real car: it lacks the intake/exhaust and mechanical content above the firing harmonics; resynthesise from the reference\'s measured spectrum') });
459
+ }
460
+ }
461
+ return { issues, rows };
462
+ }
318
463
  function audioPitchMeta(pkg) {
319
464
  const audio = isRecord(pkg) && isRecord(pkg.audio) ? pkg.audio : {};
320
465
  const cylinderCount = typeof audio.sampleCylinderCount === 'number' && Number.isFinite(audio.sampleCylinderCount) && audio.sampleCylinderCount > 0 ? audio.sampleCylinderCount : 4;
@@ -595,7 +740,7 @@ const defaultFetch = async (url) => {
595
740
  return { status: response.status, bytes: response.ok ? new Uint8Array(await response.arrayBuffer()) : new Uint8Array() };
596
741
  };
597
742
  exports.defaultFetch = defaultFetch;
598
- function finish(mode, pkg, rows, issues) {
743
+ function finish(mode, pkg, rows, issues, reference) {
599
744
  const audio = isRecord(pkg) && isRecord(pkg.audio) ? pkg.audio : undefined;
600
745
  const fallbackEngine = !audio || !isRecord(audio.bank);
601
746
  if (fallbackEngine) {
@@ -604,20 +749,21 @@ function finish(mode, pkg, rows, issues) {
604
749
  fix: 'ship a recorded rpm ladder of this engine (or its family) in audio.bank if one exists; otherwise say so in the engineLadder slot reason' });
605
750
  }
606
751
  const errors = issues.filter((i) => i.level === 'error').length;
607
- return { ok: errors === 0, mode, errors, warnings: issues.length - errors, fallbackEngine, rows, issues };
752
+ return { ok: errors === 0, mode, errors, warnings: issues.length - errors, fallbackEngine, rows, issues, ...(reference ? { reference } : {}) };
608
753
  }
609
754
  /**
610
755
  * PRE-SEAL: every row that will be loaded must resolve to either a local WAV beside the Package or an already-public
611
756
  * URL; local files are decoded and measured, and URLs are fetched. Exact object pins and public URLs are required
612
757
  * before sealing, so these fields are optional only during local preflight.
613
758
  */
614
- async function checkAudioLocal(pkg, dir, fetchImpl = exports.defaultFetch, closure) {
759
+ async function checkAudioLocal(pkg, dir, fetchImpl = exports.defaultFetch, closure, options = {}) {
615
760
  const { rows, issues } = collectAudioRows(pkg);
616
761
  if (closure)
617
762
  issues.push(...closureMembershipIssues(rows, closure));
618
763
  const meta = audioPitchMeta(pkg);
619
764
  const reports = [];
620
765
  const rungBytes = new Map();
766
+ const slotClips = [];
621
767
  for (const r of rows) {
622
768
  const name = String(r.row.name);
623
769
  const label = `${r.use === 'bank' ? 'bank sample' : `slot ${r.slot}`} "${name}"`;
@@ -631,6 +777,10 @@ async function checkAudioLocal(pkg, dir, fetchImpl = exports.defaultFetch, closu
631
777
  issues.push(...judgeClipDc(r.path, label, bytes, r.use));
632
778
  if (r.slot === 'horn')
633
779
  issues.push(...judgeHornRow(r.path, label, bytes));
780
+ if (r.slot === 'revLimiter')
781
+ issues.push(...judgeRevLimiterRow(r.path, label, bytes));
782
+ if (r.use === 'slot' && r.slot)
783
+ slotClips.push({ use: 'slot', path: r.path, role: r.slot, name, label, bytes });
634
784
  if (r.use === 'bank') {
635
785
  rungBytes.set(name, bytes);
636
786
  issues.push(...judgeRungSpectral(r.path, label, bytes));
@@ -646,7 +796,7 @@ async function checkAudioLocal(pkg, dir, fetchImpl = exports.defaultFetch, closu
646
796
  continue;
647
797
  }
648
798
  if (typeof r.row.url === 'string' && r.row.url) {
649
- reports.push(await checkRemoteRow(r, label, fetchImpl, issues, meta, rungBytes));
799
+ reports.push(await checkRemoteRow(r, label, fetchImpl, issues, meta, rungBytes, slotClips));
650
800
  continue;
651
801
  }
652
802
  issues.push({ code: 'AUDIO_SOURCE_MISSING', level: 'error', path: r.path,
@@ -654,9 +804,14 @@ async function checkAudioLocal(pkg, dir, fetchImpl = exports.defaultFetch, closu
654
804
  fix: `put ${typeof r.row.file === 'string' ? String(r.row.file) : `${name}.wav`} in the package dir (or audio/), or give the row the public url of a platform sample` });
655
805
  }
656
806
  issues.push(...judgeLadders(pkg, rungBytes));
657
- return finish('local', pkg, reports, issues);
807
+ const clips = [...slotClips, ...rungClips(pkg, rungBytes)];
808
+ issues.push(...judgeNearDuplicates(clips));
809
+ const ref = options.reference ? judgeAgainstReference(pkg, clips, options.reference) : undefined;
810
+ if (ref)
811
+ issues.push(...ref.issues);
812
+ return finish('local', pkg, reports, issues, ref?.rows);
658
813
  }
659
- async function checkRemoteRow(r, label, fetchImpl, issues, meta, rungBytes) {
814
+ async function checkRemoteRow(r, label, fetchImpl, issues, meta, rungBytes, slotClips) {
660
815
  const url = String(r.row.url);
661
816
  const report = { path: r.path, use: r.use, slot: r.slot, name: String(r.row.name), source: 'url', url };
662
817
  let fetched;
@@ -692,6 +847,10 @@ async function checkRemoteRow(r, label, fetchImpl, issues, meta, rungBytes) {
692
847
  issues.push(...judgeClipDc(r.path, label, fetched.bytes, r.use));
693
848
  if (r.slot === 'horn')
694
849
  issues.push(...judgeHornRow(r.path, label, fetched.bytes));
850
+ if (r.slot === 'revLimiter')
851
+ issues.push(...judgeRevLimiterRow(r.path, label, fetched.bytes));
852
+ if (r.use === 'slot' && r.slot)
853
+ slotClips?.push({ use: 'slot', path: r.path, role: r.slot, name: String(r.row.name), label, bytes: fetched.bytes });
695
854
  if (r.use === 'bank') {
696
855
  rungBytes?.set(String(r.row.name), fetched.bytes);
697
856
  issues.push(...judgeRungSpectral(r.path, label, fetched.bytes));
@@ -709,13 +868,14 @@ async function checkRemoteRow(r, label, fetchImpl, issues, meta, rungBytes) {
709
868
  * READ-BACK: the package as the runtime receives it. Every selected row must pass the adapter's shape test AND
710
869
  * fetch 200 with the declared size and digest AND decode to an audible WAV. Identical urls are fetched once.
711
870
  */
712
- async function checkAudioReadBack(pkg, fetchImpl = exports.defaultFetch, closure) {
871
+ async function checkAudioReadBack(pkg, fetchImpl = exports.defaultFetch, closure, options = {}) {
713
872
  const { rows, issues } = collectAudioRows(pkg);
714
873
  if (closure)
715
874
  issues.push(...closureMembershipIssues(rows, closure));
716
875
  const meta = audioPitchMeta(pkg);
717
876
  const reports = [];
718
877
  const rungBytes = new Map();
878
+ const slotClips = [];
719
879
  const cache = new Map();
720
880
  const cached = (url) => {
721
881
  let hit = cache.get(url);
@@ -733,10 +893,15 @@ async function checkAudioReadBack(pkg, fetchImpl = exports.defaultFetch, closure
733
893
  reports.push({ path: r.path, use: r.use, slot: r.slot, name: String(r.row.name), source: 'url' });
734
894
  continue;
735
895
  }
736
- reports.push(await checkRemoteRow(r, label, cached, issues, meta, rungBytes));
896
+ reports.push(await checkRemoteRow(r, label, cached, issues, meta, rungBytes, slotClips));
737
897
  }
738
898
  issues.push(...judgeLadders(pkg, rungBytes));
739
- return finish('read-back', pkg, reports, issues);
899
+ const clips = [...slotClips, ...rungClips(pkg, rungBytes)];
900
+ issues.push(...judgeNearDuplicates(clips));
901
+ const ref = options.reference ? judgeAgainstReference(pkg, clips, options.reference) : undefined;
902
+ if (ref)
903
+ issues.push(...ref.issues);
904
+ return finish('read-back', pkg, reports, issues, ref?.rows);
740
905
  }
741
906
  function formatAudioReport(report) {
742
907
  const lines = [];
@@ -746,6 +911,9 @@ function formatAudioReport(report) {
746
911
  const level = m ? `${m.durationS.toFixed(2)} s ${m.sampleRate} Hz ${m.channels}ch peak ${m.peakDbfs} dBFS rms ${m.rmsDbfs} dBFS` : row.httpStatus ? `HTTP ${row.httpStatus}` : 'not fetched';
747
912
  lines.push(` ${row.use === 'bank' ? 'bank' : `slot ${row.slot}`} ${row.name} ${level} ${where ?? ''}`);
748
913
  }
914
+ for (const row of report.reference ?? []) {
915
+ lines.push(` reference ${row.slot} (${row.candidate} vs ${row.references.join(', ')}): ${row.comparisons.map((c) => `${c.metric} x${c.ratio.toFixed(2)} (${c.candidate.toFixed(c.metric === 'roughness' ? 2 : 0)} vs ${c.reference.toFixed(c.metric === 'roughness' ? 2 : 0)}) ${c.level}`).join(', ')}`);
916
+ }
749
917
  for (const issue of report.issues) {
750
918
  lines.push(`${issue.level === 'error' ? '✖' : '⚠'} [${issue.code}] ${issue.path}: ${issue.message}\n fix: ${issue.fix}`);
751
919
  }
@@ -1 +1 @@
1
- {"version":3,"file":"audio.js","sourceRoot":"","sources":["../../src/vehicle/audio.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audio.js","sourceRoot":"","sources":["../../src/vehicle/audio.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,9 @@ export interface LadderRung {
21
21
  samples: Float64Array;
22
22
  sampleRate: number;
23
23
  }
24
+ /** A centred slice of at most `seconds`, so a long file costs the same as a short one. */
25
+ export declare function centre(samples: Float64Array, sr: number, seconds: number): Float64Array;
26
+ export declare function removeMean(samples: Float64Array): Float64Array;
24
27
  /**
25
28
  * The rung's spectral envelope as the dB of its own firing harmonics (k·f0, ±1.5 %), interpolated onto a log-frequency
26
29
  * grid over 300 Hz .. 6 kHz with the broad tilt removed. This is the shape the engine's resonators impose on whatever
@@ -53,6 +56,22 @@ export interface FixedTone {
53
56
  * rpm). Real recordings top out at 5 of 15 rungs (F355 exhaust, ~1,070 Hz); clusters are ±1.2 % wide.
54
57
  */
55
58
  export declare function ladderFixedTone(rungs: readonly LadderRung[]): FixedTone | null;
59
+ /** Band-limit to 60-900 Hz with the FFT, then take every M-th sample (~2 kHz). The aperiodic content lives here. */
60
+ export declare function bandLimitDecimate(samples: Float64Array, sr: number): {
61
+ x: Float64Array;
62
+ fs: number;
63
+ };
64
+ /**
65
+ * The aperiodic part of a decimated signal: a central power-of-two segment, Hann windowed, with every spectral line
66
+ * (a bin more than 3x the 100 Hz running mean power, plus two bins either side) removed. What is left is the flow
67
+ * noise and cycle-to-cycle wander that identify one particular take; a resampled copy carries the same residual,
68
+ * an independently recorded or synthesised rung carries a different one.
69
+ */
70
+ export declare function residual(x: Float64Array, fs: number): Float64Array;
71
+ /** Max normalised cross-correlation over lags with at least half of the shorter signal overlapping. */
72
+ export declare function maxNcc(a: Float64Array, b: Float64Array): number;
73
+ /** B(t) = A(rho·t): `a` sampled at `fsa`, resampled onto a `fsb` time base. */
74
+ export declare function warp(a: Float64Array, fsa: number, fsb: number, rho: number): Float64Array;
56
75
  export interface RungCopy {
57
76
  lowRpm: number;
58
77
  highRpm: number;
@@ -83,3 +102,24 @@ export interface HornVerdict {
83
102
  * periodic by nature, so the verdict is a warning, not a refusal.)
84
103
  */
85
104
  export declare function judgeHorn(samples: Float64Array, sr: number): HornVerdict;
105
+ /**
106
+ * The runtime re-fires the `revLimiter` slot every `REV_LIMITER_INTERVAL_S` (0.06 s, `VehicleAudio#updateLimiter`) for
107
+ * as long as the car sits on its limiter: the fuel-cut stutter IS that retrigger. So the sample has to be a short crack
108
+ * (a platform limiter is 0.1-0.2 s). A long sustained clip is stacked into a held tone: a 1.6 s clip puts about 27
109
+ * copies in the air at once, and whatever stutter was authored inside it is smeared away. Judged on the length the
110
+ * retrigger gives it: voices stacked = duration / interval.
111
+ */
112
+ export declare const REV_LIMITER_INTERVAL_S = 0.06;
113
+ export declare const REV_LIMITER_WARN_S = 0.2;
114
+ export declare const REV_LIMITER_ERROR_S = 0.35;
115
+ export interface LimiterVerdict {
116
+ durationS: number;
117
+ /** Copies of the sample playing at once while the car holds the limiter. */
118
+ stackedVoices: number;
119
+ /** Strongest 8-30 Hz amplitude-modulation component inside the clip itself, Hz (0 when the clip is too short to hold a cycle). */
120
+ cutHz: number;
121
+ /** Peak-to-trough depth of that cut in dB (0 when none). */
122
+ cutDepthDb: number;
123
+ level: 'ok' | 'warn' | 'error';
124
+ }
125
+ export declare function judgeRevLimiter(samples: Float64Array, sr: number): LimiterVerdict;