aboutsummaryrefslogtreecommitdiffstats
path: root/src/mdaDX10.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2010-02-22 21:24:34 +0000
committerDavid Robillard <d@drobilla.net>2010-02-22 21:24:34 +0000
commitadacb33bf4eadcd49a744177bf3f059e7b2f2f52 (patch)
tree922620c99fdc348529002d1a000ec0e8f94f3041 /src/mdaDX10.cpp
parent4514036c46168f4bbc693649989d53bdffe6137b (diff)
downloadmda.lv2-adacb33bf4eadcd49a744177bf3f059e7b2f2f52.tar.gz
mda.lv2-adacb33bf4eadcd49a744177bf3f059e7b2f2f52.tar.bz2
mda.lv2-adacb33bf4eadcd49a744177bf3f059e7b2f2f52.zip
Merge with upstream r2.
git-svn-id: http://svn.drobilla.net/lad/trunk/mda-lv2@2471 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/mdaDX10.cpp')
-rw-r--r--src/mdaDX10.cpp50
1 files changed, 24 insertions, 26 deletions
diff --git a/src/mdaDX10.cpp b/src/mdaDX10.cpp
index 8a0d60f..2e911c4 100644
--- a/src/mdaDX10.cpp
+++ b/src/mdaDX10.cpp
@@ -18,7 +18,7 @@ AudioEffect *createEffectInstance(audioMasterCallback audioMaster)
mdaDX10::mdaDX10(audioMasterCallback audioMaster) : AudioEffectX(audioMaster, NPROGS, NPARAMS)
{
- long i=0;
+ LvzInt32 i=0;
Fs = 44100.0f;
programs = new mdaDX10Program[NPROGS];
@@ -93,6 +93,7 @@ mdaDX10::mdaDX10(audioMasterCallback audioMaster) : AudioEffectX(audioMaster, NP
void mdaDX10::update() //parameter change //if multitimbral would have to move all this...
{
float ifs = 1.0f / Fs;
+ float * param = programs[curProgram].param;
tune = (float)(8.175798915644 * ifs * pow(2.0, floor(param[11] * 6.9) - 2.0));
@@ -101,7 +102,7 @@ void mdaDX10::update() //parameter change //if multitimbral would have to move
if(param[4]<0.5f)
ratf = 0.2f * param[4] * param[4];
else
- switch((long)(8.9f * param[4]))
+ switch((LvzInt32)(8.9f * param[4]))
{
case 4: ratf = 0.25f; break;
case 5: ratf = 0.33333333f; break;
@@ -154,24 +155,19 @@ mdaDX10::~mdaDX10 () //destroy any buffers...
void mdaDX10::setProgram(LvzInt32 program)
{
- long i;
-
- mdaDX10Program *p = &programs[program];
curProgram = program;
- for(i=0; i<NPARAMS; i++) param[i] = p->param[i];
- update();
+ update();
}
void mdaDX10::setParameter(LvzInt32 index, float value)
{
- mdaDX10Program *p = &programs[curProgram];
- param[index] = p->param[index] = value;
+ programs[curProgram].param[index] = value;
update();
}
-void mdaDX10::fillpatch(long p, const char *name,
+void mdaDX10::fillpatch(LvzInt32 p, char *name,
float p0, float p1, float p2, float p3, float p4, float p5,
float p6, float p7, float p8, float p9, float p10, float p11,
float p12, float p13, float p14, float p15)
@@ -188,7 +184,7 @@ void mdaDX10::fillpatch(long p, const char *name,
}
-float mdaDX10::getParameter(LvzInt32 index) { return param[index]; }
+float mdaDX10::getParameter(LvzInt32 index) { return programs[curProgram].param[index]; }
void mdaDX10::setProgramName(char *name) { strcpy(programs[curProgram].name, name); }
void mdaDX10::getProgramName(char *name) { strcpy(name, programs[curProgram].name); }
void mdaDX10::setBlockSize(LvzInt32 blockSize) { AudioEffectX::setBlockSize(blockSize); }
@@ -212,7 +208,7 @@ bool mdaDX10::getOutputProperties(LvzInt32 index, LvzPinProperties* properties)
bool mdaDX10::getProgramNameIndexed(LvzInt32 category, LvzInt32 index, char* text)
{
- if(index<NPROGS)
+ if ((unsigned int)index < NPROGS)
{
strcpy(text, programs[index].name);
return true;
@@ -267,12 +263,13 @@ void mdaDX10::getParameterName(LvzInt32 index, char *label)
void mdaDX10::getParameterDisplay(LvzInt32 index, char *text)
{
char string[16];
+ float * param = programs[curProgram].param;
switch(index)
{
case 3: sprintf(string, "%.0f", rati); break;
case 4: sprintf(string, "%.3f", ratf); break;
- case 11: sprintf(string, "%ld", (long)(param[index] * 6.9f) - 3); break;
+ case 11: sprintf(string, "%d", (LvzInt32)(param[index] * 6.9f) - 3); break;
case 12: sprintf(string, "%.0f", 200.0f * param[index] - 100.0f); break;
case 15: sprintf(string, "%.2f", 25.0f * param[index] * param[index]); break;
default: sprintf(string, "%.0f", 100.0f * param[index]);
@@ -300,9 +297,9 @@ void mdaDX10::process(float **inputs, float **outputs, LvzInt32 sampleFrames)
{
float* out1 = outputs[0];
float* out2 = outputs[1];
- long event=0, frame=0, frames, v;
+ LvzInt32 event=0, frame=0, frames, v;
float o, x, e, mw=MW, w=rich, m=modmix;
- long k=K;
+ LvzInt32 k=K;
if(activevoices>0 || notes[event]<sampleFrames) //detect & bypass completely empty blocks
{
@@ -353,8 +350,8 @@ void mdaDX10::process(float **inputs, float **outputs, LvzInt32 sampleFrames)
if(frame<sampleFrames) //next note on/off
{
- long note = notes[event++];
- long vel = notes[event++];
+ LvzInt32 note = notes[event++];
+ LvzInt32 vel = notes[event++];
noteOn(note, vel);
}
}
@@ -380,9 +377,9 @@ void mdaDX10::processReplacing(float **inputs, float **outputs, LvzInt32 sampleF
{
float* out1 = outputs[0];
float* out2 = outputs[1];
- long event=0, frame=0, frames, v;
+ LvzInt32 event=0, frame=0, frames, v;
float o, x, e, mw=MW, w=rich, m=modmix;
- long k=K;
+ LvzInt32 k=K;
if(activevoices>0 || notes[event]<sampleFrames) //detect & bypass completely empty blocks
{
@@ -437,8 +434,8 @@ void mdaDX10::processReplacing(float **inputs, float **outputs, LvzInt32 sampleF
if(frame<sampleFrames) //next note on/off
{
- long note = notes[event++];
- long vel = notes[event++];
+ LvzInt32 note = notes[event++];
+ LvzInt32 vel = notes[event++];
noteOn(note, vel);
}
}
@@ -467,10 +464,11 @@ void mdaDX10::processReplacing(float **inputs, float **outputs, LvzInt32 sampleF
}
-void mdaDX10::noteOn(long note, long velocity)
+void mdaDX10::noteOn(LvzInt32 note, LvzInt32 velocity)
{
+ float * param = programs[curProgram].param;
float l = 1.0f;
- long v, vl=0;
+ LvzInt32 v, vl=0;
if(velocity>0)
{
@@ -520,9 +518,9 @@ void mdaDX10::noteOn(long note, long velocity)
LvzInt32 mdaDX10::processEvents(LvzEvents* ev)
{
- long npos=0;
+ LvzInt32 npos=0;
- for (long i=0; i<ev->numEvents; i++)
+ for (LvzInt32 i=0; i<ev->numEvents; i++)
{
if((ev->events[i])->type != kLvzMidiType) continue;
LvzMidiEvent* event = (LvzMidiEvent*)ev->events[i];
@@ -566,7 +564,7 @@ LvzInt32 mdaDX10::processEvents(LvzEvents* ev)
default: //all notes off
if(midiData[1]>0x7A)
{
- for(long v=0; v<NVOICES; v++) voice[v].cdec=0.99f;
+ for(LvzInt32 v=0; v<NVOICES; v++) voice[v].cdec=0.99f;
sustain = 0;
}
break;