UNPKG

soundcraft-ui-connection

Version:

Library for controlling the Soundcraft Ui series audio mixers

108 lines (107 loc) 4.28 kB
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>; }