Support for defining trial random variables in a JSON-formatted Maestro experiment (JMX) document. The Matlab utility maestrodoc() has been updated (v1.2.2) to support defining and using random variables in a trial, and this release of Maestro can import JMX documents containing trial random variable definitions.
V1.2.2 of maestrodoc() also drops support for any XYScope-related content in the JMX document. Maestro can still import JMX documents generated by earlier releases of maestrodoc(), but XYScope content is skipped.
Dropped support for the Pulse Stimulus Generator Module (PSGM). This latched external device, controlled by the PCIe-6363's digital outputs, was designed but never really put to use in experiments and was abandoned many years ago. A Maestro trial no longer has PSGM parameters in its definition, and the PSGM stimulus channel type has been removed. Existing experiment documents (.cxe) are migrated silently: PSGM trial parameters are read in and discarded; similarly for any stimulus run channels that used the channel type PSGM.
Cosmetic changes to the Trial Editor and Stimulus Run Editor, removing PSGM-specific widgets/controls.
Stimulus run records no longer written to data file. Post-recording analysis programs like JMWork and readcxdata() never processed these records anyway. Data file version bumped to 25 to mark this change. Readcxdata() updated to accept V=25 data files, and to remove "vestigial" output fields stimulusrun and psgm. No changes needed in JMWork.
New special feature in a Maestro trial: findAndWait. This is similar in some respects to the searchTask special feature introduced in Maestro 2.6.5. Like searchTask, two or more targets must be turned on in the special segment, which is always the last segment in the trial. A target is "found" in the same manner -- the subject's eye must lie within the fixation window for the time specified by the special segment's grace period. Unlike searchTask, the trial does not end immediately when a target is selected. Instead, a reward is delivered immediately if the correct target is chosen, all targets are turned off for the remainder of the trial, which runs to completion while the subject "waits", and no reward whatsoever is delivered at trial's end. If the correct target -- designated Fix1 during the special segment -- is not chosen, the subject receives no reward at all.
V1.2.3 of maestrodoc() dropped support for the PSGM and added support for defining trials that use the new findAndWait feature.
Limited support for stereo experiments using RMVideo.
Added a new RMVideo target parameter, RMVTGTDEF.fDotDisp, specifying stereo dot disparity in visual degrees. Applies only to the Point, Random-Dot Patch, and Flow Field target types. When nonzero, the disparity works as a target offset: when drawing the "picture" for the left eye, the target is offset by -0.5*disparity; for the right eye, the target is offset by +0.5*disparity. A numeric edit control in the Dots group of the Target Editor displays/edits the disparity value, which defaults to 0 and must be non-negative.
RMVideo (version 11) updated to receive the new parameter and to enable "stereo mode" if the video card supports it (NVidia Quadro cards, eg). In stereo mode, RMVideo writes to a left back buffer and a right back buffer, and the video card handles displaying the contents of the left buffer on one frame and the contents of the right buffer on the next. A signal from the video card is used to drive a polarizer so that the subject's left eye "sees" the contents of the left buffer, and the right eye sees the right buffer's contents. This means, of course, that the "stereo rate" is one-half the actual frame rate of the video display. If stereo mode is not supported, then RMVideo behaves in the normal fashion, drawing to a single back buffer and swapping the front and back buffers on every frame.
JMWork (1.9.4) and readcxdata() updated to handle reading V=25 Maestro data files (to handle the new RMVTGTDEF.fDotDisp parameter in any target definition records).
V1.2.3 of maestrodoc() updated to support specifying the new dot disparity parameter.
New special feature in a Maestro trial: selDurByFix. This behaves much like the original selByFix operation, except that the subject's target selection during the special segment determines the duration of the subsequent segment S in addition to the length of the reward pulse delivered at successful completion of the trial. Let segment S have minimum duration D0 and maximum duration D1 as specified in the trial definition. At runtime, if the subject selects Fix1 during the special segment, segment S wil have duration D0; if Fix2 is selected, the segment duration will be D1.
Minimum and maximum segment duration can now be independently set to a constant value or a trial random variable. Prior to this change, if the user assigned either the minimum or maximum to an RV, then both were set to the same RV. This change allows the user to specify two different random variables to the minimum and maximum duration of the segment S following the special segment in a selDurByFix trial.
Minor tweaks to the segment table in the Trial Editor: (1) Increased the column width. (2) Adjusted width of inplace combo box control to accommodate the longest string in the choice list displayed in the combo box dropdown.
Updated JMWork (release 1.9.3) and readcxdata() to handle a new trial code introduced with the implementation of selDurByFix.
Update maestrodoc() utility to allow specification of a trial using the new selDurByFix feature. However, trial RVs are still not supported by that utility.
Migrated Maestro to 64-bit Windows 11 and RTX64 Version 4.5. Microsoft's extended support for Windows 10 LTSC 1607 will end in Oct 2025. As a final contribution before active development of Maestro comes to an end, this release ports the application to run on Windows 11 (Professional, v 23H2) and RTX64 4.5.
XYScope-related elements removed from the user interface. Hardware support for the XYScope display was dropped in Maestro 4.0; however, XYScope-related UI elements remained, and it was still possible to define XYScope targets and trials that used them. As of this release, the XYScope platform is dropped entirely. The only available display is the RMVideo display, and the only available targets are RMVideo targets or the Chair. All user interface elements specific to the XYScope have been removed. When opening an existing experiment document containing XYScope target definitions, Maestro 5 ignores all such targets and the trials and stimulus runs that used them, as well as the XYScope display settings. While the Matlab maestrodoc() script still supports defining XYScope targets, Maestro 5 likewise ignores any XYScope-related objects found in the JMX documents generated by that script (the File|Import JMX doc... command).
File|Import command removed. As of this release, Maestro no longer supports loading the very old cntrlxUnix-style text files that defined targets, trials, and the like.
The mode control panel is no longer hidden when transitioning from another operational mode to Idle -- which was an annoyance since most users want to keep the control panel visible at all times. Once you're in Idle mode, you can still hide the panel by pressing F9 or clicking on the small close ("x") button in the top right corner of the panel.
Other than the exceptions noted above, Maestro 5 has the same feature set as the final release of Maestro 4.x.