Fixing log volume curve.

pull/32/head
Holger Wirtz 5 years ago
parent b12c2fe619
commit 90927a5a28
  1. 16
      MicroDexed.ino

@ -1817,7 +1817,7 @@ float pseudo_log_curve(float value)
// ideas from here: https://forum.pjrc.com/threads/56015-Changing-Volume-Levels-based-on-pot-wheel
const float _pseudo_log = 1048575 / (float)(1 << 20);
//const float _pseudo_log = 1048575 / (float)(1 << 20);
/*
#ifdef DEBUG
Serial.print(F("value in: "));
@ -1827,16 +1827,10 @@ float pseudo_log_curve(float value)
#endif
*/
return (mapfloat(_pseudo_log * arm_sin_f32(value), 0.0, _pseudo_log * arm_sin_f32(1.0), 0.0, 1.0));
/*
float g = mapfloat(_pseudo_log * arm_sin_f32(value), 0.0, _pseudo_log * arm_sin_f32(1.0), 0.0, 1.0);
if (g == 0.0)
return (0.001);
else
return (g);
*/
//return (mapfloat(_pseudo_log * arm_sin_f32(value), 0.0, _pseudo_log * arm_sin_f32(1.0), 0.0, 1.0));
//return (1 - sqrt(1 - value * value));
//return (pow(value, 2));
return (pow(2, value) - 1);
}
uint32_t crc32(byte * calc_start, uint16_t calc_bytes) // base code from https://www.arduino.cc/en/Tutorial/EEPROMCrc

Loading…
Cancel
Save