RFE: Allow Ctrl + / Ctrl - keyboard shortcuts to dive in and out of components, the same way that the mouse wheel does.
I use my mouse wheel way too much, and not just in TD. I’ve been trying to find alternate ways of scrolling and zooming. This is incredibly smooth and useful to send the keyboard commands via midi:
What I meant for this post was an RFE to allow the Ctrl + / Ctrl - keyboard shortcuts to dive in and out of components, the same way that the mouse wheel does, so that you can use a controller to fluidly fly around and through the levels of a network. I edited my post to be more clear.
While you can certainly try your luck on getting Derivative to add this feature, I suspect demand is rather low. Fortunately for this use case, there are other ways to get the scroll wheel behaviour you’re looking for with your MIDI device (or other human input device.)
The method you’re using already relies on some sort of MIDI to keyboard emulation to get this far, so all we really need is mouse emulation to trigger mouse scroll wheel events (and forgo the Ctrl + / Ctrl - key shortcuts altogether.)
-OR- we can perform mouse scroll wheel emulation directly in TouchDesigner via Python ctypes module and the Windows API!
I’ve attached an example TOX with scroll wheel pulse parameters that you use to reference MIDI values or any CHOP channel data. This also demonstrates how the above applications actually accomplish this sort of thing.
The size/distance of the scroll step is also adjustable with the wheel delta parameter, so you can tune in finer or coarser control depending on your device and personal preference.
You can built on top of this and drop the resulting component in any TouchDesigner network you’re working on, or even have it running in a separate instance of TouchDesigner in the background. wheel_ctypes.tox (1.18 KB)
I was using bome’s midi translator classic, which cannot do mouse wheel commands, and although the pro version can, I didn’t want to spend $70 just for that command. This is a huge help! I’m sure I will find much more use for this code as well! I’ll share anything useful I come up with