@aeonentertainment/mixer 0.2.0 → 0.3.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/README.md +3 -2
- package/dist/index.d.mts +10 -1
- package/native/binding/index.d.ts +3 -1
- package/native/binding/index.darwin-arm64.node +0 -0
- package/native/binding/index.darwin-x64.node +0 -0
- package/native/binding/index.linux-arm64-gnu.node +0 -0
- package/native/binding/index.linux-x64-gnu.node +0 -0
- package/native/binding/index.win32-x64-msvc.node +0 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -15,7 +15,7 @@ Each [release](https://github.com/aeonentertainment/aeon-mixer/releases) carries
|
|
|
15
15
|
Depend on its URL, and the lockfile pins its hash:
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
|
-
npm install https://github.com/aeonentertainment/aeon-mixer/releases/download/v0.
|
|
18
|
+
npm install https://github.com/aeonentertainment/aeon-mixer/releases/download/v0.3.0/aeonentertainment-mixer-0.3.0.tgz
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
## Use
|
|
@@ -51,7 +51,8 @@ await engine.close();
|
|
|
51
51
|
- **Slots** are the mics: 8 per engine by default, up to 16 with `openEngine({ slots })`. `rtp`
|
|
52
52
|
takes Opus over UDP from a phone or mediasoup, `l16` takes raw PCM over loopback from a house
|
|
53
53
|
mic, and `push` takes PCM the host hands to `mixer.push`. Each slot has gain, pan, mute, solo,
|
|
54
|
-
reverb, a pitch reading
|
|
54
|
+
reverb, a pitch reading, a melody guide and pitch correction toward it, whose delay `stats()`
|
|
55
|
+
reports.
|
|
55
56
|
- **The backing** is any format Symphonia decodes, resampled to 48 kHz. The armed key and speed
|
|
56
57
|
are rendered before `start` resolves. Live, it supports seek, pause, resume, a key change and
|
|
57
58
|
stem gains, and `start`, `seek` and `resume` report the position the lyric clock follows.
|
package/dist/index.d.mts
CHANGED
|
@@ -72,7 +72,7 @@ declare class Mixer$1 {
|
|
|
72
72
|
* recording it for null.
|
|
73
73
|
*/
|
|
74
74
|
recordSlot(index: number, path?: string | undefined | null): void;
|
|
75
|
-
/** Every slot's ingest counters, as the audio thread last published them. */
|
|
75
|
+
/** Every slot's ingest counters and corrector delay, as the audio thread last published them. */
|
|
76
76
|
stats(): Array<SlotStatsInfo>;
|
|
77
77
|
/** The return stream's counters, or null for a mixer without one. */
|
|
78
78
|
returnStats(): RtpReturnStats | null;
|
|
@@ -198,6 +198,8 @@ interface SlotStatsInfo {
|
|
|
198
198
|
concealed: number;
|
|
199
199
|
resyncs: number;
|
|
200
200
|
jitterMs: number;
|
|
201
|
+
correctorDelayMs: number;
|
|
202
|
+
correctorMaxDelayMs: number;
|
|
201
203
|
}
|
|
202
204
|
interface StemGainsInput {
|
|
203
205
|
instrumental: number;
|
|
@@ -290,6 +292,13 @@ interface SlotStats {
|
|
|
290
292
|
concealed: number;
|
|
291
293
|
resyncs: number;
|
|
292
294
|
jitterMs: number;
|
|
295
|
+
/**
|
|
296
|
+
* How far the corrector holds this slot's voice now; 0 with correction off. It moves with the
|
|
297
|
+
* voice and one read is a sample of it, so show it and never add it to a budget or a clock.
|
|
298
|
+
*/
|
|
299
|
+
correctorDelayMs: number;
|
|
300
|
+
/** The most that delay can reach; 0 with correction off. It holds still, so a budget adds this. */
|
|
301
|
+
correctorMaxDelayMs: number;
|
|
293
302
|
}
|
|
294
303
|
type EngineEvents = {
|
|
295
304
|
fault: (error: Error) => void;
|
|
@@ -85,7 +85,7 @@ export declare class Mixer {
|
|
|
85
85
|
* recording it for null.
|
|
86
86
|
*/
|
|
87
87
|
recordSlot(index: number, path?: string | undefined | null): void
|
|
88
|
-
/** Every slot's ingest counters, as the audio thread last published them. */
|
|
88
|
+
/** Every slot's ingest counters and corrector delay, as the audio thread last published them. */
|
|
89
89
|
stats(): Array<SlotStatsInfo>
|
|
90
90
|
/** The return stream's counters, or null for a mixer without one. */
|
|
91
91
|
returnStats(): RtpReturnStats | null
|
|
@@ -208,6 +208,8 @@ export interface SlotStatsInfo {
|
|
|
208
208
|
concealed: number
|
|
209
209
|
resyncs: number
|
|
210
210
|
jitterMs: number
|
|
211
|
+
correctorDelayMs: number
|
|
212
|
+
correctorMaxDelayMs: number
|
|
211
213
|
}
|
|
212
214
|
|
|
213
215
|
export interface StemGainsInput {
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aeonentertainment/mixer",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Low-latency LAN audio mixer for Aeon Karaoke: phone and house mics, a backing track, one mix to the room.",
|
|
5
5
|
"bugs": {
|
|
6
6
|
"url": "https://github.com/aeonentertainment/aeon-mixer/issues"
|