reaper-osc
Version:
Controls Cockos Reaper using OSC
73 lines (72 loc) • 2.2 kB
TypeScript
/**
* Contains classes for controlling FX in Reaper
* @module
*/
import { INotifyPropertyChanged } from './Notify';
import { IMessageHandler } from './Handlers';
import { ISendOscMessage, OscMessage } from './Messages';
/**
* A Reaper FX.
*
* @example
* ```typescript
* // Open an FX UI window
* fx.openUi();
* // Bypass the FX
* fx.bypass();
* ```
*/
export declare class Fx implements INotifyPropertyChanged {
readonly oscAddress: string;
private _isBypassed;
private _isUiOpen;
private _name;
private _preset;
protected readonly _handlers: IMessageHandler[];
protected readonly _sendOscMessage: ISendOscMessage;
/**
* @param name The FX name
* @param oscAddress The OSC address of the FX
* @param sendOscMessage A callback used to send OSC messages to Reaper
*/
constructor(name: string, oscAddress: string, sendOscMessage: ISendOscMessage);
/** Bypass the FX */
bypass(): void;
/** Close the UI of the FX */
closeUi(): void;
/** Indicates whether the FX is bypassed */
get isBypassed(): boolean;
/** Indicates whether the FX's UI is open */
get isUiOpen(): boolean;
/** The name of the FX */
get name(): string;
/** Load the next FX preset */
nextPreset(): void;
onPropertyChanged(property: string, callback: () => void): () => void;
/** Open the UI of the FX */
openUi(): void;
/** The name of the current preset, if any */
get preset(): string;
/** Load the previous FX preset */
previousPreset(): void;
/**
* Receive and handle an OSC message
* @param message The message to be handled
*/
receive(message: OscMessage): boolean;
/** Unbypass the FX */
unbypass(): void;
}
/**
* An FX on a {@link Track}
*/
export declare class TrackFx extends Fx {
readonly trackNumber: number;
readonly fxNumber: number;
/**
* @param trackNumber The number of the track the FX is on
* @param fxNumber The FX number in the current bank
* @param sendOscMessage A callback used to send OSC messages to Reaper
*/
constructor(trackNumber: number, fxNumber: number, sendOscMessage: ISendOscMessage);
}