osc-min
Version:
Simple utilities for open sound control in node.js
161 lines (160 loc) • 4.57 kB
TypeScript
export type TypedBufferLike = {
buffer: ArrayBufferLike;
byteOffset: number;
byteLength: number;
};
export type BufferInput = ArrayBuffer | TypedBufferLike;
export declare const toOscString: (str: string) => ArrayBuffer;
export declare const splitOscString: (bufferInput: BufferInput) => {
value: string;
rest: DataView;
};
export type TimeTag = [number, number];
export declare const splitInteger: (bufferInput: BufferInput) => {
value: number;
rest: DataView;
};
export declare const splitTimetag: (bufferInput: BufferInput) => {
value: TimeTag;
rest: DataView;
};
export declare const dateToTimetag: (date: Date) => TimeTag;
export declare const timetagToDate: ([seconds, fractional]: TimeTag) => Date;
export declare const toTimetagBuffer: (timetag: Date | TimeTag) => ArrayBuffer;
export declare const toIntegerBuffer: (number: number) => ArrayBuffer;
export type OscTypeCode = "s" | "i" | "t" | "f" | "d" | "b" | "T" | "F" | "N" | "I" | "S" | "c" | "r" | "m" | "h";
export type OscMidiPacket = [number, number, number, number];
export type OscArgOutput = {
type: "string";
value: string;
} | {
type: "symbol";
value: string;
} | {
type: "integer";
value: number;
} | {
type: "bigint";
value: bigint;
} | {
type: "timetag";
value: TimeTag;
} | {
type: "float";
value: number;
} | {
type: "double";
value: number;
} | {
type: "blob";
value: DataView;
} | {
type: "midi";
value: OscMidiPacket;
} | {
type: "color";
value: OscColor;
} | {
type: "true";
value: true;
} | {
type: "false";
value: false;
} | {
type: "null";
value: null;
} | {
type: "bang";
value: "bang";
} | {
type: "character";
value: string;
};
export type OscArgOutputOrArray = OscArgOutput | {
type: "array";
value: OscArgOutputOrArray[];
};
export type OscColor = {
red: number;
green: number;
blue: number;
alpha: number;
};
export type OscArgWithType = {
type: "string";
value: string;
} | {
type: "symbol";
value: string;
} | {
type: "integer";
value: number;
} | {
type: "bigint";
value: bigint;
} | {
type: "timetag";
value: TimeTag | Date;
} | {
type: "float";
value: number;
} | {
type: "double";
value: number;
} | {
type: "blob";
value: ArrayBuffer | TypedBufferLike;
} | {
type: "character";
value: string;
} | {
type: "color";
value: OscColor;
} | {
type: "midi";
value: OscMidiPacket;
} | {
type: "true";
} | {
type: "false";
} | {
type: "null";
} | {
type: "bang";
};
export type OscArgInput = OscArgWithType | string | number | bigint | Date | OscColor | ArrayBuffer | TypedBufferLike | true | false | "bang" | null;
export type OscArgOrArrayInput = OscArgInput | OscArgOrArrayInput[] | {
type: "array";
value: OscArgOrArrayInput[];
};
export type OscMessageOutput = {
address: string;
args: OscArgOutputOrArray[];
oscType: "message";
};
export declare const fromOscMessage: (buffer: BufferInput) => OscMessageOutput;
export type OscBundleOutput = {
timetag: TimeTag;
elements: OscPacketOutput[];
oscType: "bundle";
};
export type OscPacketOutput = OscMessageOutput | OscBundleOutput;
export declare const fromOscBundle: (buffer: BufferInput) => OscBundleOutput;
export declare const fromOscPacket: (buffer: BufferInput) => OscPacketOutput;
export declare const concat: (buffers: BufferInput[]) => ArrayBuffer;
export type OscMessageInput = string | {
address: string;
args?: OscArgOrArrayInput[] | OscArgInput;
};
export declare const toOscMessage: (message: OscMessageInput) => DataView;
export type OscBundleInput = {
timetag: TimeTag | Date;
elements?: OscPacketInput[] | OscPacketInput;
};
export type OscPacketInput = OscBundleInput | OscMessageInput;
export declare const toOscBundle: (bundle: OscBundleInput) => DataView;
export declare const toOscPacket: (packet: OscPacketInput) => DataView;
export declare const applyMessageTranformerToBundle: (transform: (buffer: DataView) => DataView) => (buffer: DataView) => DataView;
export declare const applyTransform: (buffer: BufferInput, mTransform: (buffer: DataView) => DataView, bundleTransform?: (buffer: DataView) => DataView) => DataView;
export declare const addressTransform: (transform: (string: string) => string) => (buffer: DataView) => DataView;
export declare const messageTransform: (transform: (message: OscMessageOutput) => OscMessageOutput) => (buffer: DataView) => DataView;