jean-emmanuel / open-stage-control

Libre and modular OSC / MIDI controller
https://openstagecontrol.ammd.net
GNU General Public License v3.0
722 stars 91 forks source link

Feature request: "touch" message for sliders. #61

Closed ovenwerks closed 7 years ago

ovenwerks commented 7 years ago

mackie control and other controllers send a touch message when the user has their finger on the fader. I think this was originally put there to keep the motor fader from fighting the finger :) however, most DAWs have seen this as an opportunity to change the way automation works. That is while there is no touch, automation is read from the track and when there is touch, the fader writes automation.

I have tried linking a push button with a fader with the linkid, but the button only sends OSC when the slider happens to exactly match one of the button states (ie 1 or 0) So it half works with sprung... which always resets to 0) but sprung is not too useful for automation :)

Best way (from my POV) would be to add a touch path that if not empty also gets sent with the same preargs as the main path plus 1 for touched and 0 for touch released as a value.

Second best change linked ID from slider to button to react as the button would ... to press and release event rather than value. So if a slider and button are linked, changing the slider would affect the button as a press when mouse clicks/finger touches and a release when finger removed/mouse button released. Pressing the button would have the same effect as touching the slider... effectively none. :)

Third possibility, add touch true/false flag to slider. if true send /path/touch 1/0 (use same preargs of course). While this may be easiest (and will work fine for my personal purposes) It does lock the path in a way that may make things not work for someone else whos DAW doesn't work that way.

Note: I am not totally sure of my ordering from best to least best.

Note2: I suspect that if you do sliders, knobs and xy pads would make sense too. In general, automation is not restricted to faders, though controlling of other controls when using a midi controller is generally done with motorfaders as they are the only touch-able controllers. With a glass controller like Open Stage Control, touch is possible on any controller.

ovenwerks commented 7 years ago

One more thing, feedback is not required for touch, it can be a one way thing.

jean-emmanuel commented 7 years ago

Sorry for the low activity, I read your request and will give it some thought when I have some more time :)

cyberic99 commented 7 years ago

Ardour has just implemented /touch OSC messages ;-) https://github.com/Ardour/ardour/commit/f2aac0bcae701a91926f7c63bf0ef6f68d952858

ovenwerks commented 7 years ago

One further point about fader/pot touch messages. The touch message should be sent before any fader value messages are sent and of course released after the value messages are sent. Though properly written DAW code should work either way.

jean-emmanuel commented 7 years ago

Go for 1st option, coming soon !

jean-emmanuel commented 7 years ago

Pushed, only for faders and knobs for now.

cyberic99 commented 7 years ago

Great, thank you! I think it would be very useful for xy too, it would enable open stage control to act like a kaoss pad, where the effect is activated only when you touch the pad

jean-emmanuel commented 7 years ago

Pushed!

jean-emmanuel commented 7 years ago

Included in v.0.17.8.