diff --git a/UI.hpp b/UI.hpp index 6aa350c..cf9a4b3 100644 --- a/UI.hpp +++ b/UI.hpp @@ -1645,7 +1645,7 @@ void UI_func_tune(uint8_t param) } MicroDexed[instance_id]->data[DEXED_GLOBAL_PARAMETER_OFFSET + DEXED_MASTER_TUNE] = configuration.dexed[instance_id].tune; - MicroDexed[instance_id]->controllers.masterTune = (MicroDexed[instance_id]->data[DEXED_GLOBAL_PARAMETER_OFFSET + DEXED_MASTER_TUNE] * 0x4000 << 11) * (1.0 / 12); + MicroDexed[instance_id]->controllers.masterTune = (MicroDexed[instance_id]->data[DEXED_GLOBAL_PARAMETER_OFFSET + DEXED_MASTER_TUNE] / 10 * 0x4000 << 11) * (1.0 / 12); MicroDexed[instance_id]->doRefreshVoice(); } @@ -2025,7 +2025,7 @@ void UI_func_mono_poly(uint8_t param) } } - MicroDexed[instance_id]->setMonoMode(configuration.dexed[instance_id].monopoly); + MicroDexed[instance_id]->setMonoMode(!configuration.dexed[instance_id].monopoly); } lcd.setCursor(0, 1); diff --git a/config.h b/config.h index 4de4cdd..c0308be 100644 --- a/config.h +++ b/config.h @@ -212,6 +212,7 @@ //* DO NO CHANGE ANYTHING BEYOND IF YOU DON'T KNOW WHAT YOU ARE DOING !!! //************************************************************************************************* #define NUM_DEXED 1 +#define NORMALIZE_DX_VELOCITY 1 enum { DEXED, REVERB, DELAY, CHORUS }; diff --git a/dexed.cpp b/dexed.cpp index 2f837d7..23f025e 100644 --- a/dexed.cpp +++ b/dexed.cpp @@ -191,6 +191,10 @@ void Dexed::keydown(uint8_t pitch, uint8_t velo) { pitch += data[144] - TRANSPOSE_FIX; +#if defined(NORMALIZE_DX_VELOCITY) + velo = ((float)velo) * 0.7874015; // 100/127 +#endif + int previousKeyDown = lastKeyDown; lastKeyDown = pitch; @@ -221,6 +225,7 @@ void Dexed::keydown(uint8_t pitch, uint8_t velo) { if (keydown_counter == 0) lfo.keydown(); + if ( monoMode ) { for (uint8_t i = 0; i < max_notes; i++) { if ( voices[i].live ) {