Skip to content

Commit

Permalink
V0.9.17
Browse files Browse the repository at this point in the history
  • Loading branch information
ctag-fh-kiel committed May 25, 2021
1 parent a063694 commit eb830be
Show file tree
Hide file tree
Showing 15 changed files with 33 additions and 14 deletions.
Binary file modified bin/bootloader.bin
Binary file not shown.
Binary file modified bin/ctag-tbd.bin
Binary file not shown.
Binary file modified bin/storage.bin
Binary file not shown.
8 changes: 7 additions & 1 deletion components/ctagSoundProcessor/ctagSoundProcessorAntique.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
using namespace CTAG::SP;

void ctagSoundProcessorAntique::Process(const ProcessData &data) {
// dry buffer
float dry[32];
// input shaping
MK_FLT_PAR_ABS(fInputLevel, inplevel, 4095.f, 1.f)
fInputLevel *= fInputLevel;
Expand Down Expand Up @@ -114,6 +116,7 @@ void ctagSoundProcessorAntique::Process(const ProcessData &data) {
cl = clickFilter.Process<stmlib::FILTER_MODE_BAND_PASS>(cl);

// level + distort
dry[i] = data.buf[i * 2 + processCh];
data.buf[i * 2 + processCh] *= fInputLevel;
data.buf[i * 2 + processCh] = stmlib::SoftClip(data.buf[i * 2 + processCh] * fInputDistortion) / fInputDistortion;

Expand Down Expand Up @@ -142,6 +145,7 @@ void ctagSoundProcessorAntique::Process(const ProcessData &data) {
fOutCutHp /= 44100.f;
lpMaster.set_f_q<stmlib::FrequencyApproximation::FREQUENCY_FAST>(fOutCutLp, fOutQ);
hpMaster.set_f_q<stmlib::FrequencyApproximation::FREQUENCY_FAST>(fOutCutHp, fOutQ);
MK_FLT_PAR_ABS(fWetDry, outdw, 4095.f, 1.f)

// Scrub --> simulates noise from play head mechanical motion
MK_FLT_PAR_ABS(fScrubLevel, scrublev, 4095.f, 1.f)
Expand Down Expand Up @@ -173,7 +177,7 @@ void ctagSoundProcessorAntique::Process(const ProcessData &data) {
}else{
tmp = hpMaster.Process<stmlib::FILTER_MODE_HIGH_PASS>(lpMaster.Process<stmlib::FILTER_MODE_LOW_PASS>(frames[i].l + scrub + hum + his));
}
data.buf[i * 2 + processCh] = stmlib::SoftClip(tmp * fOutLevel);
data.buf[i * 2 + processCh] = stmlib::Crossfade(dry[i], stmlib::SoftClip(tmp * fOutLevel), fWetDry);
}
}

Expand Down Expand Up @@ -311,6 +315,8 @@ void ctagSoundProcessorAntique::knowYourself(){
pMapCv.emplace("popdcy", [&](const int val){ cv_popdcy = val;});
pMapPar.emplace("outlevel", [&](const int val){ outlevel = val;});
pMapCv.emplace("outlevel", [&](const int val){ cv_outlevel = val;});
pMapPar.emplace("outdw", [&](const int val){ outdw = val;});
pMapCv.emplace("outdw", [&](const int val){ cv_outdw = val;});
pMapPar.emplace("outfltctr", [&](const int val){ outfltctr = val;});
pMapCv.emplace("outfltctr", [&](const int val){ cv_outfltctr = val;});
pMapPar.emplace("outfltbw", [&](const int val){ outfltbw = val;});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ namespace CTAG {
atomic<int32_t> popf, cv_popf;
atomic<int32_t> popdcy, cv_popdcy;
atomic<int32_t> outlevel, cv_outlevel;
atomic<int32_t> outdw, cv_outdw;
atomic<int32_t> outfltctr, cv_outfltctr;
atomic<int32_t> outfltbw, cv_outfltbw;
atomic<int32_t> outfltq, cv_outfltq;
Expand Down
3 changes: 2 additions & 1 deletion main/Calibration.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,9 @@ namespace CTAG {
CVUnipolar, CVBipolar
};

class Calibration {
class Calibration final {
public:
Calibration() = delete;
static void Init();

static void IRAM_ATTR MapCVData(const uint16_t *adcIn, float *mapOut);
Expand Down
4 changes: 0 additions & 4 deletions main/CalibrationModel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,6 @@ CTAG::CAL::CalibrationModel::CalibrationModel() {
loadJSON(m, MODELJSONFN);
}

CTAG::CAL::CalibrationModel::~CalibrationModel() {

}

void CTAG::CAL::CalibrationModel::PrintSelf() {
printJSON(m);
}
Expand Down
4 changes: 1 addition & 3 deletions main/CalibrationModel.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,10 @@ using namespace rapidjson;

namespace CTAG {
namespace CAL {
class CalibrationModel : public CTAG::SP::ctagDataModelBase {
class CalibrationModel final : public CTAG::SP::ctagDataModelBase {
public:
CalibrationModel();

~CalibrationModel();

void CreateMatrix();

void PushRow(const vector<uint32_t> data);
Expand Down
3 changes: 2 additions & 1 deletion main/OTAManager.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,9 @@ respective component folders / files if different from this license.

namespace CTAG {
namespace OTA {
class OTAManager {
class OTAManager final {
public:
OTAManager() = delete;
static esp_err_t InitiateOTA(httpd_req_t *req);

static esp_err_t PostHandlerSPIFFS(httpd_req_t *req);
Expand Down
3 changes: 2 additions & 1 deletion main/RestServer.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,9 @@ respective component folders / files if different from this license.

namespace CTAG {
namespace REST {
class RestServer {
class RestServer final{
public:
RestServer() = delete;
static esp_err_t StartRestServer();

private:
Expand Down
3 changes: 2 additions & 1 deletion main/SPManager.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,9 @@ using namespace CTAG::SP;

namespace CTAG {
namespace AUDIO {
class SoundProcessorManager {
class SoundProcessorManager final {
public:
SoundProcessorManager() = delete;
static void StartSoundProcessor();

static const char *GetCStrJSONSoundProcessors() {
Expand Down
2 changes: 1 addition & 1 deletion main/SPManagerDataModel.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ using namespace rapidjson;

namespace CTAG {
namespace AUDIO {
class SPManagerDataModel : public CTAG::SP::ctagDataModelBase {
class SPManagerDataModel final : public CTAG::SP::ctagDataModelBase {
public:
SPManagerDataModel();

Expand Down
2 changes: 1 addition & 1 deletion spiffs_image/data/sp/mp-Antique.jsn
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"activePatch":0,"patches":[{"name":"Defective Gear","params":[{"id":"inplevel","current":0,"cv":-1},{"id":"inpdist","current":0,"cv":-1},{"id":"inprepitch","current":0,"cv":-1},{"id":"hisslevel","current":194,"cv":-1},{"id":"hissf","current":3601,"cv":-1},{"id":"hissbw","current":3439,"cv":-1},{"id":"hissshp","current":162,"cv":-1},{"id":"scrublev","current":550,"cv":-1},{"id":"scrubcen","current":576,"cv":-1},{"id":"scrubq","current":838,"cv":-1},{"id":"scrubmodlev","current":2632,"cv":-1},{"id":"humlev","current":366,"cv":-1},{"id":"humf","current":2051,"cv":-1},{"id":"humshape","current":4499,"cv":-1},{"id":"humagr","current":0,"cv":-1},{"id":"wowl","current":1274,"cv":-1},{"id":"wowf","current":2047,"cv":-1},{"id":"flutl","current":718,"cv":-1},{"id":"flutf","current":977,"cv":-1},{"id":"clickl","current":640,"cv":-1},{"id":"clickd","current":201,"cv":-1},{"id":"clickf","current":2992,"cv":-1},{"id":"clickfmod","current":910,"cv":-1},{"id":"clickq","current":451,"cv":-1},{"id":"clickqm","current":1685,"cv":-1},{"id":"popl","current":885,"cv":-1},{"id":"popd1","current":35,"cv":-1},{"id":"popd2","current":290,"cv":-1},{"id":"poplen","current":88200,"cv":-1},{"id":"poplensy","current":1,"trig":-1},{"id":"popblen","current":800,"cv":-1},{"id":"popf","current":1641,"cv":-1},{"id":"popdcy","current":3373,"cv":-1},{"id":"outlevel","current":3014,"cv":-1},{"id":"outfltctr","current":2144,"cv":-1},{"id":"outfltbw","current":2134,"cv":-1},{"id":"outfltq","current":0,"cv":-1},{"id":"hishumpre","current":0,"trig":-1}]},{"name":"Bad Input","params":[{"id":"inplevel","current":1267,"cv":-1},{"id":"inpdist","current":3395,"cv":-1},{"id":"inprepitch","current":0,"cv":-1},{"id":"hisslevel","current":194,"cv":-1},{"id":"hissf","current":3601,"cv":-1},{"id":"hissbw","current":3439,"cv":-1},{"id":"hissshp","current":162,"cv":-1},{"id":"scrublev","current":550,"cv":-1},{"id":"scrubcen","current":1070,"cv":-1},{"id":"scrubq","current":838,"cv":-1},{"id":"scrubmodlev","current":2632,"cv":-1},{"id":"humlev","current":151,"cv":-1},{"id":"humf","current":2051,"cv":-1},{"id":"humshape","current":13558,"cv":-1},{"id":"humagr","current":0,"cv":-1},{"id":"wowl","current":2100,"cv":-1},{"id":"wowf","current":2047,"cv":-1},{"id":"flutl","current":697,"cv":-1},{"id":"flutf","current":977,"cv":-1},{"id":"clickl","current":640,"cv":-1},{"id":"clickd","current":110,"cv":-1},{"id":"clickf","current":3578,"cv":-1},{"id":"clickfmod","current":910,"cv":-1},{"id":"clickq","current":1631,"cv":-1},{"id":"clickqm","current":2696,"cv":-1},{"id":"popl","current":885,"cv":-1},{"id":"popd1","current":24,"cv":-1},{"id":"popd2","current":290,"cv":-1},{"id":"poplen","current":88200,"cv":-1},{"id":"poplensy","current":1,"trig":-1},{"id":"popblen","current":800,"cv":-1},{"id":"popf","current":1641,"cv":-1},{"id":"popdcy","current":3373,"cv":-1},{"id":"outlevel","current":3014,"cv":-1},{"id":"outfltctr","current":1165,"cv":-1},{"id":"outfltbw","current":1107,"cv":-1},{"id":"outfltq","current":324,"cv":-1},{"id":"hishumpre","current":0,"trig":-1}]}]}
{"activePatch":0,"patches":[{"name":"Defective Gear","params":[{"id":"inplevel","current":0,"cv":-1},{"id":"inpdist","current":0,"cv":-1},{"id":"inprepitch","current":0,"cv":-1},{"id":"hisslevel","current":194,"cv":-1},{"id":"hissf","current":3601,"cv":-1},{"id":"hissbw","current":3439,"cv":-1},{"id":"hissshp","current":162,"cv":-1},{"id":"scrublev","current":550,"cv":-1},{"id":"scrubcen","current":576,"cv":-1},{"id":"scrubq","current":838,"cv":-1},{"id":"scrubmodlev","current":2632,"cv":-1},{"id":"humlev","current":366,"cv":-1},{"id":"humf","current":2051,"cv":-1},{"id":"humshape","current":4499,"cv":-1},{"id":"humagr","current":0,"cv":-1},{"id":"wowl","current":1274,"cv":-1},{"id":"wowf","current":2047,"cv":-1},{"id":"flutl","current":718,"cv":-1},{"id":"flutf","current":977,"cv":-1},{"id":"clickl","current":640,"cv":-1},{"id":"clickd","current":201,"cv":-1},{"id":"clickf","current":2992,"cv":-1},{"id":"clickfmod","current":910,"cv":-1},{"id":"clickq","current":451,"cv":-1},{"id":"clickqm","current":1685,"cv":-1},{"id":"popl","current":885,"cv":-1},{"id":"popd1","current":35,"cv":-1},{"id":"popd2","current":290,"cv":-1},{"id":"poplen","current":88200,"cv":-1},{"id":"poplensy","current":1,"trig":-1},{"id":"popblen","current":800,"cv":-1},{"id":"popf","current":1641,"cv":-1},{"id":"popdcy","current":3373,"cv":-1},{"id":"outlevel","current":3014,"cv":-1},{"id":"outdw","current":4095,"cv":-1},{"id":"outfltctr","current":2144,"cv":-1},{"id":"outfltbw","current":2134,"cv":-1},{"id":"outfltq","current":0,"cv":-1},{"id":"hishumpre","current":0,"trig":-1}]},{"name":"Bad Input","params":[{"id":"inplevel","current":1267,"cv":-1},{"id":"inpdist","current":3395,"cv":-1},{"id":"inprepitch","current":0,"cv":-1},{"id":"hisslevel","current":194,"cv":-1},{"id":"hissf","current":3601,"cv":-1},{"id":"hissbw","current":3439,"cv":-1},{"id":"hissshp","current":162,"cv":-1},{"id":"scrublev","current":550,"cv":-1},{"id":"scrubcen","current":1070,"cv":-1},{"id":"scrubq","current":838,"cv":-1},{"id":"scrubmodlev","current":2632,"cv":-1},{"id":"humlev","current":151,"cv":-1},{"id":"humf","current":2051,"cv":-1},{"id":"humshape","current":13558,"cv":-1},{"id":"humagr","current":0,"cv":-1},{"id":"wowl","current":2100,"cv":-1},{"id":"wowf","current":2047,"cv":-1},{"id":"flutl","current":697,"cv":-1},{"id":"flutf","current":977,"cv":-1},{"id":"clickl","current":640,"cv":-1},{"id":"clickd","current":110,"cv":-1},{"id":"clickf","current":3578,"cv":-1},{"id":"clickfmod","current":910,"cv":-1},{"id":"clickq","current":1631,"cv":-1},{"id":"clickqm","current":2696,"cv":-1},{"id":"popl","current":885,"cv":-1},{"id":"popd1","current":24,"cv":-1},{"id":"popd2","current":290,"cv":-1},{"id":"poplen","current":88200,"cv":-1},{"id":"poplensy","current":1,"trig":-1},{"id":"popblen","current":800,"cv":-1},{"id":"popf","current":1641,"cv":-1},{"id":"popdcy","current":3373,"cv":-1},{"id":"outlevel","current":3014,"cv":-1},{"id":"outdw","current":4095,"cv":-1},{"id":"outfltctr","current":1165,"cv":-1},{"id":"outfltbw","current":1107,"cv":-1},{"id":"outfltq","current":324,"cv":-1},{"id":"hishumpre","current":0,"trig":-1}]}]}
8 changes: 8 additions & 0 deletions spiffs_image/data/sp/mui-Antique.jsn
Original file line number Diff line number Diff line change
Expand Up @@ -306,6 +306,14 @@
"max": 4095,
"step": 1
},
{
"id": "outdw",
"name": "Dry / wet",
"type": "int",
"min": 0,
"max": 4095,
"step": 1
},
{
"id": "outfltctr",
"name": "Filter center",
Expand Down
6 changes: 6 additions & 0 deletions versions.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# CTAG TBD Version Log

## V0.9.17
- New plugin Antique --> Generates old record / tape effect
- New plugin Subbotnik by M. Brüssel --> Huge modulations
- New plugin VctrSyn by M. Brüssel --> Complex vector synth monster
- Minor bug fixes / architecture improvements

## V0.9.16
- New plugin SpaceFX by M. Brüssel (uses [Vult Technology](https://github.com/modlfo))
- Bjorklund parameter reduction (some setting caused CPU overload)
Expand Down

0 comments on commit eb830be

Please sign in to comment.