dispread
Author: Graeme Gill

## spectro/dispread

### Summary

Display test patches on a monitor, read the colorimetric value result with the colorimeter, and create the chart readings file. The type of instrument is determined by the communication port selected. Emission and display measurement instruments are supported.
If you want to read a display manually rather than automatically, see chartread and the -d option.

### Usage

dispread [-options] inoutfile
-v Verbose mode
-display displayname [X11 only] Choose X11 display name
-d n[,m] [X11 only]Choose the display from the following list (default 1),
and optionally choose a different display m for VideoLUT access.
-d n Choose the display from the following list (default 1)
-c listno Set communication port from the following list (default 1)
-y c|l Display type, c = CRT, l = LCD
-k file.cal Apply display calibration file while reading
-s Save spectral information (default don't save)
-P ho,vo,ss Position test window and scale it
ho,vi: 0.0 = left/top, 0.5 = center, 1.0 = right/bottom etc.
ss: 0.5 = half, 1.0 = normal, 2.0 = double etc.
-F Fill whole screen with black background
-n [X11 only] Don't set override redirect on test window
-K Run calibration first
-N Disable auto calibration of instrument
-H Use high resolution spectrum mode (if available)
-V Use adaptive measurement mode (if available)
-C "command" Invoke shell "command" each time a color is set
-M "command" Invoke shell "command" each time a color is measured
-W n|h|x Ovride serial port flow control: n = none, h = HW, x = Xon/Xoff
-D [level] Print debug diagnostics to stderr
inoutfile Base name for input[.ti1]/output[.ti3] file.
Examples
dispread -c1 -i92 mycrt

### Comments

This is the utility for exercising a display, in order to measure its color characteristics. The device test colors are defined by the outfile.ti1 file, while the resulting device+colorimetric and optional spectral readings are stored in the outfile.ti3 file. Display calibration curves can be applied during the measurements, and the curves included in the resulting .ti3 data file using the -kflag. See dispcal for information on how to calibrate the display before profiling it. For best results, you should run this against a neutral grey desktop background, and avoid having any bright images or windows on the screen at the time you run it.
The -v flag reports progress information.
-display: When running on a UNIX based system that used the X11 Windowing System, dispread will by default use the $DISPLAY environment variable to determine which display and screen to read from. This can be overridden by supplying an X11 display name to the -display option. Note that if Xinerama is active, you can't select the screen using $DISPLAY or -display, you have to select it using the -d parameter.
-d: By default the main display will be the location of the test window. If the system has more than one display or screen, an alternate display/screen can be selected with the -d parameter. If you invoke dispread so as to display the usage information (i.e. "dispcal -?" or "dispcal --"), then the discovered displays/screens will be listed. Multiple displays may not be listed, if they appear as a single display to the operating system (ie. the multi-display support is hidden in the video card driver). On UNIX based system that used the X11 Windowing System, the -d parameter will override the screen specified by the $DISPLAY or -display parameter.
Note that if a calibration file is provided using the -k option, and the VideoLUTs for a display are not accessible, dispread will issue a warning , but will continue to run without initialising the VideoLUTs . This could be because you are trying to access a remote display, and the remote display doesn't support the XF86VidMode extension, or perhaps you are running multiple monitors using NVidia TwinView, or MergedFB, and trying to access anything other than the primary monitor. TwinView and MergedFB don't properly support the XF86VidMode extension for multiple displays. Xinerama does properly support calibration of multiple displays. You can use dispwin -r to test whether the VideoLUTs are accessible for a particular display. See also below, on how to select a different display for VideoLUT access.
Because of the difficulty cause by TwinView and MergedFB in X11 based systems, you can optionally specify a separate display number after the display that is going to be used to present test patches, for accessing the VideoLUT hardware. This must be specified as a single string, e.g. -d 1,2 . Some experimentation may be needed using dispwin on such systems, to discover what screen has access to the VideoLUT hardware, and which screens the test patches appear on. You may be able to calibrate one screen, and then share the calibration with another screen. Profiling can be done independently to calibration.
-c: The instrument is assumed to communicate through a USB or serial communication port, and the port can be selected with the -c option, if the instrument is not connected to the first port. If you invoke dispread so as to display the usage information (i.e. "dispread -?" or "dispread --"), then the discovered USB and serial ports will be listed. On UNIX/Linux, a list of all possible serial ports are shown, but not all of them may actually be present on your system.
-y: Display type. Colorimeters can do a more accurate job if they know what type of display technology they are measuring. Use -yc if you are calibrating a CRT (Cathode Ray Tube) type monitor or Plasma type display, and use -yl if you are calibrating an LCD (Liquid Crystal Display).
-s: By default only the colorimetric information (XYZ value) will be saved, but for instruments that support spectral readings (such as the Gretag Spectrolino), the -s option will save the spectral readings to the .ti3 file as well.
-k: If a display video lookup table calibration .cal file is provided, it will be applied to the display while the measurements are being taken, and also included in the resulting .ti3 data file, so that colprof can include it as a vcgt tag in the resulting profile. The calibration file has usually been created using dispcal. If a calibration file is not created, then the display will be read in whatever calibration state it is in.
The -P parameter allows you to position and size the test patch window. By default it is places in the center of the screen, and sized appropriately for the type of instrument. The ho and vo values govern the horizontal and vertical offset respectively. A value of 0.0 positions the window to the far left or top of the screen, a value of 0.5 positions it in the center of the screen (the default), and 1.0 positions it to the far right or bottom of the screen. The ss parameter is a scale factor for the test window size. A value of 0.5 for instance, would produce a half sized window. A value of 2.0 will produce a double size window. Note that the ho,vo,ss numbers must be specified as a single string (no space between the numbers and the comma). For example, to create a double sized test window at the top right of the screen, use -P 1,0,2 .
The -F flag causes the while screen behind the test window to be masked with black. This can aid black accuracy when measuring CRT displays or projectors.
-n: When running on a UNIX based system that used the X11 Windowing System, dispread normally selects the override redirect so that the test window will appear above any other windows on the display. On some systems this can interfere with window manager operation, and the -n option turns this behaviour off.
The -K option runs through the black and sensor relative calibration routines for the Xrite DTP92 and DTP94 instrument, the black level calibration for the Eye-One Display 1, and a CRT frequency calibration for the Eye-One Display 2. For the black calibration the instrument should be placed on an opaque, black surface, and any stray light should be avoided by placing something opaque over the instrument. If a Spectrolino is being used, then a white and black calibration will always be performed before the instrument can be placed on the display, unless the -N flag is used. Generally it is not necessary to do a calibration every time an instrument is used, just now and again. There is no point in doing a CRT frequency calibration, as this will be done automatically at the commencement of patch reading.
The -N flag disables any automatic instrument calibration (used for the Gretag Spectrolino for instance). This would be used when the instrument is being used for a series of measurements, and it is inconvenient to place it on it's calibration tile between measurements. The instrument should be calibrated at least once for each measurement session though.
The -H option turns on high resolution spectral mode, if the instrument supports it. See Operation of particular instruments for more details.
The -V option uses adaptive emission measurement mode, if the instrument supports it, such as the Eye-One Pro. This may give better accuracy for low level measurements, but may be more inconsistent overall due to the varying integration times. Overall measurement time will probably be longer.
The -C "command" option allows a method of relaying each test value to some other display than that on the system running dispread (for instance, a photo frame, PDA screen etc.), by causing the given command to be invoked to the shell, with six arguments. The first three arguments are the RGB test color as integers in the range 0 to 255, the second three parameters are the RGB test color as floating point numbers in the range 0.0 to 1.0. The script or utility should relay the given color to the screen in some manner (e.g. by generating a raster file of the given color and sending it to the display being profiled), before returning. Note that a test window will also be created on the system running dispread.
The -M "command" option allows a method of gathering each test value from some external source, such as an instrument that is not directly supported by Argyll. The given command is involked to the shell, with six arguments. The first three arguments are the RGB test color as integers in the range 0 to 255, the second three parameters are the RGB test color as floating point numbers in the range 0.0 to 1.0. The script or utility should create a file called "command.meas" that contains the XYZ values for the given RGB (or measured from the test window) in cd/m^2 as three numbers separated by spaces, before returning. If the command returns a non-zero return value, dispread will abort. Note that a test window will also be created on the system running dispread.
The -W n|h|x parameter overrides the default serial communications flow control setting. The value n turns all flow control off, h sets hardware handshaking, and x sets Xon/Xoff handshaking. This commend may be useful in workaround serial communications issues with some systems and cables.
The -D flag causes communications and other instrument diagnostics to be printed to stdout. A level can be set between 1 .. 9, that may give progressively more verbose information, depending on the instrument. This can be useful in tracking down why an instrument can't connect.
The final parameter on the command line is the base filename for the .ti1 input file, and the .ti3 output file. dispread will add the .ti1 and .ti3 extensions automatically.
NOTE that on an X11 system, if the environment variable ARGYLL_IGNORE_XRANDR1_2 is set (ie. set it to "yes"), then the presence of the XRandR 1.2 extension will be ignored, and other extensions such as Xinerama and XF86VidMode extension will be used. This may be a way to work around buggy XRandR 1.2 implementations.

If a large number of patches is being read, the screensaver on many systems can interfere with the operation of dispread. It is therefore advisable in these cases to manually turn off the screensaver before commencing the measurements.
If communications break down with a USB connected instrument, you may have to unplug it, and plug it in again to recover.
Some systems (Apple OSX in particular) have a special set of user interface controls ("Universal Access") that allows altering the display in ways designed to assist visually impaired users, by increasing contrast etc. This will interfere badly with any attempts to calibrate or profile such a system, and must be turned off in order to do so. Note that certain magic keyboard sequences can turn this on by accident.