Skip to content

Commit fcda8e3

Browse files
author
Martin Klang
committed
set initial parameter values
1 parent 94c9f2d commit fcda8e3

1 file changed

Lines changed: 12 additions & 8 deletions

File tree

Maximilian/MaximilianPatch.hpp

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,13 @@
44
#include "Patch.h"
55
#include "maximilian.h"
66

7-
static maxiParam* maxiParameters[8];
7+
#define MAX_MAXIPARAMS 20
8+
static maxiParam* maxiParameters[MAX_MAXIPARAMS];
89
static unsigned int maxiParameterCount = 0;
910
maxiParam::maxiParam() : value(0.5), minValue(0.0), maxValue(1.0),
10-
name(NULL), pid(maxiParameterCount++){
11-
if(pid < 8)
12-
maxiParameters[pid] = this;
11+
name(NULL), pid(maxiParameterCount){
12+
if(maxiParameterCount < MAX_MAXIPARAMS)
13+
maxiParameters[maxiParameterCount++] = this;
1314
}
1415

1516
void maxiParam::update(double v){
@@ -32,22 +33,25 @@ class MaximilianPatch : public Patch {
3233
maxiSettings::bufferSize = getBlockSize();
3334
setup();
3435
char name[] = "A";
35-
maxiParameterCount = std::min(7u, maxiParameterCount);
36-
for(int i=0; i<maxiParameterCount; ++i){
36+
for(size_t i=0; i<maxiParameterCount; ++i){
3737
if(maxiParameters[i]->name == NULL){
3838
name[0] = 'A'+maxiParameters[i]->pid;
3939
registerParameter((PatchParameterId)(maxiParameters[i]->pid), name);
4040
}else{
4141
registerParameter((PatchParameterId)(maxiParameters[i]->pid), maxiParameters[i]->name);
4242
}
43+
float min = maxiParameters[i]->minValue;
44+
float max = maxiParameters[i]->maxValue;
45+
float value = (maxiParameters[i]->value - min)/(max-min);
46+
setParameterValue((PatchParameterId)(maxiParameters[i]->pid), value);
4347
}
4448
}
4549
void processAudio(AudioBuffer &buffer) {
4650
float* left = buffer.getSamples(LEFT_CHANNEL);
4751
float* right = buffer.getSamples(RIGHT_CHANNEL);
48-
for(int i=0; i<maxiParameterCount; ++i)
52+
for(size_t i=0; i<maxiParameterCount; ++i)
4953
maxiParameters[i]->update(getParameterValue((PatchParameterId)(maxiParameters[i]->pid)));
50-
for(int i=0; i<buffer.getSize(); ++i){
54+
for(size_t i=0; i<buffer.getSize(); ++i){
5155
play(output);
5256
left[i] = output[0];
5357
right[i] = output[1];

0 commit comments

Comments
 (0)