// -------------------------------------------------------------- // -------------------------------------------------------------- #ifndef _PARAM_SCALE_H_ #define _PARAM_SCALE_H_ #include "synth_types.h" enum { SYNTH_PARAM_VOLUME = 0, SYNTH_PARAM_TUNE, SYNTH_PARAM_TOTAL_NUM_VOICES, SYNTH_PARAM_VOICE_PAN_SPREAD, SYNTH_PARAM_HUMANIZE_ENABLE, SYNTH_PARAM_MONOPHONIC_ENABLE, SYNTH_PARAM_MONOPHONIC_RETRIGGER_ENABLE, SYNTH_PARAM_UNISONO_ENABLE, SYNTH_PARAM_UNISONO_NUM_VOICES, SYNTH_PARAM_HUMANIZE_VAR_VCO, SYNTH_PARAM_HUMANIZE_VAR_VCF, SYNTH_PARAM_HUMANIZE_VAR_ENV, SYNTH_PARAM_PORTAMENTO_TIME, SYNTH_PARAM_OSC_0_RESTART_ON_TRIGGER, SYNTH_PARAM_OSC_1_RESTART_ON_TRIGGER, SYNTH_PARAM_OSC_0_ENABLE, SYNTH_PARAM_OSC_1_ENABLE, SYNTH_PARAM_OSC_0_LEVEL, SYNTH_PARAM_OSC_1_LEVEL, SYNTH_PARAM_OSC_0_DUTYCYCLE, SYNTH_PARAM_OSC_1_DUTYCYCLE, SYNTH_PARAM_OSC_0_DETUNE, SYNTH_PARAM_OSC_1_DETUNE, SYNTH_PARAM_OSC_0_TRANSPOSE, SYNTH_PARAM_OSC_1_TRANSPOSE, SYNTH_PARAM_OSC_0_PB_RANGE_MIN, SYNTH_PARAM_OSC_1_PB_RANGE_MIN, SYNTH_PARAM_OSC_0_PB_RANGE_MAX, SYNTH_PARAM_OSC_1_PB_RANGE_MAX, SYNTH_PARAM_OSC_0_WAVEFORM, SYNTH_PARAM_OSC_1_WAVEFORM, SYNTH_PARAM_OSC_0_FM_AMT_0, SYNTH_PARAM_OSC_1_FM_AMT_0, SYNTH_PARAM_OSC_0_FM_AMT_1, SYNTH_PARAM_OSC_1_FM_AMT_1, SYNTH_PARAM_OSC_0_FM_SRC_0, SYNTH_PARAM_OSC_1_FM_SRC_0, SYNTH_PARAM_OSC_0_FM_SRC_1, SYNTH_PARAM_OSC_1_FM_SRC_1, SYNTH_PARAM_OSC_0_FM_SRC_OP, SYNTH_PARAM_OSC_1_FM_SRC_OP, SYNTH_PARAM_OSC_0_AM_AMT_0, SYNTH_PARAM_OSC_1_AM_AMT_0, SYNTH_PARAM_OSC_0_AM_AMT_1, SYNTH_PARAM_OSC_1_AM_AMT_1, SYNTH_PARAM_OSC_0_AM_SRC_0, SYNTH_PARAM_OSC_1_AM_SRC_0, SYNTH_PARAM_OSC_0_AM_SRC_1, SYNTH_PARAM_OSC_1_AM_SRC_1, SYNTH_PARAM_OSC_0_AM_SRC_OP, SYNTH_PARAM_OSC_1_AM_SRC_OP, SYNTH_PARAM_OSC_0_PWM_AMT_0, SYNTH_PARAM_OSC_1_PWM_AMT_0, SYNTH_PARAM_OSC_0_PWM_AMT_1, SYNTH_PARAM_OSC_1_PWM_AMT_1, SYNTH_PARAM_OSC_0_PWM_SRC_0, SYNTH_PARAM_OSC_1_PWM_SRC_0, SYNTH_PARAM_OSC_0_PWM_SRC_1, SYNTH_PARAM_OSC_1_PWM_SRC_1, SYNTH_PARAM_OSC_0_PWM_SRC_OP, SYNTH_PARAM_OSC_1_PWM_SRC_OP, SYNTH_PARAM_NOISE_ENABLE, SYNTH_PARAM_NOISE_LEVEL, SYNTH_PARAM_NOISE_SHAPE, SYNTH_PARAM_VCA_ENV_AMT, SYNTH_PARAM_VCA_AM_AMT_0, SYNTH_PARAM_VCA_AM_SRC_0, SYNTH_PARAM_VCA_PAN_AMT_0, SYNTH_PARAM_VCA_PAN_SRC_0, SYNTH_PARAM_ENV_0_A, SYNTH_PARAM_VCF_ENV_A = SYNTH_PARAM_ENV_0_A, SYNTH_PARAM_ENV_1_A, SYNTH_PARAM_VCA_ENV_A = SYNTH_PARAM_ENV_1_A, SYNTH_PARAM_ENV_2_A, SYNTH_PARAM_ENV_3_A, SYNTH_PARAM_ENV_0_D, SYNTH_PARAM_VCF_ENV_D = SYNTH_PARAM_ENV_0_D, SYNTH_PARAM_ENV_1_D, SYNTH_PARAM_VCA_ENV_D = SYNTH_PARAM_ENV_1_D, SYNTH_PARAM_ENV_2_D, SYNTH_PARAM_ENV_3_D, SYNTH_PARAM_ENV_0_S, SYNTH_PARAM_VCF_ENV_S = SYNTH_PARAM_ENV_0_S, SYNTH_PARAM_ENV_1_S, SYNTH_PARAM_VCA_ENV_S = SYNTH_PARAM_ENV_1_S, SYNTH_PARAM_ENV_2_S, SYNTH_PARAM_ENV_3_S, SYNTH_PARAM_ENV_0_R, SYNTH_PARAM_VCF_ENV_R = SYNTH_PARAM_ENV_0_R, SYNTH_PARAM_ENV_1_R, SYNTH_PARAM_VCA_ENV_R = SYNTH_PARAM_ENV_1_R, SYNTH_PARAM_ENV_2_R, SYNTH_PARAM_ENV_3_R, SYNTH_PARAM_VCF_TYPE, SYNTH_PARAM_VCF_ORDER, SYNTH_PARAM_VCF_F, SYNTH_PARAM_VCF_Q, SYNTH_PARAM_VCF_ENV_AMT, SYNTH_PARAM_VCF_F_AMT_0, SYNTH_PARAM_VCF_F_AMT_1, SYNTH_PARAM_VCF_F_SRC_0, SYNTH_PARAM_VCF_F_SRC_1, SYNTH_PARAM_VCF_F_SRC_OP, SYNTH_PARAM_VCF_Q_AMT_0, SYNTH_PARAM_VCF_Q_AMT_1, SYNTH_PARAM_VCF_Q_SRC_0, SYNTH_PARAM_VCF_Q_SRC_1, SYNTH_PARAM_VCF_Q_SRC_OP, SYNTH_PARAM_LFO_0_SPEED, SYNTH_PARAM_LFO_1_SPEED, SYNTH_PARAM_LFO_2_SPEED, SYNTH_PARAM_LFO_3_SPEED, SYNTH_PARAM_LFO_0_SMOOTH, SYNTH_PARAM_LFO_1_SMOOTH, SYNTH_PARAM_LFO_2_SMOOTH, SYNTH_PARAM_LFO_3_SMOOTH, SYNTH_PARAM_LFO_0_DELAY, SYNTH_PARAM_LFO_1_DELAY, SYNTH_PARAM_LFO_2_DELAY, SYNTH_PARAM_LFO_3_DELAY, SYNTH_PARAM_LFO_0_ATTACK, SYNTH_PARAM_LFO_1_ATTACK, SYNTH_PARAM_LFO_2_ATTACK, SYNTH_PARAM_LFO_3_ATTACK, SYNTH_PARAM_LFO_0_SHAPE, SYNTH_PARAM_LFO_1_SHAPE, SYNTH_PARAM_LFO_2_SHAPE, SYNTH_PARAM_LFO_3_SHAPE, SYNTH_PARAM_LFO_0_MODE, SYNTH_PARAM_LFO_1_MODE, SYNTH_PARAM_LFO_2_MODE, SYNTH_PARAM_LFO_3_MODE, SYNTH_PARAM_LFO_0_SYNC, SYNTH_PARAM_LFO_1_SYNC, SYNTH_PARAM_LFO_2_SYNC, SYNTH_PARAM_LFO_3_SYNC, SYNTH_PARAM_LFO_0_SYMMETRY, SYNTH_PARAM_LFO_1_SYMMETRY, SYNTH_PARAM_LFO_2_SYMMETRY, SYNTH_PARAM_LFO_3_SYMMETRY, SYNTH_PARAM_LFO_0_MIDISYNC_MODE, SYNTH_PARAM_LFO_1_MIDISYNC_MODE, SYNTH_PARAM_LFO_2_MIDISYNC_MODE, SYNTH_PARAM_LFO_3_MIDISYNC_MODE, SYNTH_PARAM_LFO_0_MIDISYNC_BEATDIV, SYNTH_PARAM_LFO_1_MIDISYNC_BEATDIV, SYNTH_PARAM_LFO_2_MIDISYNC_BEATDIV, SYNTH_PARAM_LFO_3_MIDISYNC_BEATDIV, SYNTH_NUM_PARAMS }; // -------------------------------------------------------------- // Types // -------------------------------------------------------------- typedef struct _sparam_info_t { UINT32 id; char *pName; synth_float_t base, kexp, scenter, pmin, pcenter, pmax, pinterval; } param_info_t; // -------------------------------------------------------------- #if defined(__cplusplus) extern "C" { #endif // -------------------------------------------------------------- // Exported functions // -------------------------------------------------------------- void paramInfoInit(param_info_t *pObj, UINT32 id, const char *pName); void paramInfoFree(param_info_t *pObj); void paramInfoSetPMIN(param_info_t *pObj, synth_float_t value); void paramInfoSetPMAX(param_info_t *pObj, synth_float_t value); void paramInfoSet(param_info_t *pObj, synth_float_t base, synth_float_t kexp, synth_float_t scenter, synth_float_t pmin, synth_float_t pcenter, synth_float_t pmax, synth_float_t pinterval); void paramInfoCopy(param_info_t *pDst, param_info_t const *pSrc); synth_float_t clampParam(param_info_t *pObj, synth_float_t p); synth_float_t toParam(param_info_t *pObj, synth_float_t s); synth_float_t toSlider(param_info_t *pObj, synth_float_t p); param_info_t* getParamInfo(UINT32 type); #if defined(__cplusplus) } #endif // -------------------------------------------------------------- #endif // _PARAM_SCALE_H_