Using the Target Editor

The Target Editor occupies the second tab pane in the tabbed window on the right side of the client area in Maestro's frame window. It is used to view and edit the parametric definitions of any XYScope or RMVideo target. It contains over 35 controls organized into five groups. The Gratings/Plaids and Dots control groups display properties defining the target's grating(s) or random-dot pattern, the Target Window group describes the extent and nature of the target's window, the Color group determines the color or set of colors assigned to the target, and the Video/Image group displays unique properties of the RMVideo Movie and Image target classes. A long pushbutton in the top-left corner of the form displays the editor's modification mode. Using one of the global modification modes, it is possible to simultaneously edit all or some of the targets in the same set as the loaded target object. Immediately below this pushbutton is a combo box which selects the particular type of XYScope or RMVideo target. [Note that you cannot switch between an RMVideo and an XYScope target via this control; you choose the target display platform when you create the target object initially.] As the screenshot to the right demonstrates, the editor disables controls that are irrelevant for the target type currently displayed. For example, since color and gratings are unique characteristics of RMVideo targets, all of the controls in the Color and Gratings/Plaids groups are disabled when an XYScope target is loaded into the editor; for an RMVideo Grating target, all of the parametric controls in the Dots group would be disabled.

The Target Editor

Target Modification Modes

Often an experimental protocol will include a number of similarly defined targets. For example, suppose you run a set of trials employing eight XYScope Optimized Center targets that differ only in the number of dots within the target window. While running the experiment, you realize that the target window is too large. Rather than edit each of the eight target objects individually, you can load one of them into the Target Editor, switch to the Modify ALL Targets in Set modification mode, then make the necessary changes in the target window's width and height. Maestro propagates the changes made to all compatible targets in the same set as the loaded target object! Below is a summary of the four modification modes supported by the Target Editor. You can switch modes via the pushbutton in the top-left corner, or use the relevant keyboard shortcut (when the keyboard focus is inside the editor); the button's title reflects the modification mode currently in effect. The button's background turns red whenever one of the global modes is in effect, to alert the user to the fact that any change on the form could possibly affect the definitions of sibling targets.

    • Modify THIS Target (Alt+6). The normal modification mode. Only the target currently loaded in the editor is modified.

    • Modify ALL Targets in Set (Alt+7). Change in parameter P is propagated across all compatible*** targets in current target's parent set.

    • Modify MATCHING Targets in Set (Alt+8). Change in parameter P from P = P0 to P1 is propagated across those compatible targets in the parent set for which P = P0.

    • Modify SELECTED Targets In Set (Alt+9). Change in parameter P is propagated across all compatible targets in current target's parent set that are also selected in the Maestro document object tree.

***What is a compatible target? It must be implemented on the same display platform (XYScope or RMVideo). Also, it must have the same target type as the loaded target -- unless the parameter changed was the target type itself.

The Target Window Group

Aperture -- This combo box is enabled only for selected RMVideo targets (the aperture shape is implied by the target type for most XYScope targets). Four possible apertures are supported: rectangular, elliptical, rectangular annulus, and elliptical annulus. For Grating and Plaid targets, only the rectangular and elliptical apertures are allowed.

Width, Height -- The dimensions of the rectangle bounding the target window, in visual degrees subtended at the eye. Edit controls restrict input to positive floating-point values greater than or equal to 0.01 deg, with up to 2 digits after the decimal point. In practice, the largest target windows used are on the order of 20-30 degrees. Most RMVideo and XYScope target types have these two attributes. In the case of the XYScope Rectangular Annulus target or any RMVideo target with an annular aperture, two concentric bounding rectangles are defined; the target window is the annular region outside the Inner rectangle but inside the Outer one. For the two bar-shaped targets, the Width attribute may be 0 -- to indicate that the bar should be drawn as a one pixel-thick line.

Spacing -- If an XYScope Spot/Rect Dot Array target is loaded into the editor, then this parameter replaces the Height parameter. It sets the spacing in degrees between dots in the rectangular dot array, both horizontally and vertically. If the spacing is zero, then all of the dots are painted on top of each other -- creating a spot target the intensity of which increases with the number of dots. Edit control restricts input to a non-negative floating point value, with up to 2 digits after the decimal point.

Radius -- If an XYScope Optical Flow Field target is loaded into the editor, then the bounding aperture is actually the annulus defined by two concentric circles. The radii of the two circles are restricted to the range [0.5..44.99] degrees, with up to 2 digits after the decimal point. The difference between the two radii must be greater than or equal to 2 degrees. The same controls are enabled for the analogous RMVideo target Random-Dot Flow Field, albeit with less stringent constraints on the values of the two inner and outer radii.

Drift Axis -- If an XYScope Oriented Bar/Line or a RMVideo Solid Bar/Line target is loaded into the editor, then this edit control is enabled. As with a grating target, the "drift axis" defines the orientation of the bar by specifying the angle in degrees between the positive x-axis (rightward direction) and the line perpendicular to the bar. The edit control restricts input to a non-negative floating-point value in the range [0.00...359.99] degrees, with up to 2 digits after the decimal point.

Gaussian standard deviation in X,Y -- The RMVideo target types Uniform Spot, Random-Dot Patch, Grating and Plaid all support masking the target pattern with a 2D Gaussian window. This is very useful in experiments where it is important to reduce edge effects in the behavioral or neurophysiological response to an extended video stimulus. If the standard deviations are set reasonably, the target pattern appears to fade into the background gradually. The edit controls restrict input to non-negative floating-point values with up to 2 digits after the decimal point. A standard deviation of zero is treated as infinity (Gaussian windowing disabled in the specified direction). Circular, elliptical, and 1D Gaussian masks (in which only one of the standard deviations is infinite) are all possible. Elliptical Gaussian windows are oriented with respect to the display's principal axes; in other words, they are not rotated in accordance with a specified "drift axis".

X,Y offset of hole (deg) -- These two parameters apply only to the XYScope Rectangular Annulus target. They specify the horizontal and vertical coordinate offsets for the center of the annular "hole" (the inner rectangle) relative to the center of the outer bounding rectangle. Normally, both are 0 (the default), but there may be some situations in which a non-concentric annulus is useful. Note that Maestro restricts these offsets to ensure that the inner rectangle is always inside the outer one. Also note that these two edit controls are the same ones used to specify the Gaussian standard deviation in X,Y for selected RMVideo target types; only the label changes.

The Dots Group

This control group organizes defining properties of the random-dot pattern associated with most of the XYScope target types, as well as the RMVideo target types Random-Dot Patch and Random-Dot Flow Field.

#Dots -- The total number of dots in the random-dot pattern. For most XYScope target types, this is the number of dots that are updated on each and every XYScope display frame during a trial or stimulus run. For the the Center, Surround, and Rectangular Annulus types, the pattern is always "full-screen", and the number of dots actually visible depends on the extent of the target's window. For the RMVideo Random-Dot Flow Field target, all dots are visible on every RMVideo monitor frame. For Random-Dot Patch, however, the dots are randomly distributed over the target window's bounding rectangle; thus, any dots lying in the "hole" of an annular aperture or outside an elliptical aperture will not be seen. The edit control allows only non-negative integers up to 9999. In practice, the number of dots in a target is limited by the performance of the video display platform, the number of targets being animated at one time, and other factors. When designing experiments involving any video target, it is essential to test the protocol to make sure Maestro can do what you want!

Dot max lifetime -- This parameter applies only to the RMVideo target Random-Dot Patch and the XYScope targets Opt Ctr w/Finite Dotlife, Noisy Dots (Direction), and Noisy Dots (Speed). The mutually exclusive pair of radio buttons selects the units for dot life: elapsed lifetime in milliseconds, or distance traveled in degrees. When dot life units are milliseconds, the lifetime must be expressed as an integer in the range [0..32767] ms. When the units are degrees, the edit control admits floating-point numeric values with up to 2 digits after the decimal point; the allowed range in this case is [0.01..327.67] deg. For the XYScope targets, setting the maximum dot lifetime to 32767 effectively turns off the "finite dot life" feature; for Random-Dot Patch, setting it to 0 does the same.

RandNG seed -- This parameter applies only to the RMVideo targets Random-Dot Patch and Random-Dot Flow Field. It specifies an integer used to seed the random number generator that randomizes dot locations, as well as a separate number generator dedicated to the dot directional or speed noise. If a seed of zero is specified, then a different seed value will be randomly auto-generated for each trial in which the target participates. [NOTE: Per-target seeds are not supported for the XYScope targets. This is because two RNGs are used for all XYScope targets animated. A single global seed is specified in the Video Display tab of the mode control panel, and that seed may be overridden by a parameter in an individual trial's definition.]

Dot size (pix) -- The size of each individual dot in the random-dot pattern, in pixels. This parameter applies only to the relevant RMVideo targets. Input is restricted to integer values in [1..10].

% coherence -- This edit control is visible only when the selected target type in Opt Ctr w/Coherence or Random-Dot Patch. Input is restricted to integer values in [0..100].

Pattern motion WRT screen? -- This check box applies only to the definition of the RMVideo Random-Dot Patch target. When checked, pattern velocities in Trial or Continuous mode are specified with respect to the screen's fixed frame of reference rather than the target window. This permits a more accurate emulation of the pre-Maestro 2.7.0 XYScope "noisy dots" targets in the specific situation when both target window and pattern are moving with the same non-zero velocity with respect to the screen.

Version Note on Target Pattern Velocity

As of Maestro 2.7.0, XYScope target pattern velocities are now specified with respect to the target window, as has always been the case with RMVideo targets, the Pattern motion WRT screen? flag notwithstanding.

Noise -- This control group applies only to targets that implement per-dot directional or speed noise: the RMVideo Random-Dot Patch target; and the XYScope Noisy Dots targets.

    • direc/speed -- Use this pair of mutually exclusive radio buttons to choose which type of noise is generated for the Random-Dot Patch target. For the XYScope targets, the target type determines the type of noise created.

    • noise update intv -- This edit control specifies the noise update interval, in milliseconds. Input is restricted to integer values in [2..1024]. Of course, users should ensure that the value is at least equal to or larger than the frame period of the XYScope or RMVideo display. Typically, it is set to an integral multiple of the display frame period.

    • +/- range -- This edit control specifies a value N defining the allowed noise range [-N..N]. For directional noise, N is an offset angle in degrees and is restricted to integer values in [0..180]. For additive speed noise, N is expressed as a percentage of the nominal pattern speed. It is restricted to integer values in [0..300]. For multiplicative speed noise (· 2x), N defines the range over which the exponent x is randomly chosen; it is restricted to integer values in [1..7].

    • speed noise algorithm -- Depress this pushbutton to toggle between the two choices for generating per-dot speed noise: additive or multiplicative (· 2x).

The Gratings/Plaids Group

These controls apply only to the RMVideo Grating and Plaid targets. Two sets of grating parameters are enabled for the Plaid target.

Sinusoidal/squarewave -- This pair of mutually exclusive radio buttons selects the grating function. Let d be the distance along the grating normal from the target's center, in degrees subtended at the eye. Let k be the spatial frequency in cycles per degree, and φ be the initial spatial phase in radians. Consider a grayscale grating with mean luminance L and contrast C, both normalized to the range [0..1]. Then, for a sinusoidal grating, the grating function is f(d) = L + 0.5C·sin(2πk·d + φ). For a squarewave grating, f(d) = L·(1+C) if 0 <= mod(2πk·d + φ, 2π) < π, or L·(1-C) otherwise. For Plaid targets, the two component gratings are both sinusoidal or both squarewave; you cannot have one of each.

Independent gratings? -- This check box applies only to the Plaid target type. If checked, then the two component gratings are treated as independent target patterns. During a trial, the target's horizontal pattern velocity is interpreted as the drift velocity for grating #1, while the target's vertical pattern velocity is the drift velocity for grating #2. If the box is not checked, the gratings act together as a single unified pattern, and the trial target pattern velocity vector has its normal meaning. This feature is incompatible with the dynamic orientation feature, described next.

Dynamic orientation? -- If unchecked, each component grating's orientation is a constant. In the single-grating case, the grating's drift speed is set by the H component of the target's pattern velocity vector, and the V component is ignored. In the plaid case, the interpretation of the target pattern velocity vector depends on the state of the Independent gratings? flag; see above. If Dynamic orientation? is checked, each component grating's orientation is adjusted on a frame-by-frame basis: its initial or "defined" orientation is offset by the direction angle of the per-frame target pattern velocity vector. When that vector is (0, 0) -- so that the direction is undefined -- the grating stays in the same orientation it was in during the previous display frame. This feature can be useful for designing trials to assess directional sensitivity of a neural unit.

Drift axis -- This parameter, which specifies the angle in degrees between the positive x-axis and a line perpendicular to the grating lines (and thus parallel to the direction of drift), determines the orientation of the grating. Currently, any floating-point value can be entered, with up to 2 digits after the decimal point. Typical values will range from [-180..180] deg, or [0..360) deg, depending on your preference.

Spatial freq -- The spatial frequency of a grating in cycles per visual deg subtended at the eye. Edit control restricts input to positive floating point values greater than or equal to 0.01, with up to 2 digits after the decimal point. Practically speaking, the minimum and maximum frequencies achievable depend on the RMVideo monitor's resolution and its distance from the eye. If Maestro is unable to reproduce the specified spatial frequency, it will not start the trial or stimulus run in which the target was to participate, and it will note the error in the Message Log panel.

Spatial phase -- The initial spatial phase of the grating in degrees. Currently, any floating-point value can be entered, with up to 2 digits after the decimal point. Typical values will range from [-180..180] deg.

The Color group

The controls in this group box define the color specification for RMVideo targets. They include mean luminance and contrast for each channel in the RGB colorspace: Red, Green, and Blue. Luminance values are restricted to integers in the range [0..255], while contrast values are restricted to integers in [0..100] percent. The edit controls for contrast are enabled only for the Random-Dot Patch, Grating and Plaid targets; all other RMVideo targets are drawn with a single color. The Use Grayscale check box can be checked to simplify specification of a grayscale target. When this box is checked, the controls for the Green and Blue axes are disabled, and all three color components are set in accordance with the values entered in the Red column. For the Plaid target, an entire second set of controls are enabled for defining the R/G/B mean and contrast for the plaid's second grating.

The Flicker group

(As of V4.1.0) The controls in this group box define "flicker" parameters for RMVideo targets. Whenever this feature is enabled and the target is being displayed in Trial or Continuous mode, the target will flicker on and off periodically. The feature is intended specifically to support apparent motion studies, and it can be enabled for any of the RMVideo target types. The flicker cycle consists of an On phase, Off phase, and an Initial Delay preceding the On phase of the first cycle. The target is not displayed during the initial delay phase; the primary purpose of this parameter is to stagger the flicker cycles of two different targets. All three flicker cycle parameters are specified as a set number of RMVideo frame periods between 0 and 99. If either On = 0 or Off = 0, the feature is disabled. [NOTE: The target flickers only while it is turned on, either in a trial or in the active target list in Continuous mode. The flicker cycle is reset each time the target is turned off and then back on.]

The Video/Image group

The controls in this group box apply only to the RMVideo Movie and Image targets. The video or image source is identified by a folder and file name, which uniquely locate the video within the "media store" on the RMVideo host machine. Names are restricted to 30 characters or less; only alphanumeric characters, the period ('.'), or the underscore ('_') are allowed. If either name contains an illegal character, it will be reset to "folderName" or "fileName". [NOTE that Maestro does not check that the specified media file currently exists on the RMVideo host; that is the user's responsibility.] Three check boxes toggle flags affecting the playback behavior of the Movie target during a trial; they may be used in any combination. [These check boxes are disabled for an Image target.] Check the Pause playback when turned off? box to pause the movie whenever the target is turned off over the course of a trial; otherwise, the movie will continue to play (invisibly) while it is off. NOTE that a movie does not start until the first time it is turned on. Check the Loop indefinitely during trial? box if you want the movie to replay over and over until the trial's end, and check Playback at monitor frame rate? if you want the playback rate to match the RMVideo monitor's refresh rate rather than the rate specified within the video file itself. If this last flag is not set, RMVideo will repeat frames as needed to match the file-specified playback rate as accurately as possible. Of course, if the refresh rate is not an even multiple of that playback rate, you may see jitter in the playback.