@yali-engine/audio 0.0.0-stage → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/audio.d.ts +132 -0
- package/dist/audio.js +465 -0
- package/dist/audio.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/plugin.d.ts +174 -0
- package/dist/plugin.js +530 -0
- package/dist/plugin.js.map +1 -0
- package/dist/space.d.ts +52 -0
- package/dist/space.js +133 -0
- package/dist/space.js.map +1 -0
- package/package.json +24 -3
- package/README.md +0 -3
package/dist/space.js
ADDED
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
// The spatial maths of `@yali-engine/audio` (ADR-0096), apart from Web Audio so it is tested in Node.
|
|
2
|
+
/**
|
|
3
|
+
* A source's position relative to the listener, in f32 range: the listener sits at the origin of
|
|
4
|
+
* the audio graph and sources are placed relative to it, so a scene 10,000 km out sounds the same
|
|
5
|
+
* as one at the origin (Web Audio's positions are f32).
|
|
6
|
+
*/
|
|
7
|
+
export function relative(source, listener, out = [0, 0, 0]) {
|
|
8
|
+
out[0] = source[0] - listener[0];
|
|
9
|
+
out[1] = source[1] - listener[1];
|
|
10
|
+
out[2] = source[2] - listener[2];
|
|
11
|
+
return out;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* The Doppler factor (ADR-0127): how much faster a sound plays heard by a listener moving at
|
|
15
|
+
* `listenerVel` from a source moving at `sourceVel` (m/s, world), the source `offset` from the listener
|
|
16
|
+
* (source − listener): (c − v_listener·u) / (c − v_source·u), u the unit vector from the source to the
|
|
17
|
+
* listener, c the speed of sound. Each speed along u is held within ±0.9 c (a supersonic source has no
|
|
18
|
+
* finite answer), so the factor stays between 1/19 and 19.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* dopplerFactor([10, 0, 0], [0, 0, 0], [0, 0, 0], 343); // 1: nothing moves
|
|
22
|
+
* dopplerFactor([-10, 0, 0], [-20, 0, 0], [0, 0, 0], 343); // > 1: a source 10 m away coming at 20 m/s
|
|
23
|
+
*/
|
|
24
|
+
export function dopplerFactor(offset, sourceVel, listenerVel, c = 343) {
|
|
25
|
+
const d = Math.hypot(offset[0], offset[1], offset[2]);
|
|
26
|
+
if (!(d > 1e-6) || !(c > 0))
|
|
27
|
+
return 1;
|
|
28
|
+
// u: from the source to the listener.
|
|
29
|
+
const ux = -offset[0] / d;
|
|
30
|
+
const uy = -offset[1] / d;
|
|
31
|
+
const uz = -offset[2] / d;
|
|
32
|
+
const lim = 0.9 * c;
|
|
33
|
+
const vs = Math.max(-lim, Math.min(lim, sourceVel[0] * ux + sourceVel[1] * uy + sourceVel[2] * uz));
|
|
34
|
+
const vl = Math.max(-lim, Math.min(lim, listenerVel[0] * ux + listenerVel[1] * uy + listenerVel[2] * uz));
|
|
35
|
+
return (c - vl) / (c - vs);
|
|
36
|
+
}
|
|
37
|
+
/** `v` rotated by unit quaternion `q` (x, y, z, w). */
|
|
38
|
+
export function rotate(q, v) {
|
|
39
|
+
const x = q[0];
|
|
40
|
+
const y = q[1];
|
|
41
|
+
const z = q[2];
|
|
42
|
+
const w = q[3];
|
|
43
|
+
const tx = 2 * (y * v[2] - z * v[1]);
|
|
44
|
+
const ty = 2 * (z * v[0] - x * v[2]);
|
|
45
|
+
const tz = 2 * (x * v[1] - y * v[0]);
|
|
46
|
+
return [v[0] + w * tx + (y * tz - z * ty), v[1] + w * ty + (z * tx - x * tz), v[2] + w * tz + (x * ty - y * tx)];
|
|
47
|
+
}
|
|
48
|
+
/** `v` (x, y, z) rotated by unit quaternion `q` into `out` (no allocation: per-frame paths). */
|
|
49
|
+
export function rotateTo(q, x, y, z, out) {
|
|
50
|
+
const qx = q[0];
|
|
51
|
+
const qy = q[1];
|
|
52
|
+
const qz = q[2];
|
|
53
|
+
const qw = q[3];
|
|
54
|
+
const tx = 2 * (qy * z - qz * y);
|
|
55
|
+
const ty = 2 * (qz * x - qx * z);
|
|
56
|
+
const tz = 2 * (qx * y - qy * x);
|
|
57
|
+
out[0] = x + qw * tx + (qy * tz - qz * ty);
|
|
58
|
+
out[1] = y + qw * ty + (qz * tx - qx * tz);
|
|
59
|
+
out[2] = z + qw * tz + (qx * ty - qy * tx);
|
|
60
|
+
return out;
|
|
61
|
+
}
|
|
62
|
+
/** An entity's facing from its rotation: forward −Z, up +Y (glTF's and the camera's convention). */
|
|
63
|
+
export function poseOf(position, q) {
|
|
64
|
+
const n = Math.hypot(q[0], q[1], q[2], q[3]);
|
|
65
|
+
const r = n > 0 ? [q[0] / n, q[1] / n, q[2] / n, q[3] / n] : [0, 0, 0, 1];
|
|
66
|
+
return { position, forward: rotate(r, [0, 0, -1]), up: rotate(r, [0, 1, 0]) };
|
|
67
|
+
}
|
|
68
|
+
/** The listener at an orbit camera: at its eye, facing its target, up +Y (orthogonalised). */
|
|
69
|
+
export function cameraPose(eye, target) {
|
|
70
|
+
let f = [target[0] - eye[0], target[1] - eye[1], target[2] - eye[2]];
|
|
71
|
+
const fl = Math.hypot(f[0], f[1], f[2]) || 1;
|
|
72
|
+
f = f.map((v) => v / fl);
|
|
73
|
+
// up = (f × Y) × f, normalised: +Y made perpendicular to the view.
|
|
74
|
+
const r = [-f[2], 0, f[0]];
|
|
75
|
+
const rl = Math.hypot(r[0], r[2]);
|
|
76
|
+
const up = rl < 1e-6 ? [0, 0, f[1] > 0 ? 1 : -1] : [(r[1] * f[2] - r[2] * f[1]) / rl, (r[2] * f[0] - r[0] * f[2]) / rl, (r[0] * f[1] - r[1] * f[0]) / rl];
|
|
77
|
+
return { position: eye, forward: [f[0], f[1], f[2]], up };
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* The gain a distance model gives at `d` (Web Audio's formulas, so tests and tools can predict
|
|
81
|
+
* what the panner does): `ref` the distance of full volume, `max` where `linear` reaches the end,
|
|
82
|
+
* `rolloff` how fast it falls.
|
|
83
|
+
*/
|
|
84
|
+
export function distanceGain(model, d, ref, max, rolloff) {
|
|
85
|
+
if (model === 'linear') {
|
|
86
|
+
const dc = Math.min(Math.max(d, ref), max);
|
|
87
|
+
return max === ref ? 1 : 1 - (rolloff * (dc - ref)) / (max - ref);
|
|
88
|
+
}
|
|
89
|
+
const dc = Math.max(d, ref);
|
|
90
|
+
if (model === 'inverse')
|
|
91
|
+
return ref / (ref + rolloff * (dc - ref));
|
|
92
|
+
return (dc / ref) ** -rolloff;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* How much of a reverb zone the listener hears (ADR-0116): 1 at least `fade` metres inside it,
|
|
96
|
+
* falling to 0 at its edge. `local` is the listener in the zone's frame (its rotation undone);
|
|
97
|
+
* `shape` 0 is a sphere of radius `dims[0]`, 1 a box of half extents `dims`.
|
|
98
|
+
*/
|
|
99
|
+
export function zoneWeight(shape, dims, fade, local) {
|
|
100
|
+
let sd;
|
|
101
|
+
if (shape === 0)
|
|
102
|
+
sd = Math.hypot(local[0], local[1], local[2]) - dims[0];
|
|
103
|
+
else {
|
|
104
|
+
const qx = Math.abs(local[0]) - dims[0];
|
|
105
|
+
const qy = Math.abs(local[1]) - dims[1];
|
|
106
|
+
const qz = Math.abs(local[2]) - dims[2];
|
|
107
|
+
sd = Math.hypot(Math.max(qx, 0), Math.max(qy, 0), Math.max(qz, 0)) + Math.min(Math.max(qx, qy, qz), 0);
|
|
108
|
+
}
|
|
109
|
+
if (sd >= 0)
|
|
110
|
+
return 0;
|
|
111
|
+
return fade > 0 ? Math.min(1, -sd / fade) : 1;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* A reverb's impulse response (ADR-0116): stereo noise under an exponential decay that reaches −60 dB
|
|
115
|
+
* at `decay` seconds, the two channels decorrelated, written into `left` and `right` (each
|
|
116
|
+
* `decay × rate` samples, at most 6 s). Deterministic for a seed, so a run sounds the same.
|
|
117
|
+
*/
|
|
118
|
+
export function impulseResponse(left, right, rate, decay, seed = 1) {
|
|
119
|
+
let s = seed >>> 0 || 1;
|
|
120
|
+
const rnd = () => {
|
|
121
|
+
s ^= s << 13;
|
|
122
|
+
s ^= s >>> 17;
|
|
123
|
+
s ^= s << 5;
|
|
124
|
+
return ((s >>> 0) / 0xffffffff) * 2 - 1;
|
|
125
|
+
};
|
|
126
|
+
const k = Math.log(1000) / Math.max(1e-3, decay);
|
|
127
|
+
for (let i = 0; i < left.length; i++) {
|
|
128
|
+
const g = Math.exp((-k * i) / rate);
|
|
129
|
+
left[i] = rnd() * g;
|
|
130
|
+
right[i] = rnd() * g;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=space.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"space.js","sourceRoot":"","sources":["../src/space.ts"],"names":[],"mappings":"AAAA,sGAAsG;AAStG;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAyB,EAAE,QAA2B,EAAE,MAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACxG,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACjC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACjC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACjC,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAAC,MAAyB,EAAE,SAA4B,EAAE,WAA8B,EAAE,CAAC,GAAG,GAAG;IAC5H,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IACtC,sCAAsC;IACtC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC1B,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC1B,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC1B,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;IACpB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACpG,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC1G,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,MAAM,CAAC,CAAoB,EAAE,CAAoB;IAC/D,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACf,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACf,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACf,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACf,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AACnH,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,QAAQ,CAAC,CAAoB,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,GAAa;IAC3F,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChB,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACjC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACjC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACjC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3C,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3C,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3C,OAAO,GAAG,CAAC;AACb,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,MAAM,CAAC,QAA2B,EAAE,CAAoB;IACtE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1E,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAChF,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,UAAU,CAAC,GAAsB,EAAE,MAAyB;IAC1E,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACzB,mEAAmE;IACnE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,EAAE,GAA6B,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACpL,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC;AAC5D,CAAC;AAKD;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,KAAoB,EAAE,CAAS,EAAE,GAAW,EAAE,GAAW,EAAE,OAAe;IACrG,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QAC3C,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC5B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,GAAG,GAAG,CAAC,GAAG,GAAG,OAAO,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;IACnE,OAAO,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,KAAa,EAAE,IAAuB,EAAE,IAAY,EAAE,KAAwB;IACvG,IAAI,EAAU,CAAC;IACf,IAAI,KAAK,KAAK,CAAC;QAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;SACpE,CAAC;QACJ,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACxC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACzG,CAAC;IACD,IAAI,EAAE,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IACtB,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,IAAkB,EAAE,KAAmB,EAAE,IAAY,EAAE,KAAa,EAAE,IAAI,GAAG,CAAC;IAC5G,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;IACxB,MAAM,GAAG,GAAG,GAAG,EAAE;QACf,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACb,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACd,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACZ,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC,CAAC;IACF,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;QACpB,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,27 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yali-engine/audio",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
3
|
+
"version": "0.4.0",
|
|
4
|
+
"description": "Yali audio: spatial sound sources on entities, heard from the camera or a listener entity, through Web Audio (HRTF panning, distance models, cones).",
|
|
5
|
+
"license": "MIT OR Apache-2.0",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"sideEffects": false,
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"default": "./dist/index.js"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"publishConfig": {
|
|
15
|
+
"access": "public"
|
|
16
|
+
},
|
|
17
|
+
"files": [
|
|
18
|
+
"dist"
|
|
19
|
+
],
|
|
20
|
+
"dependencies": {
|
|
21
|
+
"@yali-engine/core": "0.4.0"
|
|
22
|
+
},
|
|
23
|
+
"scripts": {
|
|
24
|
+
"typecheck": "tsc -p tsconfig.json",
|
|
25
|
+
"test": "node --experimental-strip-types --no-warnings --test \"test/*.test.ts\""
|
|
26
|
+
}
|
|
6
27
|
}
|
package/README.md
DELETED