20#include "definitions_cxx.hpp"
21#include "modulation/params/param_descriptor.h"
74 LOCAL_MODULATOR_0_VOLUME,
75 LOCAL_MODULATOR_1_VOLUME,
79 FIRST_LOCAL_NON_VOLUME,
80 LOCAL_MODULATOR_0_FEEDBACK = FIRST_LOCAL_NON_VOLUME,
81 LOCAL_MODULATOR_1_FEEDBACK,
82 LOCAL_CARRIER_0_FEEDBACK,
83 LOCAL_CARRIER_1_FEEDBACK,
95 LOCAL_OSC_A_PHASE_WIDTH = FIRST_LOCAL__HYBRID,
96 LOCAL_OSC_B_PHASE_WIDTH,
97 LOCAL_OSC_A_WAVE_INDEX,
98 LOCAL_OSC_B_WAVE_INDEX,
103 LOCAL_LPF_FREQ = FIRST_LOCAL_EXP,
105 LOCAL_OSC_A_PITCH_ADJUST,
106 LOCAL_OSC_B_PITCH_ADJUST,
107 LOCAL_MODULATOR_0_PITCH_ADJUST,
108 LOCAL_MODULATOR_1_PITCH_ADJUST,
110 LOCAL_LFO_LOCAL_FREQ_1,
111 LOCAL_LFO_LOCAL_FREQ_2,
134 GLOBAL_VOLUME_POST_FX = FIRST_GLOBAL,
135 GLOBAL_VOLUME_POST_REVERB_SEND,
136 GLOBAL_REVERB_AMOUNT,
140 FIRST_GLOBAL_NON_VOLUME,
141 GLOBAL_DELAY_FEEDBACK = FIRST_GLOBAL_NON_VOLUME,
150 FIRST_GLOBAL_EXP = FIRST_GLOBAL_HYBRID,
151 GLOBAL_DELAY_RATE = FIRST_GLOBAL_EXP,
166static_assert(util::to_underlying(
PLACEHOLDER_RANGE) > util::to_underlying(GLOBAL_NONE),
167 "RANGE placeholder collides with global params");
178 UNPATCHED_STUTTER_RATE,
182 UNPATCHED_TREBLE_FREQ,
183 UNPATCHED_SAMPLE_RATE_REDUCTION,
184 UNPATCHED_BITCRUSHING,
185 UNPATCHED_MOD_FX_OFFSET,
186 UNPATCHED_MOD_FX_FEEDBACK,
187 UNPATCHED_SIDECHAIN_SHAPE,
188 UNPATCHED_COMPRESSOR_THRESHOLD,
190 UNPATCHED_FIRST_ARP_PARAM,
191 UNPATCHED_ARP_GATE = UNPATCHED_FIRST_ARP_PARAM,
192 UNPATCHED_ARP_RHYTHM,
193 UNPATCHED_ARP_SEQUENCE_LENGTH,
194 UNPATCHED_ARP_CHORD_POLYPHONY,
195 UNPATCHED_ARP_RATCHET_AMOUNT,
196 UNPATCHED_NOTE_PROBABILITY,
197 UNPATCHED_REVERSE_PROBABILITY,
198 UNPATCHED_ARP_BASS_PROBABILITY,
199 UNPATCHED_ARP_CHORD_PROBABILITY,
200 UNPATCHED_ARP_RATCHET_PROBABILITY,
201 UNPATCHED_ARP_SPREAD_GATE,
202 UNPATCHED_ARP_SPREAD_OCTAVE,
203 UNPATCHED_SPREAD_VELOCITY,
204 UNPATCHED_LAST_ARP_PARAM,
212 UNPATCHED_SOUND_MAX_NUM,
218 UNPATCHED_MOD_FX_DEPTH,
219 UNPATCHED_DELAY_RATE,
220 UNPATCHED_DELAY_AMOUNT,
229 UNPATCHED_REVERB_SEND_AMOUNT,
231 UNPATCHED_SIDECHAIN_VOLUME,
232 UNPATCHED_PITCH_ADJUST,
234 UNPATCHED_GLOBAL_MAX_NUM,
237constexpr ParamType STATIC_START = 162;
239enum Static : ParamType {
240 STATIC_SIDECHAIN_ATTACK = STATIC_START,
241 STATIC_SIDECHAIN_RELEASE,
244 STATIC_SIDECHAIN_VOLUME,
252constexpr ParamType kMaxNumUnpatchedParams =
253 std::max<ParamType>(util::to_underlying(UNPATCHED_GLOBAL_MAX_NUM), util::to_underlying(UNPATCHED_SOUND_MAX_NUM));
260static_assert(kMaxNumUnpatchedParams < STATIC_START,
"Error: Too many UNPATCHED parameters, (collision with STATIC)");
262bool isParamBipolar(
Kind kind, int32_t paramID);
263bool isParamPan(
Kind kind, int32_t paramID);
264bool isParamPitch(
Kind kind, int32_t paramID);
265bool isParamPitchBend(
Kind kind, int32_t paramID);
266bool isParamArpRhythm(
Kind kind, int32_t paramID);
267bool isParamStutter(
Kind kind, int32_t paramID);
270bool isVibratoPatchCableShortcut(int32_t xDisplay, int32_t yDisplay);
271bool isSidechainPatchCableShortcut(int32_t xDisplay, int32_t yDisplay);
272bool isPatchCableShortcut(int32_t xDisplay, int32_t yDisplay);
273void getPatchCableFromShortcut(int32_t xDisplay, int32_t yDisplay,
ParamDescriptor* paramDescriptor);
275char const* getPatchedParamDisplayName(int32_t p);
278char const* getParamDisplayName(
Kind kind, int32_t p);
280bool paramNeedsLPF(
ParamType p,
bool fromAutomation);
304 {LOCAL_OSC_A_VOLUME , LOCAL_OSC_A_PITCH_ADJUST ,
kNoParamID , LOCAL_OSC_A_PHASE_WIDTH,
kNoParamID , LOCAL_CARRIER_0_FEEDBACK , LOCAL_OSC_A_WAVE_INDEX, LOCAL_NOISE_VOLUME},
305 {LOCAL_OSC_B_VOLUME , LOCAL_OSC_B_PITCH_ADJUST ,
kNoParamID , LOCAL_OSC_B_PHASE_WIDTH,
kNoParamID , LOCAL_CARRIER_1_FEEDBACK , LOCAL_OSC_B_WAVE_INDEX,
kNoParamID},
310 {LOCAL_ENV_0_RELEASE , LOCAL_ENV_0_SUSTAIN , LOCAL_ENV_0_DECAY , LOCAL_ENV_0_ATTACK , LOCAL_LPF_MORPH,
kNoParamID , LOCAL_LPF_RESONANCE , LOCAL_LPF_FREQ},
311 {LOCAL_ENV_1_RELEASE , LOCAL_ENV_1_SUSTAIN , LOCAL_ENV_1_DECAY , LOCAL_ENV_1_ATTACK , LOCAL_HPF_MORPH,
kNoParamID , LOCAL_HPF_RESONANCE , LOCAL_HPF_FREQ},
354 {UNPATCHED_VOLUME , UNPATCHED_PITCH_ADJUST,
kNoParamID , UNPATCHED_PAN ,
kNoParamID , UNPATCHED_SAMPLE_RATE_REDUCTION, UNPATCHED_BITCRUSHING ,
kNoParamID},
366uint32_t expressionParamFromShortcut(
int x,
int y);
Definition mod_controllable_audio.h:47
Definition param_descriptor.h:27
UnpatchedGlobal
Just for GlobalEffectables.
Definition param.h:216
Global
Definition param.h:131
ParamType fileStringToParam(Kind kind, char const *name, bool allowPatched)
Definition param.cpp:704
const uint32_t unpatchedNonGlobalParamShortcuts[kDisplayWidth][kDisplayHeight]
Definition param.h:324
const uint32_t patchedParamShortcuts[kDisplayWidth][kDisplayHeight]
Definition param.h:301
uint8_t ParamType
Definition param.h:65
const uint32_t unpatchedGlobalParamShortcuts[kDisplayWidth][kDisplayHeight]
Definition param.h:347
char const * paramNameForFile(Kind const kind, ParamType const param)
Definition param.cpp:687
constexpr ParamType PATCH_CABLE
Special case for representing patch cables.
Definition param.h:248
Kind
Definition param.h:42
@ UNPATCHED_SOUND
Parameters which apply to the internal sound engine specifically.
Definition param.h:48
@ MIDI
Internal representation for MIDI CCs.
Definition param.h:54
@ PATCHED
Voice-local parameters which can be modulated via the mod matrix.
Definition param.h:46
@ UNPATCHED_GLOBAL
Parameters which can not be modulated and apply to the whole Output.
Definition param.h:50
@ EXPRESSION
Parameter connected to an MPE expression axis.
Definition param.h:58
@ STATIC
Unused.
Definition param.h:52
constexpr ParamType kUnpatchedAndPatchedMaximum
Definition param.h:258
UnpatchedSound
Unpatched params which are only used for Sounds.
Definition param.h:210
constexpr ParamType kNumParams
None is the last global param, 0 indexed so it's also the number of patched params.
Definition param.h:251
Placeholder
Fake param IDs for use when loading old presets.
Definition param.h:161
@ PLACEHOLDER_RANGE
Not a real param. For the purpose of reading old files from before V3.2.0.
Definition param.h:163
constexpr uint32_t kNoParamID
Magic number which represents an invalid or missing param type.
Definition param.h:296
Local
"Local" patched params, which apply to individual voices within the sound
Definition param.h:68
@ LOCAL_LAST
Special value used to chain in to the Global params.
Definition param.h:126
constexpr ParamType UNPATCHED_START
Definition param.h:171
UnpatchedShared
Definition param.h:177
@ UNPATCHED_NUM_SHARED
Special value for chaining the UNPATCHED_* params.
Definition param.h:206
char const * getPatchedParamShortName(ParamType type)
Get the short version of a param name, for use in the OLED mod matrix display (maximum 10 characters)
Definition param.cpp:111