summaryrefslogtreecommitdiff
path: root/src/mdaPianoVoice.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mdaPianoVoice.cpp')
-rw-r--r--src/mdaPianoVoice.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/mdaPianoVoice.cpp b/src/mdaPianoVoice.cpp
index a1f9529..4c88e8f 100644
--- a/src/mdaPianoVoice.cpp
+++ b/src/mdaPianoVoice.cpp
@@ -205,3 +205,26 @@ if(!(r > -2.0f) || !(r < 2.0f))
for(v=0; v<activevoices; v++) if(voice[v].env < SILENCE) voice[v] = voice[--activevoices];
notes[0] = EVENTS_DONE; //mark events buffer as done
}
+
+
+void mdaPianoVoice::update(Param par)
+{
+ //TODO: use local copy
+ float * param = programs[curProgram].param;
+ size = (uint32_t)(12.0f * param[2] - 6.0f);
+ sizevel = 0.12f * param[3];
+ muffvel = param[5] * param[5] * 5.0f;
+
+ velsens = 1.0f + param[6] + param[6];
+ if(param[6] < 0.25f) velsens -= 0.75f - 3.0f * param[6];
+
+ fine = param[9] - 0.5f;
+ random = 0.077f * param[10] * param[10];
+ stretch = 0.000434f * (param[11] - 0.5f);
+
+ cdep = param[7] * param[7];
+ trim = 1.50f - 0.79f * cdep;
+ width = 0.04f * param[7]; if(width > 0.03f) width = 0.03f;
+
+ poly = 8 + (uint32_t)(24.9f * param[8]);
+}