AudioMixSettings interface
The settings for an AudioMix operation see: NorskTransform.audioMix()
Signature:
export interface AudioMixSettings<Pins extends string> extends ProcessorNodeSettings<AudioMixNode<Pins>>
Extends: ProcessorNodeSettings<AudioMixNode<Pins>>
Properties
| Property | Type | Description |
|---|---|---|
The channel layout that the mixer runs at all audio streams will be normalised to this value and therefore this will be the output channel layout of this node |
||
number |
(Optional) Opt-in: the longest the mix waits for a pin that is behind. By default the mix waits for every pin (for up to 10 s), so it runs as late as its latest pin: one talker 3 s behind delays everything this mixer puts out by 3 s, and a pin that stops sending holds it up altogether. With this set, the mixer paces itself by a clock of its own, which runs in real time (on the engine’s clock, which the inputs' timestamps are on) and cannot stall. A pin more than A pin whose timestamps run AHEAD of real time (after a jump forward, say) does not make the others late: it waits for the clock, and is mixed when its timestamps come round. Its audio more than 10 s ahead is discarded. What it costs: whenever a pin is late the mix runs up to |
|
(allStreams: Map<Pins, StreamMetadata[]>) ⇒ Promise<void> |
(Optional) Called when the set of streams being mixed changes: a pin’s audio has arrived and is about to join the mix, a pin has left it, or a pin’s stream has changed. The mixer is stopped while this runs. Nothing from the new set of streams has been mixed yet, and nothing will be until the returned promise settles - so keep it short. An AudioMixNode.updateConfig() made before it settles is applied on exactly the first frame of the new set: a pin muted here as it joins is never heard, and a pin dropped from The mixer stops only when this callback is given. Without one, a change in the set of streams goes straight through, and an This is exact within this node. Another node given the same pin at the same moment (a second mixer, a StreamSwitchSmoothNode) stops at its own first frame of that pin, which will be close but is not guaranteed to be the same frame. Lining a change up across several nodes - a "take" that cuts the picture in a StreamSwitchSmoothNode and brings the same source up in one or more mixers: - Best: subscribe the source to every node ahead of time - not the active source in the switch, muted in the mixers - and make the take with plain calls issued together ( |
|
string |
The source name to use for the output stream |
|
(Optional) The sample rate that the mixer runs at all audio streams will be normalised to this value and therefore this will be the output sample rate of this node |
||
readonly AudioMixSource<Pins>[] |
The audio sources to mix. If this lists any pins, list every pin that should be heard: a pin that is subscribed but not listed is silent (and the SDK and the engine each log a warning if it stays that way for a second). A pin listed without |