atem-connection
Version:
Typescript Node.js library for connecting with an ATEM switcher.
131 lines • 4.36 kB
TypeScript
import { FairlightAudioMixOption, FairlightInputConfiguration, FairlightAnalogInputLevel, FairlightAudioSourceType, ExternalPortType, FairlightInputType, AudioChannelPair, AudioInternalPortType } from '../enums';
export interface FairlightAudioDynamicsState {
makeUpGain?: number;
limiter?: FairlightAudioLimiterState;
compressor?: FairlightAudioCompressorState;
expander?: FairlightAudioExpanderState;
}
export interface FairlightAudioLimiterState {
limiterEnabled: boolean;
threshold: number;
attack: number;
hold: number;
release: number;
}
export interface FairlightAudioCompressorState {
compressorEnabled: boolean;
threshold: number;
ratio: number;
attack: number;
hold: number;
release: number;
}
export interface FairlightAudioExpanderState {
expanderEnabled: boolean;
gateEnabled: boolean;
threshold: number;
range: number;
ratio: number;
attack: number;
hold: number;
release: number;
}
export interface FairlightAudioEqualizerBandState {
bandEnabled: boolean;
readonly supportedShapes: number[];
shape: number;
readonly supportedFrequencyRanges: number[];
frequencyRange: number;
frequency: number;
gain: number;
qFactor: number;
}
export interface FairlightAudioMasterChannelPropertiesState {
/** Gain in decibel, -Infinity to +6dB */
faderGain: number;
followFadeToBlack: boolean;
}
export interface FairlightAudioMasterChannel {
properties?: FairlightAudioMasterChannelPropertiesState;
equalizer?: FairlightAudioEqualizerState;
dynamics?: Omit<FairlightAudioDynamicsState, 'expander'>;
}
export interface FairlightAudioMonitorChannel {
gain: number;
inputMasterGain: number;
inputMasterMuted: boolean;
inputTalkbackGain: number;
inputTalkbackMuted: boolean;
inputSidetoneGain: number;
}
export interface FairlightAudioMonitorSolo {
solo: boolean;
index: number;
source: string;
}
export interface FairlightAudioSource {
properties?: FairlightAudioSourcePropertiesState;
equalizer?: FairlightAudioEqualizerState;
dynamics?: FairlightAudioDynamicsState;
}
export interface FairlightAudioEqualizerState {
enabled: boolean;
gain: number;
readonly bands: Array<FairlightAudioEqualizerBandState | undefined>;
}
export interface FairlightAudioSourcePropertiesState {
readonly sourceType: FairlightAudioSourceType;
readonly maxFramesDelay: number;
framesDelay: number;
readonly hasStereoSimulation: boolean;
stereoSimulation: number;
gain: number;
balance: number;
faderGain: number;
readonly supportedMixOptions: FairlightAudioMixOption[];
mixOption: FairlightAudioMixOption;
}
export interface FairlightAudioInput {
properties?: FairlightAudioInputProperties;
sources: {
[sourceId: string]: FairlightAudioSource | undefined;
};
}
export interface FairlightAudioInputProperties {
readonly inputType: FairlightInputType;
readonly externalPortType: ExternalPortType;
readonly supportedConfigurations: FairlightInputConfiguration[];
activeConfiguration: FairlightInputConfiguration;
readonly supportedInputLevels: FairlightAnalogInputLevel[];
activeInputLevel: FairlightAnalogInputLevel;
}
export interface FairlightAudioRoutingSource {
readonly audioSourceId: number;
readonly audioChannelPair: AudioChannelPair;
readonly externalPortType: ExternalPortType;
readonly internalPortType: AudioInternalPortType;
name: string;
}
export interface FairlightAudioRoutingOutput {
readonly audioOutputId: number;
readonly audioChannelPair: AudioChannelPair;
readonly externalPortType: ExternalPortType;
readonly internalPortType: AudioInternalPortType;
sourceId: number;
name: string;
}
export interface FairlightAudioRouting {
sources: Record<number, FairlightAudioRoutingSource>;
outputs: Record<number, FairlightAudioRoutingOutput>;
}
export interface AtemFairlightAudioState {
inputs: {
[input: number]: FairlightAudioInput | undefined;
};
master?: FairlightAudioMasterChannel;
monitor?: FairlightAudioMonitorChannel;
solo?: FairlightAudioMonitorSolo;
audioFollowVideoCrossfadeTransitionEnabled?: boolean;
audioRouting?: FairlightAudioRouting;
}
//# sourceMappingURL=fairlight.d.ts.map