x32-osc
Version:
X32/M32 interface to all OSC parameters and meters
51 lines (45 loc) • 1.56 kB
TypeScript
//
//Internal types:
type x32Conditional = {
[K: string]: ({ _name: string } & x32DefinitionLeaf)[];
};
type x32DefinitionLeaf =
| { _type: 'level161' | 'icon' | 'level' | 'string' | 'encString' | 'btnString' | 'unused'}
| {
_type: 'linear';
_min: number;
_max: number;
_step: number;
_decimals?: number;
_maxDigits?: number;
_plusSign?: true;
}
| {
_type: 'exponential';
_min: number;
_max: number;
_steps: number;
_decimals?: number;
_maxDigits?: number;
_freq?: true;
}
| { _type: 'bitmap'; _size: number }
| { _type: 'int'; _max: number }
| { _type: 'enum'; _enum: string[], _isKey?: true }
| { _type: 'virtualEnum'; _enum: string[] }
| { _type: 'conditional'; _keyAddress: string[]; _index: number; _conditional: x32Conditional };
type x32DefinitionNode = {
[K: string]: x32DefinitionNode | x32DefinitionLeaf;
} & { _type?: never };
type x32MetaNode = {
[K: string]: x32MetaNode | x32MetaLeaf | string[];
} & {
_type?: never;
_address: string[];
};
type x32MetaLeaf = x32DefinitionLeaf & { _address: string[]; _value: string; _redundant?: true };
//External types
type x32Node = { [K: string]: x32Node | string } & { _type?: never };
type x32Diff = { [K: string]: x32Diff | { reference: string; current: string } };
type meterDescriptions = (number | [5, number, number] | [6, number])[];
type osc = typeof import('./x32-osc-obj.json');