mirror of https://github.com/probonopd/MiniDexed
parent
b2dcc29d73
commit
61f66848dc
@ -0,0 +1,96 @@ |
|||||||
|
/*
|
||||||
|
* Base MidiEffect interface |
||||||
|
* Javier Nonis (https://github.com/jnonis) - 2024
|
||||||
|
*/ |
||||||
|
#ifndef _MIDI_EFFECT_H |
||||||
|
#define _MIDI_EFFECT_H |
||||||
|
|
||||||
|
#include <vector> |
||||||
|
#include "dexedadapter.h" |
||||||
|
|
||||||
|
class MidiEffect |
||||||
|
{ |
||||||
|
public: |
||||||
|
static const unsigned MIDI_EFFECT_NONE = 0; |
||||||
|
|
||||||
|
MidiEffect(float32_t samplerate, CDexedAdapter* synth) |
||||||
|
{ |
||||||
|
this->samplerate = samplerate; |
||||||
|
this->synth = synth; |
||||||
|
} |
||||||
|
|
||||||
|
virtual ~MidiEffect() |
||||||
|
{ |
||||||
|
} |
||||||
|
|
||||||
|
void setBypass(bool bypass) |
||||||
|
{ |
||||||
|
this->bypass = bypass; |
||||||
|
} |
||||||
|
|
||||||
|
bool getBypass() |
||||||
|
{ |
||||||
|
return bypass; |
||||||
|
} |
||||||
|
|
||||||
|
virtual unsigned getId() |
||||||
|
{ |
||||||
|
return MIDI_EFFECT_NONE; |
||||||
|
} |
||||||
|
|
||||||
|
virtual void setTempo(unsigned tempo) |
||||||
|
{ |
||||||
|
} |
||||||
|
|
||||||
|
virtual void setParameter(unsigned param, unsigned value) |
||||||
|
{ |
||||||
|
} |
||||||
|
|
||||||
|
virtual unsigned getParameter(unsigned param) |
||||||
|
{ |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
void setParameters(std::vector<unsigned> params) |
||||||
|
{ |
||||||
|
for (size_t i = 0; i < params.size(); i++) |
||||||
|
{ |
||||||
|
this->setParameter(i, params[i]); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
std::vector<unsigned> getParameters() |
||||||
|
{ |
||||||
|
size_t len = this->getParametersSize(); |
||||||
|
std::vector<unsigned> params; |
||||||
|
for (size_t i = 0; i < len; i++) |
||||||
|
{ |
||||||
|
params.push_back(getParameter(i)); |
||||||
|
} |
||||||
|
return params; |
||||||
|
} |
||||||
|
|
||||||
|
void process(uint16_t len) |
||||||
|
{ |
||||||
|
if (this->bypass) |
||||||
|
{ |
||||||
|
return; |
||||||
|
} |
||||||
|
doProcess(len); |
||||||
|
} |
||||||
|
protected: |
||||||
|
bool bypass = false; |
||||||
|
float32_t samplerate; |
||||||
|
CDexedAdapter* synth; |
||||||
|
|
||||||
|
virtual size_t getParametersSize() |
||||||
|
{ |
||||||
|
return 0; |
||||||
|
} |
||||||
|
|
||||||
|
virtual void doProcess(uint16_t len) |
||||||
|
{ |
||||||
|
} |
||||||
|
}; |
||||||
|
|
||||||
|
#endif // _MIDI_EFFECT_H
|
Loading…
Reference in new issue