u-he-preset-randomizer
Version:
Create random u-he synth presets through randomization and merging of your existing presets.
35 lines (34 loc) • 1.46 kB
TypeScript
/**
* @file Synth configuration types and global rules.
*/
import type { SynthNames } from '../utils/detector.js';
export interface SpecialParameterHandling {
/** Parameter ID pattern to match (uses string.includes() for matching) */
id: string;
/** 'always' = never randomize, 'stable-mode' = only keep stable when stable mode is enabled */
keepStable: 'always' | 'stable-mode';
}
export interface SynthConfig {
/** Synth name this config applies to */
synthName: SynthNames;
/** Special parameter handling rules for this synth */
specialParameters: SpecialParameterHandling[];
/** Default configuration values for this synth */
defaults?: {
binary?: boolean;
binaryTemplate?: boolean;
};
}
/**
* Global special parameter handling that applies to all synths
*
* keepStable options:
* - 'always': Parameter is NEVER randomized. Used for critical parameters like
* binary pointers or internal flags that would break the preset if changed.
* - 'stable-mode': Parameter is kept stable ONLY when 'Stable' randomization mode is selected.
* In 'Balanced' or 'Creative' modes, these will be randomized.
* Used for tuning, volume, or other sensitive but creative parameters.
*
* Note: Global rules are safely ignored for synths that don't have the matching parameters.
*/
export declare const globalSpecialParameters: SpecialParameterHandling[];