Support for multiple touchscreen monitors

Hello! Let me give you a bit of background on my project to set the stage:

I am working on an interactive installation that will have a 4K projector and 2 HD touchscreens to drive various visualizations. We are using 2 Elo 2740L touchscreens for the installation: elotouch.com/Products/LCDs/2740L/default.asp

The 2 touchscreens are supposed to present different UI and be completely independent, although they both trigger animations in the projector, they are meant to be 2 separate experiences (driven by the same computer).

Now on to my question. I have done some preliminary testing with the hardware and found that Touchdesigner doesn’t seem to be able to recognize the 2 touch screen monitors independently at the same time. When I tap on a button on the first screen for example, it doesn’t let me tap a button on the second screen while my finger is down on the first. I can independently tap on one button and then the other, but not at the same time. This is a problem since most users will be interacting with the 2 screens independently and they’ll end up blocking each other’s taps every once in a while, making the app seem unresponsive.

Here is what I’ve tried:

  • I made a 3840 x 1080 container with 2 1920 x 1080 containers inside
  • each 1920 x 1080 container has a button inside, centered
  • I added the Multitouch in DAT to the top container and I’m displaying raw events
  • When I put 1 or 2 fingers on touchscreen 1 I get the raw events without a problem
  • If I put 1 finger on touchscreen 1 and then a second finger on touchscreen 2 I only see the events for the first touchscreen in the DAT. As long as my finger is down on touchscreen1 I can’t get any events to register on touchscreen 2.

I am inclined to believe this is a Touchdesigner issue rather than a Windows issue because I discovered a weird edge case. If I put a finger down on touchscreen 1 on anything other than the touchdesigner perform window (the task bar for example) and then tap with a second finger on touchscreen 2 I do get the events to register correctly, since the first touch never went through Touchdesigner. It’s only when both fingers are interacting with Touchdesigner that the events stop responding on the second screen until I lift my finger from the first.

I have included a .toe file of my test in case anyone wants to review it. Is this something that I can work around? Is there any way to get the raw events from Windows (without being processed by the TouchDesigner window)?

Thank you so much for any help on this matter.

Can you let me know which version of windows you are using?

Selina

Sorry, should’ve posted that originally. I am using Windows 10 and TouchDesigner 088 build 59770.

For what it’s worth, my machine originally had Windows 8 installed, but I read on the wiki that Windows 7/8 only support 1 touchscreen at a time, so I upgraded to Windows 10 but I got the same result.

I have done more testing since my last post and I found out that if I open separate windows and place one window in each touchscreen I can receive simultaneous touches. Same goes for opening 2 separate TouchDesigner processes and performing them on separate touchscreens.

The issue seems to be happening only when one window spans multiple touchscreen monitors.

So that’s the root of the issue. TouchDesigner is built for Windows 7, which only supports the use of 1 touchscreen at a time. I’m glad you were able to find a work around, but be aware that multiple windows can be slow. You can read more about it here:

derivative.ca/wiki088/index. … tical_Sync

Thank you Selina, I have one more question if you’d be so kind: would you recommend running 2 separate touch designer processes in perform mode as opposed to one process with multiple windows? Is there a performance increase there?

Hi Fernando,

It’s hard to give the right recommendation for this as both have drawbacks. I would work out the project in 1 TouchDesigner file first and build it such that it’s easily splitable into 2 processes.
If I understand you correctly the screens will not show synchronized animations and or video?

Cheers
Markus

Hello Markus,

I totally understand. Unfortunately there is synced video playback between the screens. The projection will show a 5 minute loop simulation of the wind patterns in any given day, and the 2 touchscreens will interact based on these wind patterns. Each touchscreen will have a smaller video with a subset of what’s being projected that also lasts 5 minutes.

I was synching all these videos to the timeline and it’s worked great so far, but if I need to split it I’ll have to find a way to pass the current time to the other process.

I’ve done some more testing with the multiple window approach, and it’s working well so far, but I’ll try to keep things modular in case I need to split it as I add more of my animations and video sources.

Thank you for all your help so far!
Fernando

What’s the state of this in 2020?

I just encountered the same problem and workaround mentioned above.

This still exists as far as I can tell. I made a similar post this week that describes the same issue.

I broke out my network into 3 “open” windows and 1 “perform” window. I haven’t noticed a crazy performance hit - or any at all surprisingly. I’m going to rework this network and run it as four instances of TD all with separate perform windows and see if there is any change in performance.