Skip to content

Commit d73deb6

Browse files
Implement VCA as a generator.
1 parent 0c58807 commit d73deb6

4 files changed

Lines changed: 40 additions & 13 deletions

File tree

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
TARGET = olearia
22

3-
CPP_SOURCES = src/Olearia.cpp src/Osc.cpp src/Noise.cpp src/LPFilter.cpp
3+
CPP_SOURCES = src/Olearia.cpp src/Amp.cpp src/Osc.cpp src/Noise.cpp src/LPFilter.cpp
44

55
LIBDAISY_DIR = ./libDaisy
66
SYSTEM_FILES_DIR = $(LIBDAISY_DIR)/core

src/Amp.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#include "Amp.hpp"
2+
3+
void Amp::Init(float sample_rate) {
4+
// do nothing here.
5+
}
6+
7+
void Amp::Control(float in) {
8+
amp_ = in;
9+
}
10+
11+
float Amp::Process(float in) {
12+
return in * amp_;
13+
}

src/Amp.hpp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#ifndef GENERATOR_
2+
#define GENERATOR_
3+
#include "Generator.hpp"
4+
#endif
5+
6+
#ifndef VCA_H
7+
#define VCA_H
8+
9+
class Amp: public Generator {
10+
public:
11+
void Init(float sample_rate);
12+
void Control(float in);
13+
float Process(float in);
14+
private:
15+
float amp_;
16+
};
17+
18+
19+
#endif

src/Olearia.cpp

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,14 @@
88
#include "Generator.hpp"
99
#endif
1010

11+
// import generators
12+
#include "Amp.hpp"
1113
#include "Osc.hpp"
1214
#include "Noise.hpp"
1315
#include "LPFilter.hpp"
1416

1517
#define BUFF_SIZE 16
1618

17-
//constexpr float TWO_PI_F = (float)M_TWOPI;
18-
//constexpr float TWO_PI_RECIP = 1.0f / TWO_PI_F;
19-
2019
using namespace daisy;
2120

2221
static uint32_t DSY_QSPI_BSS buff[BUFF_SIZE];
@@ -58,6 +57,9 @@ class Applet {
5857

5958
void Init() {
6059
switch (app) {
60+
case App::VCA:
61+
gen = new Amp();
62+
break;
6163
case App::VCO:
6264
gen = new Osc();
6365
break;
@@ -68,10 +70,7 @@ class Applet {
6870
gen = new LPFilter();
6971
break;
7072
default:
71-
gen = new Osc();
72-
gen->Init(sample_rate);
73-
return;
74-
//gen = new Osc();
73+
gen = new Amp();
7574
break;
7675
}
7776
gen->Init(sample_rate);
@@ -145,11 +144,7 @@ static void AudioThrough(float **in, float **out, size_t size) {
145144
for (int a = 0; a < 4; a++) {
146145
applets[a].gen->Control(controls[a]);
147146
for (size_t i = 0; i < size; i++) {
148-
if (applets[a].app == App::VCA) {
149-
out[a][i] = in[a][i] * controls[a];
150-
} else {
151-
out[a][i] = applets[a].gen->Process(in[a][i]);
152-
}
147+
out[a][i] = applets[a].gen->Process(in[a][i]);
153148
}
154149
}
155150

0 commit comments

Comments
 (0)