Multi-touch (MT) is a big part of Windows 7. MT is exciting and opens up new choices for UI interaction but the enthusiasm will quickly fade if you don’t have a multi-touch enabled monitor.
Figure 1: Albatron Multi-touch.
The good news is that there are multi-touch devices coming soon to your favorite hardware dealer. Hardware vendors like HP, Dell and Albatron want to have their products available before the October 22nd, 2009 release of Window 7. DigitTimes reports that a number of companies will be competing for a place on your desktop.
Touch panel makers, including eTurbo Touch, Mildex Optical, and Integrated Digital Technologies (IDT), are showcasing multi-touch technology supporting Microsoft Windows 7 at the ongoing Computex 2009.
The touch panel makers are introducing improved capacitive touch panels for medium- to large-size products, with prices 50-60% more than traditional capacitive touch panels and 60-80% less than projective capacitive touch panels, according to market sources.
Figure 2: Multi-touch painting.
Developing MT Applications Without a MT Device
One of the biggest obstacles in programming and testing a multi-touch (MT) application is enabling developers who don’t have MT computers to interact in a simulated MT way.
The Surface team solved this problem by creating a Surface emulator. Since the Surface has a five camera vision system buried in the depths of the table they needed to create a emulator that mimics that camera system on a normal PC.
It’s similar if you plan on adding MT to your Windows 7 application. For various reasons your dev team may not have MT devices for all team members. Both testers and developers need a way simulate user touches from their legacy hardware. Unfortunately there is no official emulator available from Microsoft. But there is a third party work-around that solves that problem.
Multi-Touch Vista on CodePlex to the Rescue
Multi-Touch Vista is a user input management layer that handles input from various devices (touchlib, multiple mice, TUIO etc.) and normalises it against the scale and rotation of the target window. Now with multi-touch driver for Windows 7. — http://multitouchvista.codeplex.com
The Multi-Touch Vista project on CodePlex, despite what you’d infer from the name, is intended to run under Windows 7. It provides a multi-touch driver and services for your computer, which enables you to use multiple mice to simulate MT input in your application, even though your computer may not have a MT device attached.
The directions on the Codeplex site are a little vague. Here is what worked for me.
The first step is to download the latest release from the Multi-touch CodePlex site. Unzip the files into any folder on your hard drive (see Video 1).
Video 1: Downloading the project.
Windows 7 supports input from a lot of devices. There are the traditional input devices, (mouse and keyboard), tablet PC pens (stylus) and touch specific input (contacts). MultiTouchVista installs a driver that tricks Windows 7 into thinking your multiple mice are really touch contacts. Then you can simulate applying two finger rotations to your screen entities via your two mice
Installing this driver is easy. Find the Install Driver.cmd fill in Windows Explorer and double-click it.
Figure 3: Install driver.cmd
To verify that the driver is installed open the Pen and Touch dialog. The last two tabs, Touch (Figure 4) and Panning (Figure 5) are visible if Windows detects a touch input device.
Figure 4: Touch tab in settings dialog.
Figure 5: Panning tab in settings dialog.
Watch the video (Video 2) to see how to install the multi mouse drivers.
Video 2: Installing the drivers.
Starting the Necessary Services
The last step is to start the two services provided by MultiTouchVista project. From the install folder run Multitouch.Driver.Services.exe and Multitouch.Service.Console.exe (Figure 6).
Figure 6: The service and configuration applications
Once the Multitouch.Service.Console.exe starts you will see a red dot on the screen for each mouse attached to your computer. In the screenshot (Figure 7) of my laptop there are three red dots. One dot for my laptop touchpad and two dots for each of the connected mice.
Figure 7: The three red contact dots.
The MultiTouchVista API also provides a simple configuration tool(Multitouch.Configuration.WPF.exe) that blocks the Windows 7 native input. Be careful, when using this utility. If you choose this option your mice will no longer interact with any Windows 7 window. They will work within your touch enabled WPF application but not on the rest of the Window UI.
This last video shows how to start these services (Video 3).
Note: The audio encoding for this is distorted. I will encode again and repost.
Video 3: Starting the services.
Virtual PC and MultiTouchVista
I tested MultiTouchVista on a couple Windows 7 images running on Virtual PC and it doesn’t work. I’m guessing that is due to the way VPC handles multiple mouse input. I also attempted to test on Sun’s Virtualbox but I couldn’t install Windows 7 RC on the Virtualbox drive image.