Skip to content

Instantly share code, notes, and snippets.

@olilarkin
Created May 7, 2023 16:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save olilarkin/469f860f5fa07a9429b73d9e27836d25 to your computer and use it in GitHub Desktop.
Save olilarkin/469f860f5fa07a9429b73d9e27836d25 to your computer and use it in GitHub Desktop.
iPlug2 repeated params
...
const char[32] group;
const char[32] buf;
for (int i = 0; i< kNumLFOs; i++)
{
sprintf(group, "LFO %i", i+1);
int offs = kFilterParamsEnd + (i*kNumLFOParams);
sprintf(buf, "LFO%i Rate Hz", i+1);
GetParam(kLFORateHz+offs)->InitDouble(buf, 0.1, MIN_LFO_FREQ_CPS , MAX_LFO_FREQ_CPS, 0.001, "Hz", 0, group, IParam::ShapePowCurve(LFO_FREQ_SHAPE));
sprintf(buf, "LFO%i Rate Beats", i+1);
GetParam(kLFOSyncRate+offs)->InitEnum(buf, TempoDivTable::k1, TempoDivTable::kNumDivisions, "", 0, group);
for (int j=0; j<TempoDivTable::kNumDivisions;j++) GP(kLFOSyncRate+offs)->SetDisplayText(j, TempoDivTable::getDisplay(j) );
sprintf(buf, "LFO%i Rate Mode", i+1);
GetParam(kLFORateMode+offs)->InitEnum(buf, 1, 2, "", 0, group);
GetParam(kLFORateMode+offs)->SetDisplayText(0, "hz");
GetParam(kLFORateMode+offs)->SetDisplayText(1, "beats");
...
}
...
const int kNumOscillators = 3;
const int kNumFilters = 2;
const int kNumLFOs = 2;
enum EOscillatorParams
{
kPitch = 0,
kDetune,
kWaveform,
kNumOscillatorParams
};
const int kOscillatorParamsEnd = (kNumOscillatorParams * kNumOscillators);
enum EFilterParams
{
kFreq = 0,
kResonance,
kType,
kNumFilterParams
};
const int kFilterParamsEnd = kOscillatorParamsEnd + (kNumFilterParams * kNumFilters);
enum ELFOParams
{
kLFOEnable = 0,
kLFORateHz,
kLFOSyncRate,
kLFORateMode,
kLFOTrigMode,
kLFOPhaseOffset,
kLFODepth,
kLFOShape,
kNumLFOParams
};
const int kLFOParamsEnd = kFilterParamsEnd + (kNumLFOParams * kNumLFOs);
const int kNumParams = kLFOParamsEnd;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment