Multiple Monitors

From TouchDesigner 088 Wiki

Output to Multiple Monitors

Multiple monitors are also known as: second monitor, multi-monitors, right monitor, dual monitors, multi-display, multi-display.

TouchDesigner can send video out to multiple projectors, monitors and recorders. TouchDesigner can run single-monitor or across many monitors. On Windows 7, on the Desktop background, rightclick -> Screen Resolution -> Multiple Displays -> Extend These Displays.

All graphics cards now let you have two+ monitors. The easiest way to get video on 3 to 6 monitors is to use Geforce 680 GTX and up, Quadro 5000 and up, equivalent AMD Radeon cards, along Matrox DualHead2Go or TripleHead2Go or Datapth X4 monitor expansion devices. With a DualHead2Go on each of the 2 video outs on the graphics card, you can get 4 monitors, and it looks like 2 double-wide monitors to Windows.

TIP: In Windows 7 and later, TouchDesigner will run fastest in Perform Mode if you combine all your panels into one Window COMP.

WARNING: Under Windows XP, TouchDesigner best works with Horizontal Span for multi-monitors. Dual View is slower and renders incorrectly.

There are three ways to get video to multiple monitors. Roll-your-Own Easy, Roll-your-Own Scripting, and Pre-Fab.

Roll Your Own - The Easy Way

Simply use the Window component.

Roll Your Own - The Scripting Way

This roll-your-own method is more work, but gives you more control and customization options. This example was based on using Horizontal Span in Windows XP.

Say you want your main control panel on the first (leftmost) of a 4-screen horizontal span configuration that you get with two DualHead2Go attached to the graphics ports. And say you want your audience to see the right 3 monitors.

With Horizontal Span, your display looks like one big monitor to Windows and TouchDesigner, 5120x1024 for example, which is four 1280x1024.

So you want your first audience image that is 1280x1024 to be placed 1280 pixels to the right. And another image placed 2560 to the right, and another at 3840. You first need to make 3 empty Container components (Buttons or Sliders are OK too), and make the Background TOP parameter set to the TOP you want to display in the second monitor, and make that Container component have width/height of 1280x1024. Now you are ready to display this. Run this command and expect to see the image in container1 on the second monitor:

controlpanel -o /container1 -a -f -w 1280 0

Then put your second and third TOP images in the Background TOP parameter of two more containers and run:

controlpanel -o /container2 -a -f -w 2560 0

controlpanel -o /container3 -a -f -w 3840 0

To close them all,

controlpanel -c /container1

controlpanel -c /container2

controlpanel -c /container3

The best way is to run it is to put the controlpanel -o commands in the F1 Macro (Dialogs -> Macros), and put the controlpanel -c commands in the F2 function key macro.

Finally this command puts your main control panel (say it's called /project1)full-screen of your first monitor:

desk -t panel -p /project1 pane1 ; winplacement -d 1

Pressing Esc with your cursor over this window closes the window.

(the winplacement -d 1 may not be needed... check... When you Esc your pane may not be updating)

Pre-Fab - Window Placement Dialog

Again, the Window component can be used.

Otherwise, the fully-pre-fab way uses the Window Placement dialog, which will take a TOP and re-draw it on the right monitor. It's set up for 4 monitors but is untested.

In Dialogs -> Window Placement there is a set of controls for second-monitor support.

A monitor consumes about 4-8 meg of graphics memory, so graphics cards with 512 meg are not impacted much by multiple monitors.

You can fix the second monitor sub-window size and aspect ratio, and have all your synths conform to your show's aspect ratio (by automatically squeezing, cropping or extending the image). You can use wide-aspect ratio output if you are sick of the 4x3 (or 16x9) standard.

Procedure for NVIDIA cards on Windows XP

The procedure to activate dual monitors is a different for each card manufacturer and sometimes varies with driver versions as well. Below the procedure is outlined for NVIDIA cards.

The first step is installing the latest NVIDIA drivers. These drivers are always being updated so check back often, sometimes there are noticeable performance gains with new versions. You can get the latest drivers here:

Step 1 Make sure the second monitor is connected.

Step 2 Right-click on the Windows' desktop, then select Properties. This will open the Display Properties dialog.

Step 3 Select the Settings tab. This is where you set your monitor resolution, we'll come back to that...

Step 4 Click on the Advanced button. A number of tabs be displayed, select the NVIDIA tab that says "Geforce xxxx " or "Quadro xxxx ". The "xxxx" will be the model of your graphics card. Click the button here labeled Start the NVIDIA Control Panel.

Step 5 In the Task list on the left, under Display, select Set up multiple displays. Then set the nView Display Mode parameter to Horizontal Span. Click the Apply button.

Before proceeding, confirm that the second monitor is now working.

Step 6 Set TouchDesigner's settings for the second monitor as described int he section below.

Additional Setup Tips

  • You may want to also turn Enable off on the Primary Display to avoid drawing the same camera twice. This is a good practice until you're confident the performance is OK.
  • Perform Mode can be turned On and Off with the Shortcut keys F1 (On) and Esc (Off).
  • The Always on Top option forces TouchDesigner to always be the top-most visible window.

See also Using Multiple Graphic Cards, Window COMP, Window Placement Dialog