tttapa / MIDI_controller

This is a library for creating a MIDI controller using an Arduino or Teensy board.
GNU General Public License v3.0
403 stars 70 forks source link

Variable steps of rotary encoders #26

Open rapiertg opened 6 years ago

rapiertg commented 6 years ago

This could be useful if rotary encoders could have variable value according to speed of rotation. Seems to be very usefull. Is it possible?

This library is great btw

tttapa commented 6 years ago

Just out of curiosity, what do you plan on using it for?

rapiertg commented 6 years ago

I am using my midi board as a Lightroom controller. Sometimes, when I want to adjust some setting a lot, I have to make plenty of encoder rotation. When it could detect the speed of turning and adapt the value it sends, it would help to make it faster. For example fast turn to add a lot of contrast and then slow down to fine tune it.

tttapa commented 6 years ago

You can extend the library yourself by inheriting from MIDI_Control_Element. Take a look here: https://github.com/tttapa/MIDI_controller/wiki/Custom-MIDI-controls and at the source of the RotaryEncoder class: https://github.com/tttapa/MIDI_controller/blob/90b8796f8365faf28bcfa15eab8f70336d9381d6/src/MIDI_Outputs/RotaryEncoder.h https://github.com/tttapa/MIDI_controller/blob/master/src/MIDI_Outputs/RotaryEncoder.cpp

If you're happy with the result, feel free to open a Pull Request.

DH1KLM commented 6 years ago

Sounds like a great idea, the faster I spin the encoder, the greater the step size changes. Would also be for me a nice and useful addition. I'm curious if anyone can build this function.

DH1KLM commented 6 years ago

I wanted to ask if there is already a development in this direction.

I found that https://github.com/craftycoder/arduino-rotary-encoder-with-velocity. I think that is the desired function. Is it possible to build this for MIDI as well?

cferrarini commented 4 years ago

I Stumbled upon several reviews on comercial midi controllers, and the general frustration is that recent controllers have encoders intead of pots, but, although working with many relative modes, most of professional pligins available were not made to support relative encoders. The solution that Arturia made in Minilab controller, is the option of absolute messages besides the relative modes. Even their pugins do not support relative modes. The downside ob absolute mode is that the virtual knob jumps to the position as soon as you strt moving the pot, when the relative encoder just adds or diminishes the current value. So an usefull implementation would be to add one more mode option on encoders, an absolute value emulation... Other thing that would be very wellcome is the support for pcf8574/5 addressable i2c port expander. It only uses 2 arduino ports and you can daisy chain up to 8 chips and obtain up to 64 or 128 free ports! That would be wonderfull! I2c Even permits that the other ships may be at a certain wire length distant from the board. Thanks!