There's been another update to the mouse and keyboard nodes before but that turned out to still cause troubles:
- key presses could still be missed (think: typing too fast on typewriter)
- global keyboard didn't work properly with all applications
- mousewheel didn't work globally
- no nodes to deal with touch devices (2013! hellooo!)
Now there've been notable contributions to work around some of those issues, like windowstouch, global-keyhook and directinput-(devices) but those being really basic things we thought we'd give it another shot.
So here is what you get:
- Keyboard and Mouse nodes in variants: Desktop (was: Global) and Windows
- where Keyboard and Mouse (Desktop) are spreadable (ie. understanding multiple keyboards/mice attached. quite nerdy, what you think?)
- a new Touch (Devices Window) node
- all those nodes come with a Queue Mode to distinguish Enqueue (don't miss anything) and Discard (just take the latest) modes
- KeyStates, MouseStates and TouchStates split-nodes (for comfortable use in subpatches)
- KeyEvents, MouseEvents and TouchEvents split-nodes (allowing for advanced ... stuff)
- join-nodes for some of them
like so:
Device type |
Source nodes |
Sink nodes |
Keyboard |
Keyboard (Devices Window)
Keyboard (Devices Desktop)
KeyEvents (Keyboard Join) |
KeyEvents (Keyboard Split)
KeyStates (Keyboard Split) |
Mouse |
Mouse (Devices Window)
Mouse (Devices Desktop)
MouseEvents (Mouse Join)
MouseStates (Mouse Join) |
MouseEvents (Mouse Split)
MouseStates (Mouse Split) |
Touch |
Touch (Devices) |
TouchEvents (Touch Split)
TouchStates (Touch Split)
|
As you can see from the table not all possible combinations have been implemented. We concentrated on those which we felt had a good use case.
For the plugin-developer:
- Plugins that are using the (now) legacy "KeyboardState" and "MouseState" datatype don't need to be modified - vvvv is gracefully taking care of this with an auto-wrapper.
- The new "Device" datatype merely is a wrapper around a push based sequence of Device notifications. See KeyboardNodes.cs for an example of how to use it in your new developments.
all available now for testing with the latest alpha builds
awesome!
I can now finally make a cool multi touch interface for my drum machine :)
brilliant, native touchnodes !
Zoom... and we're back up to speed! Thanks devvvvs.
multiple mice wow!
suggestion: can we have the absolute raw data coming from the mouse? i mean currently when i set the source to "raw" it is clamped between -1 and 1 (even when i set it to "CycleIncrement" mode
yeah after viewing the source code of mouse nodes that clamp in "raw" mode is completely unnecessary in my opinion. if somebody wants to clamp it between -1 and 1 let them do it in the patch.
thank you bois. i will test asap
super amazing thank you a lot :)
And it even supports multitouch on an 1920s typewriter. Thanks Elias (!)
awesome updates lately !
Great, perfect timing!
(Looking forward to christmas.)
I'm really looking forward to testing the multiple mice support and how far it can be driven - anyone tried what's the max of HIDs usable this way? :)
Also, native touch nodes - thanks!
Yippie, thank you!
woop woop, that's the sound of vvvv