Keyboard, Mouse and Touch news

December 10, 2013 posted by: Elias

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 windowstouchbeta-contribution, global-keyhookbeta-contribution and directinput-(devices)beta-contribution 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 Modepin 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 typeSource nodesSink nodes
KeyboardKeyboard (Devices Window)
Keyboard (Devices Desktop)
KeyEvents (Keyboard Join)KeyEvents (Keyboard Split)
KeyStates (Keyboard Split)
MouseMouse (Devices Window)
Mouse (Devices Desktop)
MouseEvents (Mouse Join)
MouseStates (Mouse Join)MouseEvents (Mouse Split)
MouseStates (Mouse Split)
TouchTouch (Devices)TouchEvents (Touch Split)
TouchStates (Touch Split)

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


Comments are no longer accepted for this post.

10.12.2013 - 17:24


I can now finally make a cool multi touch interface for my drum machine :)

10.12.2013 - 18:31
brilliant, native touchnodes !
13.12.2013 - 05:23
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!
13.12.2013 - 16:26
Yippie, thank you!
13.12.2013 - 16:28
woop woop, that’s the sound of vvvv
10.12.2013 - 19:02
Zoom… and we’re back up to speed! Thanks devvvvs.
10.12.2013 - 19:52
multiple mice wow!
10.12.2013 - 20:02
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.
11.12.2013 - 00:13
thank you bois. i will test asap
11.12.2013 - 13:59
super amazing thank you a lot :)
11.12.2013 - 17:07
And it even supports multitouch on an 1920s typewriter. Thanks Elias (!)
12.12.2013 - 11:13
awesome updates lately !
13.12.2013 - 04:18

Great, perfect timing!

(Looking forward to christmas.)



vvvv - Dießl & Gregor GbR
Oranienstrasse 10
10997 Berlin/Germany
VAT: DE275566955


Follow us

Sign up for our Newsletter

Your subscription could not be saved. Please try again.
Your subscription has been successful.