/Helpers.lua

https://code.google.com/p/airmann-faderport-driver/ · Lua · 41 lines · 25 code · 9 blank · 7 comment · 3 complexity · ae15d214902a6bf6f4108d4319efaeeb MD5 · raw file

  1. --[[-------------------------------------------------------
  2. FaderPort helper functions
  3. Taken from GlobalMidiActions.lua, Author: taktik
  4. ---------------------------------------------------------]]
  5. function song()
  6. return renoise.song()
  7. end
  8. function clamp_value(value, min_value, max_value)
  9. return math.min(max_value, math.max(value, min_value))
  10. end
  11. function wrap_value(value, min_value, max_value)
  12. local range = max_value - min_value + 1
  13. assert(range > 0, "invalid range")
  14. while value < min_value do
  15. value = value + range
  16. end
  17. while value > max_value do
  18. value = value - range
  19. end
  20. return value
  21. end
  22. function quantize_value(value, quantum)
  23. if value >= 0 then
  24. value = value + quantum / 2
  25. else
  26. value = value - quantum / 2
  27. end
  28. return math.floor(value / quantum) * quantum
  29. end