soundcraft-ui-connection
Version:
Library for controlling the Soundcraft Ui series audio mixers
108 lines (107 loc) • 4.28 kB
TypeScript
import { Observable } from 'rxjs';
import { AutomixController } from './facade/automix-controller';
import { AuxBus } from './facade/aux-bus';
import { DeviceInfo } from './facade/device-info';
import { DualTrackRecorder } from './facade/dual-track-recorder';
import { FxBus } from './facade/fx-bus';
import { HwChannel } from './facade/hw-channel';
import { MasterBus } from './facade/master-bus';
import { MtxBus } from './facade/mtx-bus';
import { MultiTrackRecorder } from './facade/multi-track-recorder';
import { MuteGroup, MuteGroupID } from './facade/mute-group';
import { Player } from './facade/player';
import { ShowController } from './facade/show-controller';
import { VolumeBus } from './facade/volume-bus';
import { MixerConnection } from './mixer-connection';
import { MixerStore } from './state/mixer-store';
import { ConnectionEvent, SoundcraftUIOptions } from './types';
import { VuProcessor } from './vu/vu-processor';
import { ChannelSync } from './facade/channel-sync';
export declare class SoundcraftUI {
private _options;
/**
* Get mixer options as a read-only copy.
* Options can only be set once at initialization and cannot be changed later.
*/
get options(): Readonly<SoundcraftUIOptions>;
readonly conn: MixerConnection;
readonly store: MixerStore;
/** Information about hardware and software of the mixer */
readonly deviceInfo: DeviceInfo;
/** Connection status */
readonly status$: Observable<ConnectionEvent>;
/** VU meter information for master channels */
readonly vuProcessor: VuProcessor;
/** Master bus */
readonly master: MasterBus;
/** Media player */
readonly player: Player;
/** 2-track recorder */
readonly recorderDualTrack: DualTrackRecorder;
/** multitrack recorder */
readonly recorderMultiTrack: MultiTrackRecorder;
/** SOLO and Headphone buses */
readonly volume: {
solo: VolumeBus;
headphone: (id: number) => VolumeBus;
};
/** Show controller (Shows, Snapshots, Cues) */
readonly shows: ShowController;
/** Automix controller */
readonly automix: AutomixController;
/** Channel Sync Controller */
readonly channelSync: ChannelSync;
/**
* Create a new instance to connect to a Soundcraft Ui mixer.
* The IP address of the mixer is a required parameter.
* You can either pass it in directly or as part of an options object:
*
* ```ts
* new SoundcraftUI('192.168.1.123');
* new SoundcraftUI({ targetIP: '192.168.1.123' });
* ```
*/
constructor(options: SoundcraftUIOptions);
constructor(targetIP: string);
/**
* Get AUX bus
* @param bus Bus number
*/
aux(bus: number): AuxBus;
/**
* Get matrix bus.
* A matrix bus is an AUX bus that has been converted into a matrix and routes
* other buses (AUX buses, subgroups, master) to an AUX output.
* Matrix buses are only available on the Ui24R.
* @param bus Bus number (same slot number as the AUX it replaced)
*/
mtx(bus: number): MtxBus;
/**
* Get FX bus
* @param bus Bus number
*/
fx(bus: number): FxBus;
/**
* Get MUTE group or related groupings (MUTE ALL and MUTE FX)
* @param id ID of the group: `1`..`6`, `all`, `fx`
*/
muteGroup(id: MuteGroupID): MuteGroup;
/** Unmute all mute groups, "MUTE ALL" and "MUTE FX" */
clearMuteGroups(): void;
/**
* Get hardware channel. With 1:1 patching, those are the same as input channels.
* However, if patched differently, HW channel 1 still is the first input on the hardware.
*
* @param channel Channel number
*/
hw(channel: number): HwChannel;
/** Connect to the mixer. Returns a Promise that resolves when the connection is open and the initial params have likely been received by the mixer. */
connect(): Promise<void>;
/** Disconnect from the mixer. Returns a Promise that resolves when the connection is closed. */
disconnect(): Promise<void>;
/**
* Reconnect to the mixer after 1 second.
* Returns a Promise that resolves when the connection is open again and the initial params have likely been received by the mixer.
*/
reconnect(): Promise<void>;
}