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.
 
 
 
 
 
MiniDexed/src/effect_ds1.h

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