The User Interface

GUI with docking/floating panels

Maestro has a single frame window within which experiments can be defined, executed, and monitored. The snapshots on this page depict most of the major elements of the application window: a main menu, toolbar, the client area, and several "docking panels". The docking panels can be attached to any edge of the frame window, or they can "float" freely over the frame (like the Eye-Target Position panel in the screenshot). The client area is dedicated to viewing and editing a Maestroexperiment document, which contains all of the targets, trials, and other "objects" that together define one or more experimental protocols. It is split into two views. The document tree on the left displays all objects defined in the current open document, while the tabbed window on the right contains editor panes for the five different classes of objects stored in a document. When designing a set of experiments, the user will primarily work with these elements of the GUI. They are discussed at length in the section on Designing Experiments.

The docking panels come into play during an actual experiment. The Mode Control panel governs the execution of Maestro in one of four different operational modes. This panel is fairly complex, and its widgets are distributed across a number of individual tab panes. The other docking panels provide feedback during an experiment. The Data Traces panel displays a sub-sampled version of recorded analog and digital data, while the Eye-Target Position panel provides a two-dimensional plot of the current positions of the eye, the animal chair, and specially designated fixation targets. The Message Log panel keeps a log of all error and information messages generated by the application, while the Spike Histograms panel (not shown) displays spike-time histograms for any intra-trial tagged sections defined among the trials being sequenced during an experiment. For more information on the Mode Control panel, see the section on Running Experiments. The various output and display panels are the subject of Monitoring Experiments.

GUI with no docking panels

Customizing the layout of the GUI

When you launch Maestro, the frame window will not necessarily look anything like the above snapshots because its layout can be altered in a number of ways. The slider separating the left and right sides of the client area can be repositioned to give more room to one side or the other. More importantly, though, each of the five docking panels can be independently hidden, sized, and floated or docked to any side of the frame window. When a panel is docked to the left or right side of the frame, its title bar is horizontal and appears above the panel's content; when docked to the top or bottom of the frame, the title bar is vertical and appears to the left of the panel's content. All five panels include a close button in their title bars; clicking that button automatically hides the panel.

Customizing the user interface layout basically comes down to sizing the main frame window and setting up the five docking panels. Positioning and resizing the panels can be downright tricky at times. Here are some tips that might make the process a little less frustrating:

    • Maestro is best viewed on a relatively high-resolution display, 1024x768 or better. We recommend maximizing the main frame window, or otherwise making maximum use of the available screen space. (Given its time-critical constraints when executing protocols, Maestro should really run by itself on the host PC -- so there's no need to leave room for other apps!)

    • Double-clicking on a docked panel's title bar will undock it, causing it to float in a separate window on top of the main frame window. Double-clicking a floating panel's title bar will redock it.

    • To reposition a docked panel, "grasp" the window by the title bar and start dragging it. A "drag rectangle" appears which cues the user as to which side the panel will dock if the mouse is released at its current location. The cue is not always unambiguous. To get a feel for it, hide all but one of the panels, then try to dock the visible panel to each side of the frame window in turn. Then show the other panels -- positioning gets more complicated when other panels are visible. Note that the drag rectangle has a very thin outline when the current mouse position will dock the panel; if the outline becomes thicker and hatched in appearance, then releasing the mouse will leave the panel in the "floating" state.

    • Use the sizing bars to change the size of a docked panel. Sizing bars lie between panels docked to the same side of the frame window, and between the docking panel and the frame window's client area. The mouse cursor turns into a standard resize cursor (typically, a short horizontal or vertical line with arrows at both ends) when the mouse hovers over one of these sizing bars.

    • To reposition a floating panel, "grasp" the window by the title bar and drag it to the new position. However, if the new position is near one of the sides of the frame window, the panel may dock itself to that side when the mouse is released. To prevent this from happening, hold down the Ctrl key while dragging the panel to the new location. To resize the floating panel, merely drag any side or corner of the window until the window is the desired size.

Whenever Maestro shuts down, it remembers the current frame window size and position, as well as the current state, size, and docking location for each of the five docking panels. These settings are preserved in the Windows registry on a per-user basis. The next time the user starts Maestro, the frame window should appear almost exactly as it did when the user last exited the application.

The menu bar and toolbar

Maestro's main menu appears at the top of the frame window, just below the title bar. Here we list all of the commands accessible from the menus, accompanied by a brief description. The toolbar, immediately below the menu, includes iconic push-buttons for the most frequently used menu commands (the toolbar may also be "floated" in a separate window that always sits on top of the frame window). As with any typical Windows application, menu commands can be accessed via the keyboard instead of the mouse. Press the Alt key, then use the arrow keys to navigate the menus, or select a particular menu or menu item by pressing the underscored letter in the item's label. Selected menu items also have convenient "hot key" shortcuts (for users so inclined to remember them!).

The File Menu. This menu includes the typical document file operations, as well as a most recently used (MRU) file list. The MRU list can have up to 5 entries. Remember that the only document type that Maestro can open, modify, and save is a custom-formatted binary experiment document, having the file extension .cxe. Commands in the File menu (with the exception of Exit) are enabled only when Maestro is running in the Idle operational mode. In any other mode, file operations (particularly opening a different experiment document) can cause the program to crash.

New [Ctrl+N]

Create a new empty experiment document. If the currently open document has been changed, Maestro will first prompt the user to save the changes.

Open... [Ctrl+O]

Open an existing experiment document. This command invokes a typical file dialog that lets the user browse the file system in search of the desired document.

Save [Ctrl+S]

Save any changes in the currently open experiment document. If the document is new and has not yet been saved, a file dialog pops up to get a file path from the user.

Save as...

Save the current experiment document to another file. A file dialog pops up to get the file path from the user.

Import JMX doc...

Import a .jmx file generated by maestrodoc() and make it the current open experiment document. The Matlab function maestrodoc() was introduced in May 2010 to support script-based generation of an entire Maestro experiment document. It allows you to specify all aspects of an experimental protocol except for Continuous-mode stimulus runs, and saves the content in a plain-text file format (Javascript Object Notation, or JSON) that Maestro (as of v2.6.0) can import. Once imported, the content can then be saved as a standard .cxe document. For more information on maestrodoc(), see the section on Scripting Experiments in Matlab.

Copy selection to...

This command allows the user to copy selected objects in the currently open document to a second document. A Windows common file dialog pops up so the user can browse the file system to select the destination document. All objects currently selected in the document tree view, along with any dependencies (e.g., a participating target in a trial), are copied into the destination document. Object names are preserved, unless the copied object has a sibling of the same name in the destination document. If a trial is copied, its parent trial set is copied as well; likewise for targets in a user-defined target set. No predefined objects are copied.

Exit

Exits the application. This is the proper way to shutdown Maestro. You can no longer use the close button in the frame window's title bar to exit, because this often caused the program to crash and required a reboot to restore normal operation.

The Edit menu. This standard menu has only limited use in editing a Maestro experiment document, which is not a text-centric document. The commands are available, however, when the keyboard focus is on any edit control in Maestro's frame window.

Undo [Ctrl+Z]


Undo the last operation initiated from this menu. The operation applies only to cutting/copying/pasting text from/to an edit control. It is not possible to "undo" operations initiated from the Object menu.

Cut [Ctrl+X]

Remove the selected text in an edit control and copy it to the standard clipboard. Enabled only if the text selection is not empty.

Copy [Ctrl+C]

Copy the selected text in an edit control to the standard clipboard. Enabled only if the text selection is not empty.

Paste [Ctrl+V]

Insert the text string from the clipboard into an edit control at the current caret position. If any text is selected, it is replaced by the pasted text.

The View menu. This menu controls the visibility of certain elements in Maestro's user interface.

Toolbar

Show/hide Maestro's toolbar. The item is checked if the toolbar is currently visible.

Panels|Eye/Target Pos

Show/hide the docking panel that displays current position of the eye and designated targets. The item label is checked if the corresponding panel is currently visible. Disabled if Maestro's runtime controller (cxdriver.rtss) is not running.

Panels|Data Traces

Show/hide docking panel that displays selected data traces collected by Maestro during an experiment. The item label is checked if the corresponding panel is currently visible. Disabled if Maestro's runtime controller (cxdriver.rtss) is not running.

Panels|Message Log

Show/hide docking panel that displays informational and error messages generated by the program. The item label is checked if the corresponding panel is currently visible.

Panels|Spike Histograms

Show/hide docking panel that displays spike time histograms for intra-trial tagged sections during Trial-mode operation. The item label is checked if the corresponding panel is currently visible. Disabled if Maestro's runtime controller (cxdriver.rtss) is not running.

Status Bar

Show/hide Maestro's status bar -- a short bar that sits at the bottom of the frame window and fills its width. The item is checked if the status bar is currently visible. Users may wish to hide the status bar since it has limited usefulness in Maestro: it displays short descriptions of menu commands when the user hovers over a menu item or toolbar button.

The Object menu. This menu is the primary means by which one can alter the contents of the experiment document's object tree. The commands in this menu are enabled only when the tree view has the keyboard focus (click anywhere in the view to give it the focus). Note that the menu is identical to the context menu that pops up whenever you right-click on the tree view. It is much more convenient to access the menu in this way than via the main menu bar. See Designing Experiments for a complete discussion of the commands in the Object menu.

The Mode menu. Use the commands in this menu to change operational modes in Maestro. The item corresponding to the current operational mode will be checked. All items in this menu are disabled if RTX or the Maestro's RTX-based runtime controller cannot be found on the host PC. If the requisite hardware (analog input, digital IO event timer) for running experiments is not available, then the Trial and Continuous mode entries are disabled.

Idle [F9]

Switch to Idle mode. If Maestro is already in Idle mode, selecting this item will toggle the visibility of the mode control docking panel. In the other three operational modes, the mode control panel is always visible.

Trial [F10]

Switch to Trial mode.

Continuous [F11]

Switch to Continuous mode.

Test [F12]

Switch to Test mode.

Restart CXDRIVER

Terminate and restart Maestro's RTX-based runtime controller, cxdriver.rtss. It is this kernel-level process which communicates with hardware and executes all experimental protocols. On occasion, Maestro may get "out of synch" with cxdriver, or cxdriver may terminate unexpectedly (probably due to a non-deterministic bug!). In such situations, this command offers the quickest way to get back to work -- an important option when the "crash" occurs just when you have started recording responses of a neural unit!\

The Options menu. This menu contains a couple of infrequently used options. The Use Chair item, if checked, informs Maestro that the rotational turntable is part of the experimental apparatus controlled by the hardware in the Maestro PC. The Allow RMVideo Repeat Frames option controls whether or not Maestro will tolerate any "duplicate frame" events occurring during a trial involving RMVideo targets. If a short rendering delay occurs in RMVideo's graphics adapter, or if the target update for frame N+1 is sent too late, frame N+1 will be a repeat of frame N, and the actual frame N+1 won't be displayed until frame N+2. If Allow RMVideo Repeat Frames is unchecked (the default), Maestro will stop the trial as soon as such a duplicate frame event occurs; the trial is then repeated, or not, in accordance with the rules of the current trial sequencing mode. If the menu item is checked, then Maestro will allow as many as 3 dropped frames before aborting the trial. This option may be useful if you are running RMVideo with a high spatial resolution and a higher refresh rate, since frame drops are more likely in those conditions. Note that, if you do enable this option, the data file header will include timing information on any duplicate frames detected.

The Help menu. The static dialog box that pops up in response to the Help|About Maestro command includes the current program version number and the HTTP address for this online user's guide. The command Help|Go to User's Guide executes a shell command to open this guide in the system's default web browser. Note that the command will only work if the system has been properly configured with an available default browser.