mirror of https://github.com/probonopd/MiniDexed
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
87 lines
1.6 KiB
87 lines
1.6 KiB
/*
|
|
* MOD DS-1 Port
|
|
* Ported from https://github.com/moddevices/mod-distortion/tree/master/ds1
|
|
*
|
|
* Javier Nonis (https://github.com/jnonis) - 2024
|
|
*/
|
|
#ifndef _EFFECT_DS1_H
|
|
#define _EFFECT_DS1_H
|
|
|
|
#include "effect_base.h"
|
|
#include "moddistortion/Distortion_DS1.h"
|
|
|
|
class AudioEffectDS1 : public AudioEffect
|
|
{
|
|
public:
|
|
static const unsigned TAMANHO_DO_BUFFER = 256;
|
|
static constexpr float32_t INPUT_GAIN = 1;
|
|
static constexpr float32_t OUTPUT_GAIN = 1;
|
|
|
|
enum Param
|
|
{
|
|
BYPASS,
|
|
DIST,
|
|
TONE,
|
|
LEVEL,
|
|
UNKNOWN
|
|
};
|
|
|
|
AudioEffectDS1(float32_t samplerate);
|
|
virtual ~AudioEffectDS1();
|
|
|
|
virtual unsigned getId();
|
|
virtual void setParameter(unsigned param, unsigned value);
|
|
virtual unsigned getParameter(unsigned param);
|
|
protected:
|
|
virtual size_t getParametersSize()
|
|
{
|
|
return sizeof(AudioEffectDS1::Param);
|
|
}
|
|
virtual void doProcess(const float32_t* inblockL, const float32_t* inblockR, float32_t* outblockL, float32_t* outblockR, uint16_t len);
|
|
private:
|
|
float tone;
|
|
float level;
|
|
float dist;
|
|
|
|
float *u_f;
|
|
float *y_f;
|
|
|
|
float *u;
|
|
float *u2;
|
|
float *y;
|
|
float *y2;
|
|
float *v1;
|
|
float *v2;
|
|
float *v3;
|
|
|
|
float T;
|
|
|
|
float h1u_1;
|
|
float h1y_1;
|
|
|
|
float h2u_1;
|
|
float h2y_1;
|
|
float h2u_2;
|
|
float h2y_2;
|
|
float h2u_3;
|
|
float h2y_3;
|
|
float h2u_4;
|
|
float h2y_4;
|
|
|
|
float h3u_1;
|
|
float h3y_1;
|
|
float h3u_2;
|
|
float h3y_2;
|
|
|
|
float u_1;
|
|
float y_1;
|
|
float v1_1;
|
|
float v2_1;
|
|
float v3_1;
|
|
|
|
int cont;
|
|
|
|
ClipClass obj;
|
|
};
|
|
|
|
#endif // _EFFECT_DS1_H
|