@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.
- package/README.md +1 -1
- package/dist/index.js +8 -4
- package/dist/index.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/vehicle/audio.d.ts +52 -2
- package/dist/vehicle/audio.js +177 -9
- package/dist/vehicle/audio.js.map +1 -1
- package/dist/vehicle/audioDefects.d.ts +40 -0
- package/dist/vehicle/audioDefects.js +62 -0
- package/dist/vehicle/audioDefects.js.map +1 -1
- package/dist/vehicle/audioDistinct.d.ts +62 -0
- package/dist/vehicle/audioDistinct.js +479 -0
- package/dist/vehicle/audioDistinct.js.map +1 -0
- package/dist/vehicle/audioReference.d.ts +36 -0
- package/dist/vehicle/audioReference.js +176 -0
- package/dist/vehicle/audioReference.js.map +1 -0
- package/dist/vehicle/drive.js +4 -2
- package/dist/vehicle/drive.js.map +1 -1
- package/dist/vehicle/enginePolicy.d.ts +68 -0
- package/dist/vehicle/enginePolicy.js +209 -0
- package/dist/vehicle/enginePolicy.js.map +1 -0
- package/dist/vehicle/simulate.d.ts +10 -1
- package/dist/vehicle/simulate.js +7 -1
- package/dist/vehicle/simulate.js.map +1 -1
- package/dist/vehicle/validate.js +8 -1
- package/dist/vehicle/validate.js.map +1 -1
- package/docs/vehicle-simulate.md +16 -0
- package/package.json +1 -1
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_abs.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_audio.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_engine.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_expression.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_jbeam.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_materials.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/test_beamng_engine.cpython-312.pyc +0 -0
package/dist/vehicle/audio.d.ts
CHANGED
|
@@ -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
|
|
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
|
|
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 {};
|
package/dist/vehicle/audio.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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;
|