Feed on
Posts
Comments

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.

Albatron Multi Touch

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.

 

Multi-touch painting

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.

Downloading MultiTouchVista

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.

Installing Drivers

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.

Install driver.cmd

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. 

Touch tab in settings dialog

Figure 4: Touch tab in settings dialog.

image

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). 

Service and configuration applications

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.

image

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.

10 Responses to “Developing Win 7 Multi-Touch Apps Without a Multi-Touch Screen”

    • Peter says:

      hi

      I tried your how-to, but I can’t click anything. I can move my mouse cursor and the two red dots. But I only get mouse clicks from my mouse cursor.

      Can I test MT in MS PAINT? I’ve read that it supports Multitouch?

  1. tim says:

    Also unable to click anything on this end. Perhaps it only works on your app?

    • George says:

      open Multitouch.Service.Console.exe and Multitouch.Driver.Console.exe end will work.
      Do not close those windows if you want to use multi touch …
      If you do not open Multitouch.Driver.Console.exe you will not be able to use click …

  2. Michael says:

    Nothing here either. Could you provide more information ? I get the red dots, but no WM_TOUCH inputs – plus the driver seems to freeze from time to time (x64).

  3. Stian Farstad says:

    Bump.

    Have the same issue as the others. I’m porting a surface app I made for my bachelorthesis this semester to MS Touch and WPF 4.0. Sadly there isn’t any simulator for ms touch, so I’m trying these drivers and services.

    No go. The dots appear but gestures are not sent to the message pump. I lost you at installing the mousedriver. Your video links are broken.

    regards,
    Stian Farstad

    • Chad says:

      Stian,

      I’m assuming a couple of things here:
      1. You are running Win 7
      2. You’ve installed the driver (Install Driver.cmd) and have access to the Pen and Touch settings in Windows 7. This also means that you’ve disabled and then re-enabled the Universal Software HID device in your Device Manager.
      3. Make sure you have an additional mouse plugged into your workstation.

      In the multitouchvista Framework subfolder you’ll find multiple .exe files. Multitouch.Driver.Console.exe and Multitouch.Service.Console.exe are used for multimice and/or TUIO touch simultation.

      4. Click on Start and type ‘pen and touch’. Click on the Pen and Touch link in the search results. Click on the Touch tab at the top of the window. Click on the ‘Enable multitouch gestures and Inking’ checkbox. Click ‘Apply’.
      5. Navigate to the root of your Multitouchvista folder. Run the Multitouch.Service.Console.exe and Multitouch.Driver.Console.exe.
      6. You should not have the red dots appear, but you are still forced to navigate through the mouse cursor. This is because the mouse events take precedence over the simulated touch events.
      7. Run the Multitouch.Configuration.WPF.exe file and click on the Configure device button.
      8. Click on the checkbox to suppress mouse input. Click OK.

      That should do it. You should now be able to move the red dots and simulate multitouch events. If you have the Surface Touch pack for Win 7, you can open up the apps and play around with them.

      Good Luck!
      Chad

  4. John says:

    I loaded everything as mentioned and everything worked fine, but the second time I tried using it, I clicked the multitouch.driver.console and the multitouch.services.console and the cursor turned into two red dots. At this point the cursor stops moving but I can control the red dots with my two mice. I can’t click on anything with the red dots and I can’t move the regular cursor either. I can’t open the WPF configuration tool since nothing I do can click the screen. If I open the configuration tool first, it says I have to be running the driver.console to change configuration. The question is, how do I uncheck the checkbox in the configuration tool so I can have control of the regular mouse again?

  5. Walt Ritscher says:

    John. You should be able to tab to the checkbox, press spacebar to check the checkbox, then tab to the OK button and press enter to save.

  6. Yasin says:

    Great work, thanks ;)
    I’ve managed this to work about just in half an hour with the help of the answers to the responses.