commit e3bf586c3083f50c2461b9b9ce520ff2b4149da4
parent 3e6ed42e16a0244c2f0dfd51f4a37f693e3202fe
Author: Isabel <isabelgk@users.noreply.github.com>
Date: Sun, 2 May 2021 21:02:03 -0500
Clean up bufsize handling a bit (#3)
Diffstat:
M | src/gigaverb.cpp | | | 34 | ++++++++++++++++++++++++---------- |
M | tester.vcv | | | 475 | +++++++++++++++++++++++-------------------------------------------------------- |
2 files changed, 159 insertions(+), 350 deletions(-)
diff --git a/src/gigaverb.cpp b/src/gigaverb.cpp
@@ -8,19 +8,18 @@ struct Gigaverb : Module {
CommonState *moduleState;
t_sample **inputBuffers; // access like: buffer[input #][sample #]
t_sample **outputBuffers;
- int currentBufferSize = 1;
+ int currentBufferSize = 256;
int numParams;
int numInputs;
int numOutputs;
int count = 0;
- int bufSize = 256;
Gigaverb() {
// Set default sample rate of 44100 Hz and vector size 1 (VCV uses single sample processing)
// and update it later if needed
- moduleState = (CommonState *)gigaverb::create(44100, bufSize);
+ moduleState = (CommonState *)gigaverb::create(44100, currentBufferSize);
gigaverb::reset(moduleState);
numParams = gigaverb::num_params();
@@ -30,15 +29,14 @@ struct Gigaverb : Module {
// Initialize sample buffers
inputBuffers = new t_sample *[numInputs];
for (int i = 0; i < numInputs; i++) {
- inputBuffers[i] = NULL;
+ inputBuffers[i] = new t_sample[currentBufferSize];
}
outputBuffers = new t_sample *[numOutputs];
for (int i = 0; i < numOutputs; i++) {
- outputBuffers[i] = NULL;
+ outputBuffers[i] = new t_sample[currentBufferSize];
}
- assureBufferSize(bufSize);
// Configure parameters
config(numParams, numInputs + numParams, numOutputs, 0);
@@ -55,8 +53,24 @@ struct Gigaverb : Module {
}
}
+
~Gigaverb() {
gigaverb::destroy(moduleState);
+ deleteBuffers();
+ }
+
+ void deleteBuffers() {
+ for (int i = 0; i < numInputs; i++) {
+ if (inputBuffers[i]) {
+ delete inputBuffers[i];
+ }
+ }
+
+ for (int i = 0; i < numOutputs; i++) {
+ if (outputBuffers[i]) {
+ delete outputBuffers[i];
+ }
+ }
}
@@ -81,10 +95,10 @@ struct Gigaverb : Module {
void process(const ProcessArgs& args) override {
- if (count >= bufSize) {
+ if (count >= currentBufferSize) {
count = 0;
}
-
+
// Fill inputs
for (int i = 0; i < numInputs; i++) {
if (inputs[i].isConnected()) {
@@ -104,7 +118,7 @@ struct Gigaverb : Module {
count++;
// Perform when we've filled the buffer
- if (count == bufSize) {
+ if (count == currentBufferSize) {
// Update any parameters
for (int i = 0; i < numParams; i++) {
// Get VCV inputs
@@ -121,7 +135,7 @@ struct Gigaverb : Module {
}
// Fill the buffers
- gigaverb::perform(moduleState, inputBuffers, numInputs, outputBuffers, numOutputs, bufSize);
+ gigaverb::perform(moduleState, inputBuffers, numInputs, outputBuffers, numOutputs, currentBufferSize);
}
}
};
diff --git a/tester.vcv b/tester.vcv
@@ -7,7 +7,7 @@
"version": "1.1.6",
"model": "AudioInterface",
"params": [],
- "leftModuleId": 2,
+ "leftModuleId": 3,
"data": {
"audio": {
"driver": 6,
@@ -19,40 +19,53 @@
}
},
"pos": [
- 82,
+ 57,
0
]
},
{
"id": 2,
- "plugin": "Fundamental",
- "version": "1.4.0",
- "model": "VCMixer",
+ "plugin": "gen-rack",
+ "version": "1.0.0-beta",
+ "model": "gigaverb",
"params": [
{
"id": 0,
- "value": 1.0
+ "value": 0.595500171
},
{
"id": 1,
- "value": 0.724228442
+ "value": 0.607499957
},
{
"id": 2,
- "value": 1.0
+ "value": 0.606000006
},
{
"id": 3,
- "value": 1.0
+ "value": 0.259499997
},
{
"id": 4,
- "value": 1.0
+ "value": 0.411849946
+ },
+ {
+ "id": 5,
+ "value": 189.036957
+ },
+ {
+ "id": 6,
+ "value": 53.1000023
+ },
+ {
+ "id": 7,
+ "value": 0.153000012
}
],
- "rightModuleId": 1,
+ "leftModuleId": 8,
+ "rightModuleId": 3,
"pos": [
- 72,
+ 33,
0
]
},
@@ -60,50 +73,57 @@
"id": 3,
"plugin": "Fundamental",
"version": "1.4.0",
- "model": "ADSR",
+ "model": "VCMixer",
"params": [
{
"id": 0,
- "value": 0.138000011
+ "value": 1.0
},
{
"id": 1,
- "value": 0.413000196
+ "value": 1.0
},
{
"id": 2,
- "value": 0.127499998
+ "value": 1.0
},
{
"id": 3,
- "value": 0.108499952
+ "value": 1.0
+ },
+ {
+ "id": 4,
+ "value": 1.0
}
],
- "leftModuleId": 5,
- "rightModuleId": 4,
+ "leftModuleId": 2,
+ "rightModuleId": 1,
"pos": [
- 41,
+ 47,
0
]
},
{
"id": 4,
- "plugin": "Fundamental",
- "version": "1.4.0",
- "model": "VCA-1",
- "params": [
- {
- "id": 0,
- "value": 1.0
- },
- {
- "id": 1,
- "value": 1.0
+ "plugin": "Core",
+ "version": "1.1.6",
+ "model": "MIDIToCVInterface",
+ "params": [],
+ "rightModuleId": 5,
+ "data": {
+ "channels": 1,
+ "polyMode": 0,
+ "clockDivision": 24,
+ "lastPitch": 8192,
+ "lastMod": 0,
+ "midi": {
+ "driver": -11,
+ "deviceName": "QWERTY keyboard (US)",
+ "channel": -1
}
- ],
- "leftModuleId": 3,
+ },
"pos": [
- 49,
+ 0,
0
]
},
@@ -111,7 +131,7 @@
"id": 5,
"plugin": "Fundamental",
"version": "1.4.0",
- "model": "VCO",
+ "model": "VCO2",
"params": [
{
"id": 0,
@@ -127,33 +147,47 @@
},
{
"id": 3,
- "value": 0.0
+ "value": 2.98950028
},
{
"id": 4,
- "value": 0.0
- },
+ "value": 1.0
+ }
+ ],
+ "leftModuleId": 4,
+ "rightModuleId": 7,
+ "pos": [
+ 8,
+ 0
+ ]
+ },
+ {
+ "id": 6,
+ "plugin": "Fundamental",
+ "version": "1.4.0",
+ "model": "VCA-1",
+ "params": [
{
- "id": 5,
- "value": 0.5
+ "id": 0,
+ "value": 1.0
},
{
- "id": 6,
- "value": 0.0
+ "id": 1,
+ "value": 1.0
}
],
- "leftModuleId": 10,
- "rightModuleId": 3,
+ "leftModuleId": 7,
+ "rightModuleId": 8,
"pos": [
- 31,
+ 22,
0
]
},
{
- "id": 8,
- "plugin": "gen-rack",
- "version": "1.0.0-beta",
- "model": "gigaverb",
+ "id": 7,
+ "plugin": "Fundamental",
+ "version": "1.4.0",
+ "model": "ADSR",
"params": [
{
"id": 0,
@@ -161,47 +195,33 @@
},
{
"id": 1,
- "value": 0.0
+ "value": 0.5
},
{
"id": 2,
- "value": 0.0
+ "value": 0.199500024
},
{
"id": 3,
- "value": 0.0
- },
- {
- "id": 4,
- "value": 0.216099918
- },
- {
- "id": 5,
- "value": 68.927002
- },
- {
- "id": 6,
- "value": 100.0
- },
- {
- "id": 7,
- "value": 0.403499871
+ "value": 0.5
}
],
+ "leftModuleId": 5,
+ "rightModuleId": 6,
"pos": [
- 55,
+ 14,
0
]
},
{
- "id": 9,
+ "id": 8,
"plugin": "Fundamental",
"version": "1.4.0",
- "model": "SEQ3",
+ "model": "8vert",
"params": [
{
"id": 0,
- "value": 2.61199975
+ "value": 0.0
},
{
"id": 1,
@@ -213,336 +233,111 @@
},
{
"id": 3,
- "value": 7.0
- },
- {
- "id": 4,
- "value": 7.22494173
- },
- {
- "id": 5,
- "value": 4.87395954
- },
- {
- "id": 6,
- "value": 3.30422854
- },
- {
- "id": 7,
- "value": 5.75982285
- },
- {
- "id": 8,
- "value": 4.92545319
- },
- {
- "id": 9,
- "value": 5.74699831
- },
- {
- "id": 10,
- "value": 5.25032616
- },
- {
- "id": 11,
- "value": 3.90549183
- },
- {
- "id": 12,
- "value": 2.8158772
- },
- {
- "id": 13,
- "value": 9.76687908
- },
- {
- "id": 14,
- "value": 8.1625042
- },
- {
- "id": 15,
- "value": 8.75809765
- },
- {
- "id": 16,
- "value": 6.81201029
- },
- {
- "id": 17,
- "value": 7.65390301
- },
- {
- "id": 18,
- "value": 1.54938221
- },
- {
- "id": 19,
- "value": 2.17417288
- },
- {
- "id": 20,
- "value": 4.2208643
- },
- {
- "id": 21,
- "value": 4.4611454
- },
- {
- "id": 22,
- "value": 6.91076946
- },
- {
- "id": 23,
- "value": 9.43955231
- },
- {
- "id": 24,
- "value": 9.2564373
- },
- {
- "id": 25,
- "value": 3.44319296
- },
- {
- "id": 26,
- "value": 1.15675569
- },
- {
- "id": 27,
- "value": 2.71019936
- },
- {
- "id": 28,
- "value": 0.0
- },
- {
- "id": 29,
- "value": 0.0
- },
- {
- "id": 30,
- "value": 0.0
- },
- {
- "id": 31,
"value": 0.0
},
{
- "id": 32,
+ "id": 4,
"value": 0.0
},
{
- "id": 33,
+ "id": 5,
"value": 0.0
},
{
- "id": 34,
+ "id": 6,
"value": 0.0
},
{
- "id": 35,
+ "id": 7,
"value": 0.0
}
],
- "rightModuleId": 12,
- "data": {
- "running": true,
- "gates": [
- 1,
- 1,
- 0,
- 1,
- 1,
- 0,
- 1,
- 1
- ]
- },
- "pos": [
- 0,
- 0
- ]
- },
- {
- "id": 10,
- "plugin": "Fundamental",
- "version": "1.4.0",
- "model": "Quantizer",
- "params": [],
- "leftModuleId": 11,
- "rightModuleId": 5,
- "data": {
- "enabledNotes": [
- false,
- false,
- true,
- false,
- true,
- false,
- false,
- false,
- true,
- false,
- false,
- true
- ]
- },
- "pos": [
- 28,
- 0
- ]
- },
- {
- "id": 11,
- "plugin": "Fundamental",
- "version": "1.4.0",
- "model": "VCA-1",
- "params": [
- {
- "id": 0,
- "value": 0.137500048
- },
- {
- "id": 1,
- "value": 1.0
- }
- ],
- "leftModuleId": 12,
- "rightModuleId": 10,
+ "leftModuleId": 6,
+ "rightModuleId": 2,
"pos": [
25,
0
]
- },
- {
- "id": 12,
- "plugin": "Fundamental",
- "version": "1.4.0",
- "model": "SequentialSwitch2",
- "params": [
- {
- "id": 0,
- "value": 0.0
- }
- ],
- "leftModuleId": 9,
- "rightModuleId": 11,
- "pos": [
- 22,
- 0
- ]
}
],
"cables": [
{
- "id": 2,
- "outputModuleId": 2,
- "outputId": 0,
- "inputModuleId": 1,
- "inputId": 0,
- "color": "#01baef"
- },
- {
- "id": 3,
+ "id": 0,
"outputModuleId": 2,
"outputId": 0,
- "inputModuleId": 1,
+ "inputModuleId": 3,
"inputId": 1,
- "color": "#f5c079"
- },
- {
- "id": 7,
- "outputModuleId": 3,
- "outputId": 0,
- "inputModuleId": 4,
- "inputId": 0,
- "color": "#f5c079"
+ "color": "#918ae0"
},
{
- "id": 8,
- "outputModuleId": 5,
+ "id": 1,
+ "outputModuleId": 2,
"outputId": 1,
- "inputModuleId": 4,
- "inputId": 1,
+ "inputModuleId": 3,
+ "inputId": 2,
"color": "#88c478"
},
{
- "id": 13,
- "outputModuleId": 4,
+ "id": 2,
+ "outputModuleId": 6,
"outputId": 0,
- "inputModuleId": 8,
+ "inputModuleId": 2,
"inputId": 0,
- "color": "#f5c079"
+ "color": "#01baef"
},
{
- "id": 14,
- "outputModuleId": 8,
+ "id": 3,
+ "outputModuleId": 6,
"outputId": 0,
"inputModuleId": 2,
"inputId": 1,
- "color": "#918ae0"
- },
- {
- "id": 15,
- "outputModuleId": 11,
- "outputId": 0,
- "inputModuleId": 10,
- "inputId": 0,
- "color": "#88c478"
+ "color": "#f5c079"
},
{
- "id": 16,
- "outputModuleId": 10,
+ "id": 4,
+ "outputModuleId": 7,
"outputId": 0,
- "inputModuleId": 5,
+ "inputModuleId": 6,
"inputId": 0,
- "color": "#01baef"
- },
- {
- "id": 18,
- "outputModuleId": 9,
- "outputId": 0,
- "inputModuleId": 3,
- "inputId": 4,
"color": "#918ae0"
},
{
- "id": 19,
- "outputModuleId": 9,
+ "id": 5,
+ "outputModuleId": 4,
"outputId": 1,
- "inputModuleId": 12,
- "inputId": 2,
+ "inputModuleId": 7,
+ "inputId": 4,
"color": "#88c478"
},
{
- "id": 20,
- "outputModuleId": 9,
- "outputId": 2,
- "inputModuleId": 12,
- "inputId": 3,
+ "id": 6,
+ "outputModuleId": 4,
+ "outputId": 0,
+ "inputModuleId": 5,
+ "inputId": 0,
"color": "#01baef"
},
{
- "id": 21,
- "outputModuleId": 9,
- "outputId": 3,
- "inputModuleId": 12,
- "inputId": 4,
+ "id": 7,
+ "outputModuleId": 5,
+ "outputId": 0,
+ "inputModuleId": 6,
+ "inputId": 1,
"color": "#f5c079"
},
{
- "id": 22,
- "outputModuleId": 9,
+ "id": 8,
+ "outputModuleId": 3,
"outputId": 0,
- "inputModuleId": 12,
+ "inputModuleId": 1,
"inputId": 0,
"color": "#918ae0"
},
{
- "id": 23,
- "outputModuleId": 12,
+ "id": 9,
+ "outputModuleId": 3,
"outputId": 0,
- "inputModuleId": 11,
+ "inputModuleId": 1,
"inputId": 1,
"color": "#88c478"
}