Hi @npauli,
It’s correct that parameter names are BA-BD in source code. Here’s what I’ve used for testing:
#ifndef __TestUpper_h__
#define __TestUpper_h__
#include "Patch.h"
#include "SineOscillator.h"
class TestUpperPatch : public Patch {
public:
SineOscillator lfo;
TestUpperPatch() {
registerParameter(PARAMETER_A, "Frequency");
registerParameter(PARAMETER_B, "Out1>");
registerParameter(PARAMETER_BA, "Out2>");
registerParameter(PARAMETER_BB, "Nothing>");
}
void processAudio(AudioBuffer &buffer){
float freq = 10 + getParameterValue(PARAMETER_A) * 5;
lfo.setFrequency(freq);
float val = lfo.getNextSample() * 0.5f + 0.5f;
setParameterValue(PARAMETER_B, val);
setParameterValue(PARAMETER_BA, val);
}
};
#endif
I’ve confirmed that it works. As for quick access via left encoder menu, it only works when there’s a registered parameter. So in this case you can use R (which is actually BB) labeled as “Nothing>”, but not S. I think it works like that because by default parameters are inputs.
Also, generally it’s easier to use other patch methods for setting variables, i.e. .getIntParameter(), .getFloatParameter(). This lets you create a variable bound to parameter using scaling to specific range and smoothing.