diff options
author | rekado <rekado@elephly.net> | 2013-07-28 12:01:02 +0800 |
---|---|---|
committer | rekado <rekado@elephly.net> | 2013-07-28 12:01:02 +0800 |
commit | f9020a788fb384a3f095977aa629a31db9d43962 (patch) | |
tree | 5ed740becb6927cf48bfc684925b67c6a19ac570 | |
parent | 7f1350581a42ff02003e4164008dd0b20914abf2 (diff) |
[epiano] fix: pick different sample for different velocity
-rw-r--r-- | src/mdaPianoVoice.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/mdaPianoVoice.cpp b/src/mdaPianoVoice.cpp index 9e46e6b..4551c6b 100644 --- a/src/mdaPianoVoice.cpp +++ b/src/mdaPianoVoice.cpp @@ -77,10 +77,6 @@ void mdaPianoVoice::on(unsigned char key, unsigned char velocity) { k = 0; while(key > (kgrp[k].high + s)) k += SAMPLES_PER_NOTE; // find keygroup -#ifdef EPIANO - if(velocity > 48) k++; // mid velocity sample - if(velocity > 80) k++; // high velocity sample -#endif sample_index = k; // store sample index l += (float)(key - kgrp[k].root); // pitch @@ -94,6 +90,11 @@ void mdaPianoVoice::on(unsigned char key, unsigned char velocity) { frac = 0; pos = 0; +#ifdef EPIANO + if(velocity > 48) sample_index++; // mid velocity sample + if(velocity > 80) sample_index++; // high velocity sample +#endif + #ifdef PIANO end = samples[sample_index].size; #elif defined EPIANO |