Output to Multiple Monitors
Multiple monitors are also known as: second monitor, multi-monitors, right monitor, dual monitors, multi-screen, dual-screen.
Touch can send video out to multiple projectors, monitors and recorders. TouchDesigner can run single-monitor or across many monitors (Horizontal Span only when on XP, Dualview on Windows Vista and 7).
All graphics cards now let you have two monitors. The easiest way to get video on 3 to 6 monitors is to use one or two Matrox DualHead2Go or TripleHead2Go 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 wide monitors to Windows.
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 A and B, and Pre-Fab.
Roll Your Own - The Easy Way
Use the Window component.
Roll Your Own - The Older Scripting Way
This roll-your-own method is more work, gives you more control and works fine.
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
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: http://www.nvidia.com
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 Touch's settings for the second monitor as described int he section below.
Touch Settings for Second Monitor
Step 1 With the second monitor now working, it's now time to configure TouchDesigner. Open TouchDesigner, then open the Dialogs -> Window Placement... dialog.
Step 2 Change the Primary Display settings to Left Half. In the Secondary Display settings, check the Enable box. Make sure the TOP you want to see is in the path, the default being /monitor2. Click the Apply button. You should see your image on the second monitor.
Step 3 Restart TouchDesigner when changing to Left Half. You can leave it at Automatic.
Additional Setup Tips
- In the Secondary Display section, before you Enable, you can set the Left-Right-Top-Bottom parameters to create a smaller sub-window to be safe at first. The default settings will fill up the second monitor automatically.
- 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.
- The secondary monitor can be turned On and Off with the Shortcut function keys Alt-F1 (On) and Alt-F2 (Off).
- To get the second monitor to display a different camera, select from the menu to the right of Enable.
- The Always on Top option forces TouchDesigner to always be the top-most visible window.
- TouchDesigner can start up in different layouts. The settings are saved and restored on startup.