Taking Action when Twisting a Rotary Encoder

Been at this for days … hoping someone can shed some light …

I would like to take one action each time I twist a rotary encoder Right (clockwise) and another action each time I twist Left (counterclockwise). The actions are Set List => Next/Previous Song (Instant).

The Encoder is on a Faderfox EC4, which gives me lots of configuration choices:

  • CCr1: control change command in relative mode 1 (values 1/127)
  • CCr2: control change command in relative mode 2 (values 63/65)
  • CCAb: control change command in 7 bit absolute mode (values 0 to 127) mostly used as standard
  • PrgC: program change command (values 0 to 127)
  • CCAh: two control change commands (MSB/LSB) 14 bit highres mode (values 0 to 16383)
  • PBnd: pitch bend command (values 0 to 16383) 14 bit
  • AftT: aftertouch (channel pressure) command 7 bit (values 0 to 127)
  • Note: note command (note on / note off)
  • NRPN: four control change commands (address/data) 14 bit highres mode (values 0 to 16383)

The most obvious is to use CCr1, which sends something like 1,1,2,2,3,2,1,1 as I twist to the Right and something like 127,127,126,126,125,126,127 when I twist Left (simulating negative numbers for “relative decreases in value”).

None of the current C4 Controller binding sources get me what is needed. The typical failure is that twisting in one direction will fire the binding the first time, but not on subsequent twists in the same direction. Twisting in the opposite direction works, but then a second twist in that opposite direction does not work.

If I set the binding to Controller with a condition such as “=1”, then the binding will fire the first time I twist to the Right if I do it slowly (giving values of 1,1,1,1) but not the second time I twist slowly (again, 1,1,1,1). If I use a condition of “=2”, then the binding will only fire if I twist aggressively (giving values of 1,1,2,2,3,2,1,1), but then will actually fire twice, because the value goes from 2 to 3 and back to 2. That can be handled by using Set List => Next Song (Delayed), but then I always have to twist aggressively and that is not reliable.

I have tried most of the other configuration choices for the EC4 encoder, with no combination of configuration choices and C4 Binding Sources that shows promise. The Note configuration for the encoder does not work because twisting to the Right sends Note On, but subsequent Right twists do nothing … Left twists send Note Off.

The new Controller To Switch MIDI Filter might have value, but I’m not sure … and cannot upgrade at the moment because of a Big concert in two days …

Any thoughts, ideas, insights, or SWAGs (Scientific Wild-Axx Guesses) are welcome.