Program Listing for File dm_fx_effects_defines.h¶
↰ Return to documentation for file (src/effects/dm_fx_effects_defines.h
)
// Copyright (c) 2020 Run Jump Labs LLC. All right reserved.
// This code is licensed under MIT license (see license.txt for details)
#ifndef AFX_FRAMEWORK_EFFECTS_DMFX_EFFECTS_DEFINES_H_
#define AFX_FRAMEWORK_EFFECTS_DMFX_EFFECTS_DEFINES_H_
#ifndef DOXYGEN_SHOULD_SKIP_THIS
typedef enum {
FX_NONE,
FX_ADSR_ENVELOPE,
FX_ALLPASS_FILTER,
FX_ARPEGGIATOR,
FX_AMPLITUDE_MODULATOR,
FX_BIQUAD_FILTER,
FX_COMPRESSOR,
FX_DELAY,
FX_DELAY_MULTITAP,
FX_DESTRUCTOR,
FX_ENVELOPE_TRACKER,
FX_GAIN,
FX_HARMONIZER,
FX_IMPULSE_RESPONSE,
FX_LOOPER,
FX_MIXER_2,
FX_MIXER_3,
FX_MIXER_4,
FX_OSCILLATOR,
FX_INSTRUMENT_SYNTH,
FX_PHASE_SHIFTER,
FX_PITCH_SHIFT,
FX_RING_MOD,
FX_SLICER,
FX_SPECTRALIZER,
FX_VARIABLE_DELAY,
FX_CANVAS = (254),
FX_UNDEFINED = (255),
} EFFECT_TYPE;
typedef enum {
T_BOOL, T_INT16, T_INT32, T_FLOAT
} PARAM_TYPES;
typedef enum {
NODE_FLOAT,
NODE_BOOL,
NODE_INT32,
NODE_NOTE
} CTRL_NODE_TYPE;
#define ARP_MAX_STEPS (16)
#endif
typedef enum {
IR_SPRING_LONG,
IR_SPRING_MED,
IR_HF_SPRING,
IR_PLATE_1,
IR_MAX
} IMPULSE;
typedef struct {
float freq;
float vol;
float dur;
float param_1;
float param_2;
} ARP_STEP;
typedef enum {
KEY_C,
KEY_CS,
KEY_D,
KEY_DS,
KEY_E,
KEY_F,
KEY_FS,
KEY_G,
KEY_GS,
KEY_A,
KEY_AS,
KEY_B,
KEY_MAX
} MUSIC_KEY;
typedef enum {
IONIAN,
DORIAN,
PHRYGIAN,
LYDIAN,
MIXOLYDIAN,
AEOLIAN,
LOCRIAN,
MODE_MAX
} MUSIC_MODE;
typedef enum {
OSC_NONE,
OSC_SINE,
OSC_TRIANGLE,
OSC_TRIANGLE_CLIPPED,
OSC_SQUARE,
OSC_SQUARE_SOFT,
OSC_PULSE,
OSC_RAMP_POS,
OSC_RAMP_NEG,
OSC_RANDOM,
OSC_CLIPPED_TRI,
OSC_TOTAL,
} OSC_TYPES;
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// Legacy
#define OSC_TRI OSC_TRIANGLE
#endif
typedef enum {
TRANS_VERY_FAST = (1),
TRANS_FAST = (5),
TRANS_MED = (10),
TRANS_SLOW = (40),
TRANS_VERY_SLOW = (120),
TRANS_TOTAL
} EFFECT_TRANSITION_SPEED;
typedef enum {
BIQUAD_TYPE_LPF,
BIQUAD_TYPE_HPF,
BIQUAD_TYPE_BPF,
BIQUAD_TYPE_NOTCH,
BIQUAD_TYPE_PEAKING,
BIQUAD_TYPE_L_SHELF,
BIQUAD_TYPE_H_SHELF,
BIQUAD_TYPE_TOTAL
} BIQUAD_FILTER_TYPE;
typedef enum {
BIQUAD_ORDER_2=1,
BIQUAD_ORDER_4=2,
BIQUAD_ORDER_6=3,
BIQUAD_ORDER_8=4,
BIQUAD_ORDER_TOTAL
} BIQUAD_FILTER_ORDER;
typedef enum {
FILTER_WIDTH_VERY_NARROW, // Q = 8
FILTER_WIDTH_NARROW, // Q = 4
FILTER_WIDTH_MEDIUM, // Q = 1
FILTER_WIDTH_WIDE, // Q = 0.7071
FILTER_WIDTH_VERY_WIDE, // Q = 0.5
FILTER_WIDTH_TOTAL
} BIQUAD_FILTER_WIDTH;
typedef enum {
SMOOTH_CLIP,
SMOOTHER_CLIP,
SMOOTH_FUZZ,
BIT_CRUSHER,
SAMPLE_RATE_CRUSHER,
SHAPER,
DIGITAL_PULVERIZER,
FLIP_FLOP_OCTAVE,
POLY_TOTAL
} DESTRUCTOR_TYPE;
// Envelope tracker types
typedef enum {
ENV_TRACK_ENVELOPE,
ENV_TRACK_TOTAL
} ENV_TRACKER_TYPE;
#ifndef DOXYGEN_SHOULD_SKIP_THIS
/*********************************************************
* STATE
********************************************************/
// Bit fields
#define SYS_VALID (0x500A)
#define SYS_INITIALIZED (0x0010)
#define SYS_HF_AUDIO (0x0020)
#define SYS_LF_AUDIO (0x0040)
#define SYS_CANVAS_OK (0x0080)
#define SYS_ERR_ALLOC (0x0100)
#define SYS_ERR_PARAM (0x0200)
#define SYS_ERR_CRPT (0x0400)
#define SYS_ERR_OTHER (0x0800)
typedef enum {
SPI_DSP_STAT_FIRMWARE_MAJ,
SPI_DSP_STAT_FIRMWARE_MIN,
SPI_DSP_STAT_MIPS_PERCENT,
SPI_DSP_STAT_NEW_NOTE,
SPI_DSP_STAT_AMPLITUDE,
SPI_DSP_STAT_SYS_STATE,
SPI_DSP_STAT_NOTE_1_FREQ,
SPI_DSP_STAT_NOTE_1_AMP,
SPI_DSP_STAT_NOTE_1_DUR,
SPI_DSP_STAT_NOTE_2_FREQ,
SPI_DSP_STAT_NOTE_2_AMP,
SPI_DSP_STAT_NOTE_2_DUR,
SPI_DSP_STAT_NOTE_3_FREQ,
SPI_DSP_STAT_NOTE_3_AMP,
SPI_DSP_STAT_NOTE_3_DUR,
SPI_DSP_STAT_NOTE_4_FREQ,
SPI_DSP_STAT_NOTE_4_AMP,
SPI_DSP_STAT_NOTE_4_DUR,
SPI_DSP_STAT_FRAME_SIZE
} SPI_STATUS_FRAME_OFFSETs;
/*********************************************************
* UNIVERSAL
********************************************************/
#define FX_PARAM_ID_ENABLED 0
#define FX_PARAM_OFFSET_ENABLED 0
/*********************************************************
* CANVAS
********************************************************/
#define FX_CANVAS_PARAM_ID_NOTE_FREQ 1
#define FX_CANVAS_PARAM_ID_NOTE_DURATION 2
#define FX_CANVAS_PARAM_ID_NOTE_NEW_NOTE 3
#define FX_CANVAS_PARAM_ID_NEW_FREQ_LOCK 4
/*********************************************************
* Allpass Filter
********************************************************/
// Parameters
#define FX_ALLPASS_PARAM_ID_ENABLED 0
#define FX_ALLPASS_PARAM_ID_GAIN 1
// Offsets
#define FX_ALLPASS_OFFSET_ENABLED 0
#define FX_ALLPASS_OFFSET_GAIN 1
#define FX_ALLPASS_OFFSET_LENGTH_MS 3
/*********************************************************
* ADSR Envelope
********************************************************/
// Parameters
#define FX_ADSR_PARAM_ID_ENABLED 0
#define FX_ADSR_PARAM_ID_ATK_MS 1
#define FX_ADSR_PARAM_ID_DEC_MS 2
#define FX_ADSR_PARAM_ID_SUS_MS 3
#define FX_ADSR_PARAM_ID_RLS_MS 4
#define FX_ADSR_PARAM_ID_PEAK_RATIO 5
#define FX_ADSR_PARAM_ID_SUSTAIN_RATIO 6
#define FX_ADSR_PARAM_ID_OUT_VOL 7
#define FX_ADSR_PARAM_ID_VALUE 8
#define FX_ADSR_PARAM_ID_START 9
#define FX_ADSR_PARAM_ID_STOP 10
// Offsets
#define FX_ADSR_OFFSET_ENABLED 0
#define FX_ADSR_OFFSET_ATK_MS 1
#define FX_ADSR_OFFSET_DEC_MS 3
#define FX_ADSR_OFFSET_SUS_MS 5
#define FX_ADSR_OFFSET_RLS_MS 7
#define FX_ADSR_OFFSET_RATIO_PEAK 9
#define FX_ADSR_OFFSET_RATIO_SUSTAIN 11
#define FX_ADSR_OFFSET_VOL_OUT 13
#define FX_ADSR_OFFSET_LOOKAHEAD 15
/*********************************************************
* AMPLITUDE MODULATOR
********************************************************/
// Parameters
#define FX_AMP_MOD_PARAM_ID_ENABLED 0
#define FX_AMP_MOD_PARAM_ID_MOD_FREQ 1
#define FX_AMP_MOD_PARAM_ID_MOD_PHASE 2
#define FX_AMP_MOD_PARAM_ID_MOD_DEPTH 3
#define FX_AMP_MOD_PARAM_ID_MOD_TYPE 4
#define FX_AMP_MOD_PARAM_ID_EXT_MOD 5
// Offsets
#define FX_AMP_MOD_OFFSET_ENABLED 0
#define FX_AMP_MOD_OFFSET_MOD_FREQ 1
#define FX_AMP_MOD_OFFSET_MOD_PHASE 3
#define FX_AMP_MOD_OFFSET_MOD_DEPTH 5
#define FX_AMP_MOD_OFFSET_MOD_TYPE 7
#define FX_AMP_MOD_OFFSET_EXT_MOD 8
/*********************************************************
* ARPEGGIATOR
********************************************************/
#define FX_ARPEGGIATOR_PARAM_ID_ENABLE 0
#define FX_ARPEGGIATOR_PARAM_ID_TIME_SCALE 1
#define FX_ARPEGGIATOR_PARAM_ID_PERIOD 2
#define FX_ARPEGGIATOR_PARAM_ID_FREQ 3
#define FX_ARPEGGIATOR_PARAM_ID_VOL 4
#define FX_ARPEGGIATOR_PARAM_ID_PARAM_1 5
#define FX_ARPEGGIATOR_PARAM_ID_PARAM_2 6
#define FX_ARPEGGIATOR_PARAM_ID_RESTART 7
#define FX_ARPEGGIATOR_OFFSET_EN 0
#define FX_ARPEGGIATOR_OFFSET_TOTAL_STEPS 1
#define FX_ARPEGGIATOR_OFFSET_STEPS 2
/*********************************************************
* BIQUAD
********************************************************/
// Parameters
#define FX_BIQUAD_PARAM_ID_ENABLED 0
#define FX_BIQUAD_PARAM_ID_TYPE 1
#define FX_BIQUAD_PARAM_ID_SPEED 2
#define FX_BIQUAD_PARAM_ID_FREQ 3
#define FX_BIQUAD_PARAM_ID_Q 4
#define FX_BIQUAD_PARAM_ID_GAIN 5
#define FX_BIQUAD_PARAM_ID_ORDER 6
// Offsets
#define FX_BIQUAD_PARAM_OFFSET_EN 0
#define FX_BIQUAD_PARAM_OFFSET_TYPE 1
#define FX_BIQUAD_PARAM_OFFSET_SPEED 2
#define FX_BIQUAD_PARAM_OFFSET_FREQ 3
#define FX_BIQUAD_PARAM_OFFSET_Q 5
#define FX_BIQUAD_PARAM_OFFSET_GAIN 7
#define FX_BIQUAD_PARAM_OFFSET_ORDER 9
/*********************************************************
* COMPRESSOR
********************************************************/
// Parameters
#define FX_COMPRESSOR_PARAM_ID_ENABLED 0
#define FX_COMPRESSOR_PARAM_ID_THRESH 1
#define FX_COMPRESSOR_PARAM_ID_RATIO 2
#define FX_COMPRESSOR_PARAM_ID_ATTACK 3
#define FX_COMPRESSOR_PARAM_ID_RELEASE 4
#define FX_COMPRESSOR_PARAM_ID_OUT_GAIN 5
// Offsets
#define FX_COMPRESSOR_PARAM_OFFSET_EN 0
#define FX_COMPRESSOR_PARAM_OFFSET_THRESH 1
#define FX_COMPRESSOR_PARAM_OFFSET_RATIO 3
#define FX_COMPRESSOR_PARAM_OFFSET_ATTACK 5
#define FX_COMPRESSOR_PARAM_OFFSET_RELEASE 7
#define FX_COMPRESSOR_PARAM_OFFSET_OUT_GAIN 9
/*********************************************************
* DELAY MULTITAP
********************************************************/
// Parameters
#define FX_MULTITAP_DELAY_PARAM_ID_ENABLED 0
#define FX_MULTITAP_DELAY_PARAM_ID_WET_MIX 1
#define FX_MULTITAP_DELAY_PARAM_ID_DRY_MIX 2
// Offsets
#define FX_MULTITAP_DELAY_OFFSET_ENABLED 0
#define FX_MULTITAP_DELAY_OFFSET_TAP_1_MS 1
#define FX_MULTITAP_DELAY_OFFSET_TAP_1_GAIN 3
#define FX_MULTITAP_DELAY_OFFSET_TAP_2_MS 5
#define FX_MULTITAP_DELAY_OFFSET_TAP_2_GAIN 7
#define FX_MULTITAP_DELAY_OFFSET_TAP_3_MS 9
#define FX_MULTITAP_DELAY_OFFSET_TAP_3_GAIN 11
#define FX_MULTITAP_DELAY_OFFSET_TAP_4_MS 13
#define FX_MULTITAP_DELAY_OFFSET_TAP_4_GAIN 15
#define FX_MULTITAP_DELAY_OFFSET_CLEAN_MIX 17
#define FX_MULTITAP_DELAY_OFFSET_WET_MIX 19
/*********************************************************
* DELAY
********************************************************/
// Parameters
#define FX_DELAY_PARAM_ID_ENABLED 0
#define FX_DELAY_PARAM_ID_LEN_MS 1
#define FX_DELAY_PARAM_ID_LEN_MAX_MS 2
#define FX_DELAY_PARAM_ID_FEEDBACK 3
#define FX_DELAY_PARAM_ID_DRY_MIX 4
#define FX_DELAY_PARAM_ID_WET_MIX 5
#define FX_DELAY_PARAM_ID_EXT_FB 6
// Offsets
#define FX_DELAY_PARAM_OFFSET_EN 0
#define FX_DELAY_PARAM_OFFSET_DELAY_LEN 1
#define FX_DELAY_PARAM_OFFSET_DELAY_LEN_MAX 3
#define FX_DELAY_PARAM_OFFSET_DELAY_FB 5
#define FX_DELAY_PARAM_OFFSET_DELAY_DRY 7
#define FX_DELAY_PARAM_OFFSET_DELAY_WET 9
#define FX_DELAY_PARAM_OFFSET_EXT_LOOP 11
/*********************************************************
* DESTRUCTOR
********************************************************/
// Parameters
#define FX_DESTRUCTOR_PARAM_ID_ENABLED 0
#define FX_DESTRUCTOR_PARAM_ID_TYPE 1
#define FX_DESTRUCTOR_PARAM_ID_PARAM_1 2
#define FX_DESTRUCTOR_PARAM_ID_PARAM_2 3
#define FX_DESTRUCTOR_PARAM_ID_OUT_GAIN 4
#define FX_DESTRUCTOR_PARAM_ID_UPSAMPLE 5
// Offsets
#define FX_DESTRUCTOR_OFFSET_ENABLED 0
#define FX_DESTRUCTOR_OFFSET_POLY_TYPE 1
#define FX_DESTRUCTOR_OFFSET_PARAM_1 2
#define FX_DESTRUCTOR_OFFSET_PARAM_2 4
#define FX_DESTRUCTOR_OFFSET_OUT_GAIN 6
#define FX_DESTRUCTOR_OFFSET_UPSAMPLE 8
/*********************************************************
* ENV TRACKER
********************************************************/
// Parameters
#define FX_ENV_TRACKER_PARAM_ID_ENABLED 0
#define FX_ENV_TRACKER_PARAM_ID_ATTACK_MS 1
#define FX_ENV_TRACKER_PARAM_ID_DECAY_MS 2
#define FX_ENV_TRACKER_PARAM_ID_TYPE 3
#define FX_ENV_TRACKER_PARAM_ID_SCALE 4
#define FX_ENV_TRACKER_PARAM_ID_OFFSET 5
#define FX_ENV_TRACKER_PARAM_ID_TRIGGERED 6
#define FX_ENV_TRACKER_PARAM_ID_VALUE 7
// Offsets
#define FX_ENV_TRACKER_OFFSET_EN 0
#define FX_ENV_TRACKER_OFFSET_ATTACK_MS 1
#define FX_ENV_TRACKER_OFFSET_DECAY_MS 3
#define FX_ENV_TRACKER_OFFSET_SCALE 5
#define FX_ENV_TRACKER_OFFSET_OFFSET 7
#define FX_ENV_TRACKER_OFFSET_TYPE 9
#define FX_ENV_TRACKER_OFFSET_TRIGGERED 10
/*********************************************************
* GAIN
********************************************************/
// Parameters
#define FX_GAIN_PARAM_ID_ENABLED 0
#define FX_GAIN_PARAM_ID_GAIN 1
#define FX_GAIN_PARAM_ID_SPEED 2
// Offsets
#define FX_GAIN_PARAM_OFFSET_EN 0
#define FX_GAIN_PARAM_OFFSET_GAIN 1
#define FX_GAIN_PARAM_OFFSET_SPEED 3
/*********************************************************
* HARMONIZER
********************************************************/
// Parameters
#define FX_HARMONIZER_PARAM_ID_ENABLED 0
#define FX_HARMONIZER_PARAM_ID_FREQ_OUT 1
#define FX_HARMONIZER_PARAM_ID_VOL_OUT 2
#define FX_HARMONIZER_PARAM_ID_KEY 3
#define FX_HARMONIZER_PARAM_ID_MODE 4
#define FX_HARMONIZER_PARAM_ID_OFFSET 5
#define FX_HARMONIZER_PARAM_ID_VOL 6
// Offsets
#define FX_HARMONIZER_OFFSET_ENABLED 0
#define FX_HARMONIZER_OFFSET_KEY 1
#define FX_HARMONIZER_OFFSET_MODE 2
#define FX_HARMONIZER_OFFSET_NOTE_OFFSET 3
#define FX_HARMONIZER_OFFSET_VOL 4
/*********************************************************
* IMPULSE RESPONSE
********************************************************/
// Parameters
#define FX_IMPULSE_RESPONSE_PARAM_ID_ENABLED 0
#define FX_IMPULSE_RESPONSE_PARAM_ID_IMPULSE_RESP 1
// Offsets
#define FX_IMPULSE_RESPONSE_OFFSET_ENABLED 0
#define FX_IMPULSE_RESPONSE_OFFSET_IMPULSE_RESP 1
/*********************************************************
* INSTRUMENT_SYNTH
********************************************************/
// Parameters
#define FX_INSTRUMENT_SYNTH_PARAM_ID_ENABLED 0
#define FX_INSTRUMENT_SYNTH_PARAM_ID_OSC_TYPE 1
#define FX_INSTRUMENT_SYNTH_PARAM_ID_OSC_FM_TYPE 2
#define FX_INSTRUMENT_SYNTH_PARAM_ID_FREQ_RATIO 3
#define FX_INSTRUMENT_SYNTH_PARAM_ID_FM_MOD_RATIO 4
#define FX_INSTRUMENT_SYNTH_PARAM_ID_FM_MOD_DEPTH 5
#define FX_INSTRUMENT_SYNTH_PARAM_ID_ATTACK_MS 6
#define FX_INSTRUMENT_SYNTH_PARAM_ID_FILT_RESONANCE 7
#define FX_INSTRUMENT_SYNTH_PARAM_ID_FILT_RESPONSE 8
// Offsets
#define FX_INSTRUMENT_SYNTH_PARAM_OFFSET_EN 0
#define FX_INSTRUMENT_SYNTH_PARAM_OFFSET_OSC_TYPE 1
#define FX_INSTRUMENT_SYNTH_PARAM_OFFSET_OSC_FM_TYPE 2
#define FX_INSTRUMENT_SYNTH_PARAM_OFFSET_FREQ_RATIO 3
#define FX_INSTRUMENT_SYNTH_PARAM_OFFSET_FM_MOD_RATIO 5
#define FX_INSTRUMENT_SYNTH_PARAM_OFFSET_FM_MOD_DEPTH 7
#define FX_INSTRUMENT_SYNTH_PARAM_OFFSET_ATTACK_MS 9
#define FX_INSTRUMENT_SYNTH_PARAM_OFFSET_FILT_RESONANCE 11
#define FX_INSTRUMENT_SYNTH_PARAM_OFFSET_FILT_RESPONSE 13
/*********************************************************
* LOOPER
********************************************************/
// Parameters
#define FX_LOOPER_PARAM_OFFSET_EN 0
#define FX_LOOPER_PARAM_OFFSET_LOOP_SIZE_S 1
#define FX_LOOPER_PARAM_OFFSET_DRY_MIX 3
#define FX_LOOPER_PARAM_OFFSET_LOOP_MIX 5
#define FX_LOOPER_PARAM_OFFSET_RATE 7
#define FX_LOOPER_PARAM_OFFSET_EXT_PP 9
#define FX_LOOPER_PARAM_OFFSET_START 10
#define FX_LOOPER_PARAM_OFFSET_STOP 11
// Parameter and status IDs
#define FX_LOOPER_PARAM_ID_ENABLED 0
#define FX_LOOPER_PARAM_ID_LOOP_SIZE_S 1
#define FX_LOOPER_PARAM_ID_DRY_MIX 2
#define FX_LOOPER_PARAM_ID_LOOP_MIX 3
#define FX_LOOPER_PARAM_ID_RATE 4
#define FX_LOOPER_PARAM_ID_EXT_FB 5
#define FX_LOOPER_PARAM_ID_START 6
#define FX_LOOPER_PARAM_ID_STOP 7
#define FX_LOOPER_PARAM_ID_LOOP_LEN_S 8
#define FX_LOOPER_PARAM_ID_LOOP_LEN_S_SET 9
/*********************************************************
* OSCILLATOR
********************************************************/
// Parameters
#define FX_OSCILLATOR_PARAM_ID_ENABLED 0
#define FX_OSCILLATOR_PARAM_ID_FREQ 1
#define FX_OSCILLATOR_PARAM_ID_AMP 2
#define FX_OSCILLATOR_PARAM_ID_OFFSET 3
#define FX_OSCILLATOR_PARAM_ID_TYPE 4
#define FX_OSCILLATOR_PARAM_ID_OSC_PARAM1 5
#define FX_OSCILLATOR_PARAM_ID_OSC_PARAM2 6
#define FX_OSCILLATOR_PARAM_ID_OSC_INITIAL_PHASE 7
#define FX_OSCILLATOR_PARAM_ID_FM_OSC_TYPE 8
#define FX_OSCILLATOR_PARAM_ID_FM_DEPTH 9
#define FX_OSCILLATOR_PARAM_ID_FM_FREQ_RATIO 10
#define FX_OSCILLATOR_PARAM_ID_OSC_CTRL_VAL 11
// Offsets
#define FX_OSCILLATOR_PARAM_OFFSET_OFFSET_EN 0
#define FX_OSCILLATOR_PARAM_OFFSET_FREQ 1
#define FX_OSCILLATOR_PARAM_OFFSET_AMP 3
#define FX_OSCILLATOR_PARAM_OFFSET_OFFSET 5
#define FX_OSCILLATOR_PARAM_OFFSET_TYPE 7
#define FX_OSCILLATOR_PARAM_OFFSET_OSC_PARAM1 8
#define FX_OSCILLATOR_PARAM_OFFSET_OSC_PARAM2 10
#define FX_OSCILLATOR_PARAM_OFFSET_OSC_INITIAL_PHASE 12
#define FX_OSCILLATOR_PARAM_OFFSET_FM_OSC_TYPE 14
#define FX_OSCILLATOR_PARAM_OFFSET_FM_DEPTH 15
#define FX_OSCILLATOR_PARAM_OFFSET_FM_FREQ_RATIO 17
/*********************************************************
* PHASE SHIFTER
********************************************************/
// Parameters
#define FX_PHASE_SHIFTER_PARAM_ID_ENABLED 0
#define FX_PHASE_SHIFTER_PARAM_ID_RATE_HZ 1
#define FX_PHASE_SHIFTER_PARAM_ID_DEPTH 2
#define FX_PHASE_SHIFTER_PARAM_ID_FEEDBACK 3
#define FX_PHASE_SHIFTER_PARAM_ID_INITIAL_PHASE 4
#define FX_PHASE_SHIFTER_PARAM_ID_MOD_TYPE 5
#define FX_PHASE_SHIFTER_PARAM_ID_POLE_POS_0 6
#define FX_PHASE_SHIFTER_PARAM_ID_POLE_POS_1 7
#define FX_PHASE_SHIFTER_PARAM_ID_POLE_POS_2 8
#define FX_PHASE_SHIFTER_PARAM_ID_POLE_POS_3 9
#define FX_PHASE_SHIFTER_PARAM_ID_POLE_RNG_0 10
#define FX_PHASE_SHIFTER_PARAM_ID_POLE_RNG_1 11
#define FX_PHASE_SHIFTER_PARAM_ID_POLE_RNG_2 12
#define FX_PHASE_SHIFTER_PARAM_ID_POLE_RNG_3 13
// Offsets
#define FX_PHASE_SHIFTER_PARAM_OFFSET_EN 0
#define FX_PHASE_SHIFTER_PARAM_OFFSET_RATE_HZ 1
#define FX_PHASE_SHIFTER_PARAM_OFFSET_DEPTH 3
#define FX_PHASE_SHIFTER_PARAM_OFFSET_FEEDBACK 5
#define FX_PHASE_SHIFTER_PARAM_OFFSET_INITIAL_PHASE 7
#define FX_PHASE_SHIFTER_PARAM_OFFSET_MOD_TYPE 9
/*********************************************************
* PITCH SHIFTER
********************************************************/
// Parameters
#define FX_PITCH_SHIFT_PARAM_ID_ENABLED 0
#define FX_PITCH_SHIFT_PARAM_ID_FREQ_SHIFT 1
// Offsets
#define FX_PITCH_SHIFT_PARAM_OFFSET_OFFSET_EN 0
#define FX_PITCH_SHIFT_PARAM_OFFSET_FREQ_SHIFT 1
/*********************************************************
* RING MODULATOR
********************************************************/
// Parameters
#define FX_RING_MOD_PARAM_ID_ENABLED 0
#define FX_RING_MOD_PARAM_ID_FREQ 1
#define FX_RING_MOD_PARAM_ID_DEPTH 2
#define FX_RING_MOD_PARAM_ID_EN_FILTER 3
// Offsets
#define FX_RING_MOD_PARAM_OFFSET_OFFSET_EN 0
#define FX_RING_MOD_PARAM_OFFSET_FREQ 1
#define FX_RING_MOD_PARAM_OFFSET_DEPTH 3
#define FX_RING_MOD_PARAM_OFFSET_EN_FILTER 5
/*********************************************************
* SLICER
********************************************************/
// Parameters
#define FX_SLICER_PARAM_ID_ENABLED 0
#define FX_SLICER_PARAM_ID_PERIOD 1
#define FX_SLICER_PARAM_ID_CHANNELS 2
#define FX_SLICER_PARAM_ID_START 3
// Offsets
#define FX_SLICER_PARAM_OFFSET_EN 0
#define FX_SLICER_PARAM_OFFSET_PERIOD 1
#define FX_SLICER_PARAM_OFFSET_CHANNELS 3
/*********************************************************
* SPECTRALIZER
********************************************************/
// Parameters
#define FX_SPECTRALIZER_PARAM_OFFSET_OFFSET_EN 0
#define FX_SPECTRALIZER_PARAM_OFFSET_FREQ_SHIFT_1 1
#define FX_SPECTRALIZER_PARAM_OFFSET_FREQ_SHIFT_2 3
#define FX_SPECTRALIZER_PARAM_OFFSET_VOL_1 5
#define FX_SPECTRALIZER_PARAM_OFFSET_VOL_2 7
#define FX_SPECTRALIZER_PARAM_OFFSET_VOL_CLEAN 9
// Offsets
#define FX_SPECTRALIZER_PARAM_ID_ENABLED 0
#define FX_SPECTRALIZER_PARAM_ID_FREQ_SHIFT_1 1
#define FX_SPECTRALIZER_PARAM_ID_FREQ_SHIFT_2 2
#define FX_SPECTRALIZER_PARAM_ID_VOL_1 3
#define FX_SPECTRALIZER_PARAM_ID_VOL_2 4
#define FX_SPECTRALIZER_PARAM_ID_VOL_CLEAN 5
/*********************************************************
* VARIABLE DELAY
********************************************************/
// Parameters
#define FX_VAR_DELAY_PARAM_ID_ENABLED 0
#define FX_VAR_DELAY_PARAM_ID_MOD_FREQ 1
#define FX_VAR_DELAY_PARAM_ID_MOD_DEPTH 2
#define FX_VAR_DELAY_PARAM_ID_MOD_PHASE 3
#define FX_VAR_DELAY_PARAM_ID_FEEDBACK 4
#define FX_VAR_DELAY_PARAM_ID_MOD_TYPE 5
#define FX_VAR_DELAY_PARAM_ID_EXT_MOD 6
#define FX_VAR_DELAY_PARAM_ID_DELAY_LEN_MS 7
#define FX_VAR_DELAY_PARAM_ID_MIX_CLEAN 8
#define FX_VAR_DELAY_PARAM_ID_MIX_DELAYED 9
// Offsets
#define FX_VAR_DELAY_OFFSET_ENABLED 0
#define FX_VAR_DELAY_OFFSET_MOD_FREQ 1
#define FX_VAR_DELAY_OFFSET_MOD_DEPTH 3
#define FX_VAR_DELAY_OFFSET_MOD_PHASE 5
#define FX_VAR_DELAY_OFFSET_FEEDBACK 7
#define FX_VAR_DELAY_OFFSET_MOD_TYPE 9
#define FX_VAR_DELAY_OFFSET_EXT_MOD 10
#define FX_VAR_DELAY_OFFSET_DELAY_LEN_MS 11
#define FX_VAR_DELAY_OFFSET_MIX_CLEAN 13
#define FX_VAR_DELAY_OFFSET_MIX_DELAYED 15
#endif // DOXYGEN_SHOULD_SKIP_THIS
#endif /* AFX_FRAMEWORK_EFFECTS_DMFX_EFFECTS_DEFINES_H_ */