v8hd
Version:
Control interface for Roland V-8HD video switchers
238 lines • 8.19 kB
TypeScript
import { ButtonState, InputSource, SplitVfxType, TransitionType } from '../enums';
/**
* Class for controlling Roland V-8HD video switcher via MIDI
* Provides methods to control video transitions, effects, and audio levels
*/
export declare class RolandV8HD {
private output;
private readonly MIDI_CHANNEL;
/**
* Creates a new instance of RolandV8HD controller
* Automatically searches for and connects to the Roland V-8HD device
* @throws {Error} If Roland V-8HD MIDI device is not found
*/
constructor();
/**
* Initializes MIDI connection with Roland V-8HD
* @private
* @throws {Error} If Roland V-8HD device cannot be found
*/
private initializeMidi;
/**
* Sends a MIDI Control Change message to the device
* @private
* @param {CC} cc - Control Change number
* @param {number} value - Value to send (0-127)
*/
private sendControlChange;
/**
* Sets the video fader position
* @param {number} position - Position value (0-127, bottom to top)
* @throws {Error} If position is out of range
*/
setVideoFader(position: number): void;
/**
* Sets the transition type
* @param {TransitionType} type - Type of transition (MIX or WIPE)
*/
setTransitionType(type: TransitionType): void;
/**
* Sets the Mix/Wipe transition time
* @param {number} seconds - Transition time in seconds (0.0-4.0)
* @throws {Error} If time is out of range
*/
setMixWipeTime(seconds: number): void;
/**
* Sets the PinP 1 transition time
* @param {number} seconds - Transition time in seconds (0.0-4.0)
* @throws {Error} If time is out of range
*/
setPinP1Time(seconds: number): void;
/**
* Sets the PinP 2 transition time
* @param {number} seconds - Transition time in seconds (0.0-4.0)
* @throws {Error} If time is out of range
*/
setPinP2Time(seconds: number): void;
/**
* Sets the DSK transition time
* @param {number} seconds - Transition time in seconds (0.0-4.0)
* @throws {Error} If time is out of range
*/
setDSKTime(seconds: number): void;
/**
* Sets the PinP 1 input source
* @param {InputSource} source - Source to use for PinP 1
*/
setPinP1Source(source: InputSource): void;
/**
* Sets the PinP 1 horizontal position
* @param {number} percent - Position as percentage (-50 to 50%)
* @throws {Error} If position is out of range
*/
setPinP1PositionH(percent: number): void;
/**
* Sets the PinP 1 vertical position
* @param {number} percent - Position as percentage (-50 to 50%)
* @throws {Error} If position is out of range
*/
setPinP1PositionV(percent: number): void;
/**
* Sets the PinP 1 size
* @param {number} percent - Size as percentage (10-100%)
* @throws {Error} If size is out of range
*/
setPinP1Size(percent: number): void;
/**
* Sets the PinP 1 view zoom
* @param {number} percent - Zoom as percentage (100-1000%)
* @throws {Error} If zoom is out of range
*/
setPinP1ViewZoom(percent: number): void;
/**
* Sets the PinP 2 input source
* @param {InputSource} source - Source to use for PinP 2
*/
setPinP2Source(source: InputSource): void;
/**
* Sets the PinP 2 horizontal position
* @param {number} percent - Position as percentage (-50 to 50%)
* @throws {Error} If position is out of range
*/
setPinP2PositionH(percent: number): void;
/**
* Sets the PinP 2 vertical position
* @param {number} percent - Position as percentage (-50 to 50%)
* @throws {Error} If position is out of range
*/
setPinP2PositionV(percent: number): void;
/**
* Sets the PinP 2 size
* @param {number} percent - Size as percentage (10-100%)
* @throws {Error} If size is out of range
*/
setPinP2Size(percent: number): void;
/**
* Sets the PinP 2 view zoom
* @param {number} percent - Zoom as percentage (100-1000%)
* @throws {Error} If zoom is out of range
*/
setPinP2ViewZoom(percent: number): void;
/**
* Sets the DSK source
* @param {InputSource} source - Source to use for DSK
*/
setDSKSource(source: InputSource): void;
/**
* Sets the DSK level
* @param {number} level - Level value (0-127)
* @throws {Error} If level is out of range
*/
setDSKLevel(level: number): void;
/**
* Sets the DSK gain
* @param {number} gain - Gain value (0-127, converts to 0-255)
* @throws {Error} If gain is out of range
*/
setDSKGain(gain: number): void;
/**
* Sets the DSK mix level
* @param {number} level - Mix level value (0-127, converts to 0-255)
* @throws {Error} If level is out of range
*/
setDSKMixLevel(level: number): void;
/**
* Sets the SPLIT/VFX A switch state
* @param {ButtonState} state - ON or OFF state, defaults to ON
*/
setSplitVfxASwitch(state?: ButtonState): void;
/**
* Sets the SPLIT/VFX A effect type
* @param {SplitVfxType} type - Effect type to use
*/
setSplitVfxAType(type: SplitVfxType): void;
/**
* Sets the SPLIT/VFX B switch state
* @param {ButtonState} state - ON or OFF state, defaults to ON
*/
setSplitVfxBSwitch(state?: ButtonState): void;
/**
* Sets the SPLIT/VFX B effect type
* @param {SplitVfxType} type - Effect type to use
*/
setSplitVfxBType(type: SplitVfxType): void;
/**
* Sets the OUTPUT FADE knob counter-clockwise value
* @param {number} value - Fade value (0-63)
* @throws {Error} If value is out of range
*/
setOutputFadeCCW(value: number): void;
/**
* Sets the OUTPUT FADE knob clockwise value
* @param {number} value - Fade value (0-63)
* @throws {Error} If value is out of range
*/
setOutputFadeCW(value: number): void;
/**
* Sets the audio input level for a specific input channel
* @param {number} input - Input channel (1-8)
* @param {number} level - Level value (0-127)
* @throws {Error} If input or level is out of range
*/
setAudioInputLevel(input: number, level: number): void;
/**
* Sets the audio level for the AUDIO IN source
* @param {number} level - Level value (0-127)
* @throws {Error} If level is out of range
*/
setAudioInLevel(level: number): void;
/**
* Sets the audio output level
* @param {number} level - Level value (0-127)
* @throws {Error} If level is out of range
*/
setAudioOutputLevel(level: number): void;
/**
* Sets the CUT button state
* @param {ButtonState} state - ON or OFF state, defaults to ON
*/
setCutButton(state?: ButtonState): void;
/**
* Sets the AUTO button state
* @param {ButtonState} state - ON or OFF state, defaults to ON
*/
setAutoButton(state?: ButtonState): void;
/**
* Triggers the H CUT I video switch
* Performs an immediate cut transition
*/
triggerHCutI(): void;
/**
* Triggers the H AUTO TAKE I video switch
* Performs an auto transition based on current settings
*/
triggerHAutoTakeI(): void;
/**
* Sets the audio input mute state for a specific input channel
* @param {number} input - Input channel (1-8)
* @param {ButtonState} state - Mute state (ON to mute, OFF to unmute)
* @throws {Error} If input is out of range
*/
setAudioInputMute(input: number, state: ButtonState): void;
/**
* Sets the AUDIO IN mute state
* @param {ButtonState} state - Mute state (ON to mute, OFF to unmute)
*/
setAudioInMute(state: ButtonState): void;
/**
* Sets the audio output mute state
* @param {ButtonState} state - Mute state (ON to mute, OFF to unmute)
*/
setAudioOutputMute(state: ButtonState): void;
/**
* Closes the MIDI connection and releases resources
* Call this method when finished using the controller
*/
close(): void;
}
//# sourceMappingURL=RolandV8HD.d.ts.map