Brain Vision Recorder User Manual Version 1.03 © Brain Products GmbH, 2001 - 2005 25-August-2005 The Vision Recorder software, frequently abbreviated to Recorder, is designed for use in medical research. Brain Products GmbH does not grant warranty or assume liability for the results of using the Recorder. The content of this document is the intellectual property of Brain Products GmbH, and is subject to change without specific notification. Brain Products GmbH does not grant warranty or assume liability for the correctness of individual statements herein. Nor does Brain Products GmbH enter into any obligation with regard to this document. Any trademarks mentioned in this document are the protected property of their rightful owners. 2 Contents 1. Product declaration .......................................................................................... 5 1.1. Product identification ....................................................................................... 5 1.2. Field of use ...................................................................................................... 5 2. Introduction ....................................................................................................... 6 3. Installation......................................................................................................... 7 4. Getting started and handling ........................................................................... 8 4.1. First steps ........................................................................................................ 8 4.2. Setting up a workspace ................................................................................. 10 5. Impedance measurement............................................................................... 14 6. Viewing and recording data ........................................................................... 17 6.1. Controls ......................................................................................................... 17 6.2. Entering annotations ...................................................................................... 18 6.3. Blocking channels .......................................................................................... 20 6.4. DC offset correction ....................................................................................... 20 7. Montages ......................................................................................................... 21 8. Segmentation and averaging ......................................................................... 25 8.1. Entering parameters ...................................................................................... 25 8.2. Viewing and recording data ........................................................................... 29 9. Program configuration ................................................................................... 32 9.1. Administrator ................................................................................................. 32 9.2. Preferences ................................................................................................... 33 10. Amplifier-specific properties ......................................................................... 35 10.1. BrainAmp family............................................................................................. 35 10.1.1. Using the BrainAmp PolyBox ................................................................... 35 10.1.2. Impedance measurement ........................................................................ 36 10.1.3. Test signal ............................................................................................... 38 10.1.4. Configuring the digital port (marker port) ................................................. 39 10.1.5. Displaying the amplifiers connected ........................................................ 40 10.2. QuickAmp ...................................................................................................... 41 Vision Recorder User Manual 3 10.2.1. Adapting sensors for the auxiliary (AUX) inputs ...................................... 41 10.2.2. Test signal ............................................................................................... 42 10.2.3. Configuring the digital port (marker port) ................................................. 42 10.3. National Instruments NI 6071e A/D converter card ....................................... 45 10.3.1. Installation ............................................................................................... 45 10.3.2. Configuration ........................................................................................... 45 10.3.3. Configuring the digital port (marker port) ................................................. 47 11. OLE Automation ............................................................................................. 49 11.1. Application ..................................................................................................... 50 11.2. Acquisition ..................................................................................................... 51 11.3. CurrentWorkspace ......................................................................................... 51 11.4. License .......................................................................................................... 52 11.5. Licenses ........................................................................................................ 52 11.6. Menu.............................................................................................................. 52 11.7. Enumerator types .......................................................................................... 53 11.7.1. VisionRecorderMenuItem ........................................................................ 53 11.7.2. VisionRecorderState ................................................................................ 53 12. Remote data access (RDA) ............................................................................ 54 13. EEG file format ................................................................................................ 57 14. Vision Video Recorder ................................................................................... 63 14.1. Installation ..................................................................................................... 63 14.2. Configuration ................................................................................................. 64 14.3. Combined EEG/video recording .................................................................... 65 4 1. Product declaration 1.1. Product identification Product designation: Brain Vision Recorder Manufacturer: Brain Products GmbH Stockdorfer Straße 54 D-81475 Munich Germany Permitted EEG amplifiers: Brain Amp, Brain Amp MR, BrainAmp DC, BrainAmp MR plus QuickAmp, NI-6071e (AD card) Classification in accordance with Directive 93/42/EEC (MDD) Appendix IX: Class I with Recording Function UMDNS number: Software for Recording EEGs and Evoked Potentials, 12-389 The CE mark confirms that the product fulfills all the basic safety requirements stipulated in the Medical Devices Directive 93/42/EEC (MDD). 0123 is the number of the Notified Body who issued the approval for the CE mark. 1.2. Field of use The Vision Recorder is used to control EEG amplifiers and record EEG signals with the aid of a personal computer. This program is only allowed to be used by physicians or staff with adequate qualification. Vision Recorder User Manual 5 2. Introduction In the Vision Recorder, you have bought a powerful and flexible recording program that is characterized, in particular, by the following features: The program is structured in such a way that different amplifiers can be controlled. The program structure also enables new EEG formats to be integrated with the aid of independent components. The number of channels is only restricted by the amplifier that is in use. The internal structure supports an unlimited number of channels. Through implementation of OLE Automation, the Recorder can be controlled remotely by other programs, and its internal state can be monitored. While the EEG is being output, you can tap the digitized signals with programs of your own. This technique is referred to as remote data access (RDA). Potential applications for this include bio feedback and signal quality analyses. RDA operates across computer boundaries. Segmentation based on event markers is available to reduce the space required by EEG files. Averaging based on event markers is available to form evoked potentials during recording. The data can be filtered separately for display, for segmentation/averaging and for storage. 6 3. Installation The Vision Recorder generally functions parallel to other programs installed on your computer without any problems. However, the Brain Products GmbH can only guarantee error-free interaction for programs that have been tested accordingly. The tested programs are: Brain Vision Analyzer Microsoft Office XP It is essential to use the setup.exe program for installation because the files are compressed on the CD, and have to be unpacked and installed in a specific way. System requirements Windows NT as of version 4.0 or Windows XP with SP1 Minimum configuration: 1 GHz Intel Pentium III or compatible processor, 256 MB RAM, graphics card with a resolution of 1024 x 768 pixels and 32,768 colors. We recommend a monitor with a diagonal of at least 17". A 21" monitor should be used when there are more than 32 channels. 1 Gbyte free hard disk space (further storage space depends on the amount of data that is processed) Installation Start Windows Insert the installation CD-ROM in one of your CD-ROM drives. If your computer supports CD-ROM autostart, a menu will appear after a brief time to guide you through the installation process. Otherwise, take the following steps: Select Start > Run from the taskbar. Click the Browse button. Select your CD-ROM drive and the setup.exe file, and click the Open button. Now follow the instructions that the program outputs. Before launching the Recorder, insert the USB dongle that is shipped with the product in one of the USB ports available on the computer. Now launch the Recorder by double-clicking the Vision Recorder icon on the desktop. Alternately, select the Recorder via the taskbar: Start > Vision Recorder. Vision Recorder User Manual 7 4. Getting started and handling 4.1. First steps Launch the Recorder. After initial installation of the software a dialog box appears in which you can select an amplifier. Select your amplifier here. Note that you must have administrator rights to do this. Fig. 4-1: Dialog for selecting the amplifier The program will now generate standard settings for your amplifier so you can check its functionality immediately. Make sure the amplifier is connected and switched on. Then click the following button on the toolbar (the bar beneath the menu bar): Monitor If everything is okay you should see how EEG curves are represented from left to right. Fig. 4-2: Presentation of EEG curves 8 If the message "The setup does not match the amplifier's capabilities!" appears, then the current setup is invalid, i.e. the amplifier settings are not compatible with the amplifier. In this case follow the instructions for setting up a workspace at the end of this chapter. On the left, you see the channel names. The figures in percent shown in the figure are only shown when a DC amplifier in the DC recording mode is connected. In this case the values match the DC offset of the signal. An offset of 100% here corresponds to saturation at the positive end of the recording level range. -100% corresponds to saturation at the negative end of the recording level range. At the bottom left there is a scaling bar which enables you to assess the signal size. If fewer channels are displayed and there is enough space, a scaling bar is shown in front of every channel. Beneath the signals, separated by a gray line, the program displays time markers from the amplifier's digital input. With the toolbar, which is at the top beneath the menu, you can set the period to be displayed, the number of channels to be shown simultaneously and other details. You can obtain help on the functions of the toolbar by moving the mouse pointer to the buttons or various elements on the bar. After a short time, a tooltip will appear. This is a small yellow box containing brief information. The status bar, which is at the bottom of the program window, gives you more detailed information at the same time. The status bar also contains seven or eight boxes which are described here from left to right: The first box shows the current program status (Monitoring, Saving etc.). The second box shows the selected montage. You can find information on montages in the "Viewing and recording data" chapter. The third box shows the name of any EEG file that is open. This is followed by a box showing the elapsed recording time of an open EEG file. The next box shows the free disk storage space in hours. This information is also only available if an open EEG file exists. The next box shows utilization of the internal data buffer in percent. As an option, the next box will show a battery icon and indicate the battery voltage of the connected amplifier. The battery's charge state is shown on a color-coded basis, from green through yellow to red. You should change the battery soon if the indicator shows red. The final box on the status bar shows the name of the current workspace (see below). To terminate the Monitoring status, click the following button on the toolbar: Stop Monitoring The program is now in its idle state. Vision Recorder User Manual 9 4.2. Setting up a workspace To define your recording parameters you have to create a workspace. A workspace stores the location of your EEG files, amplifier parameters and more data. Select File > New Workspace... from the menu. Fig. 4-3: Start page of workspace dialog You can define various settings here: Raw File Folder: This is where the generated raw data is stored. Automatic Filename Generation: If you enable this check box, the program proposes a file name when you are about to save the file. This proposed file name consists of an optional prefix which can be entered in the Prefix field and a consecutive number that is incremented internally. In the Min. Counter Size field, you specify the minimum number of counter positions that you want to appear in the file name. In the Current Number field you define the start number of the internal counter. You can check the next file name that results from the inputs in the Next Resulting Filename field. Clicking the Next button brings up the second page of the dialog. It contains amplifierspecific inputs that we will examine here based on the BrainAmp parameters. Before you specify settings for the BrainAmp, close all amplifiers used and click on the "Scan for Amplifiers" button. Finally, you can fill in the following fields: Number of Channels, Sampling Rate, Resolution (signal resolution in µV), Low Cutoff Filter and High Cutoff Filter. The "Use PolyBox" makes it possible to activate the optional BrainAmp PolyBox. The "Low Impedance" checkbox allows you to switch from an input impedance of over 100 MΩ to 10 MΩ. All of these parameters and their ranges depend on the currently selected amplifier. If your amplifier supports individual settings per channel, you can define these individual 10 settings in a table after enabling the Use Individual Settings check box. In this case, the Copy Master Settings button enables you to transfer the parameters that were entered above to the table. Then you only need to edit the channels that differ. In the next column, you will find the type of amplifier. In the case of BrainAmp, we distinguish between "EEG", "BIP" for bipolar channels (ExG amplifiers) and "AUX" for sensor inputs (PolyBox).. In the third column of the table you can assign physical channels to the logical channels shown in the first column, providing your amplifier supports this. This is worthwhile, for example, if you are operating with an electrode cap and do not want to use all the cap's electrodes but, for example, just every other electrode. Fig. 4-4: Amplifier parameters For more information on the individual amplifier settings, see the section "Amplifier-specific properties" below. To get to the next page, press the Next button. This page is used to set the filter parameters of the different software filter paths. There exist three different filter paths: Filtering of the saved raw data. Vision Recorder User Manual 11 Filtering of all data that is used for segmentation/averaging. Filtering of the displayed data. Similar to amplifier page, you can choose individual settings for each channel or common settings for all channels. You can also switch off complete filter paths by deactivating the "Enable Filters" checkbox of the particular path. Because the filters are realized in software you can choose any values. But you should not choose frequencies equal or higher than half of the selected sampling frequency. Fig. 4-5: Software filters On the final page you have the option of setting segmentation/averaging parameters. The options on this page are explained in the "Segmentation and averaging" chapter. Clicking the Finish button brings up a dialog in which you are prompted to save the workspace file. Input a meaningful name and press the Enter key or click the Save button. Select File > Edit Workspace... from the menu if you want to modify the workspace. Select File > Open Workspace... to load another workspace. If you want to use an existing workspace as a template for a new one, then load the required workspace and then select File > New Workspace.... 12 Using the following toolbar button, you can look up the parameters for the current workspace at any time – including in the course of recording. Show Workspace Infos The "Program configuration" chapter describes other settings that affect the program. Amplifier-specific properties – such as test signal values and digital port settings – are given in the "Amplifier-specific properties" chapter. Vision Recorder User Manual 13 5. Impedance measurement If your amplifier has a built-in impedance measurement facility, then you can use it in conjunction with this program. To measure impedance, click the following button on the toolbar: Impedance Check A symbolic representation of a head appears. Various controls are located to the right of this. If your electrodes are named 10-10 or 10-20, they are shown automatically on the head. Otherwise they are arranged at the top right. Fig. 5-1: Impedance measurement You can change the electrode positions with the mouse. To do so, left-click an electrode, hold the mouse button down and move the mouse. The various controls are explained below: Electrodes Here, you can select various electrode groups that you want to measure. The groups and their names depend on the amplifier that is being used. Clicking the Reset Positions button resets the electrode positions. Range (kOhm) Here, you can set various impedance ranges, depending on the amplifier and the electrode 14 group that you have selected. The impedances of the various electrodes are coded in accordance with the color scale. Zoom If very many electrodes are being used, you can move the slider to select a section that you want displayed. A red rectangle in the small electrode window defines the section in the large window. You can move the rectangle with the mouse. The "Settings" button takes you to a dialog box which allows you to define your own measuring ranges, the colors used and the color steps and an optional background bitmap. Figure 5-2: Setting the measuring ranges and colors For each electrode group, you can select up to ten measurement ranges. Vision Recorder User Manual 15 It is also possible to define the colors used. Here you have the following three options: A color gradient from green through yellow to red A color gradient from blue through turquoise, green and yellow to red A grayscale gradient from black to white. Instead of a continuous color gradient between the minimum and maximum impedance value, you can change the colors in steps ("Discrete Color Steps"). If you select this option, you can enter the number of steps. "Background Image" allows you to load and display any bitmap file with a representation of the head in place of the default background. Please note that the horizontal position of the electrode positions could change as a result. The reason for this is that with the default background, an "isotropic" representation is used, i.e. any change to the height/width ratio of the representation window is ignored (the head remains round). In contrast to this, the bitmap always fills the entire window and the electrodes retain their relative positions on the bitmap. If the selected bitmap file does not exist, or if it has an invalid format, the default background is shown. To stop impedance measurement, click the following button on the toolbar: Stop Monitoring If you have changed electrode positions, the program asks you whether you want to save these changes. Electrode positions are assigned to the current workspace. Also refer to the "Amplifier-specific properties" chapter for further options relating to your amplifier's impedance measurement facility. 16 6. Viewing and recording data 6.1. Controls To view the data, select the Monitoring status by clicking the following button on the toolbar: Monitor You can change the display of data with various buttons on the toolbar. The various buttons are described below. Increase the time shown (alternately, use the Ctrl-(-) shortcut). Reduce the time shown (alternately, use the Ctrl-+ shortcut). Increase scaling (sensitivity; alternately, use the Ctrl- shortcut). To scale individual channels differently (e.g. ECG channels) you can assign individual scaling factors to them. The "Preferences" section of the "Program configuration" chapter gives more details of this. Reduce scaling (sensitivity; alternately, use the Ctrl- shortcut). Reduce the number of channels shown. Increase the number of channels shown. Go to next channel group (only accessible when the number of channels has been reduced). Go to previous channel group (only accessible when the number of channels has been reduced). Turn baseline correction on/off. This only changes the baseline of the display – not the data itself. DC offset correction for DC amplifiers. This correction directly affects the data (alternative: Ctrl-D). Vision Recorder User Manual 17 To start recording, click the following button: Start / Resume Recording A dialog box appears in which you can enter a comment that is stored in the EEG file. Furthermore, a file name is proposed that you can change or accept. To interrupt recording, click the following button: Pause While the program is in Pause mode you can also measure impedance without the EEG file being closed. Recording can be resumed by clicking the Start/Resume button again. Stop recording by clicking the following button: Stop Recording Note that you can only end the program when you have explicitly stopped recording and then clicked the following button to exit the Monitoring status. Stop Monitoring You can also view and save test signals if the connected amplifier supports this. Click the Test Signal button to do this: Test Signal The test signals can be saved in the current EEG file. The "Amplifier-specific properties" chapter gives more details on the shape and size of the test signal. 6.2. Entering annotations You can enter annotations that are shown at the bottom as markers and are included in the recording (type: Comment). You have two options: on-the-spot annotations and predefined annotations. You enter on-the-spot annotations by pressing the following button: Annotation Alternately use the Ctrl-A shortcut. A marker containing with three question marks appears in the lower marker area. A dialog box also appears in which you can enter an annotation. Your input replaces the question marks. 18 Fig. 6-1: Dialog for on-the-spot annotation Instead of an on-the-spot annotation, you can also predefine annotations and then output them at the press of a key. To do this you exit the Monitoring status and select Configuration > Predefined Annotations... from the menu. If this menu item is not accessible, you do not have administrator rights and your administrator has disabled access to this menu item. Read the "Administrator" section of the "Program configuration" chapter for more details of this, or get in touch with your system administrator. Selecting this menu item brings up a dialog in which you can now input up to ten predefined annotations. When you then press keys 1 to 0 in the Monitoring status, the predefined annotations that are associated with them are displayed in the marker area. Fig. 6-2: Dialog for predefined annotations Vision Recorder User Manual 19 6.3. Blocking channels To block a channel, i.e. to suppress the signal received, click with the right mouse button on the corresponding channel name. A context menu appears containing the "Switch Off Channel <x>" option at the top of the menu. When you select this menu item, the channel is blocked. The channel name and the curve now appear in red. To reactivate the channel, open the context menu again. The option displayed now is "Switch On Channel <x>". 6.4. DC offset correction If you have a DC-coupled amplifier, then you can perform a DC offset correction with the program. To do this, click on the DC Correction button: You can also press Ctrl-D as an alternative. The DC offset is now corrected. The correction affects the data. For this reason you should ensure that DC corrections are not performed in important sections in the EEG. The Recorder places a correction marker in the data to mark a DC correction in the data. You can also set the Recorder so that DC correction is performed automatically as soon as a channel exceeds or drops below a critical threshold value. You select this function by selecting the menu item Configuration > Preferences and opening the DC Correction tab. Figure 6-3: DC correction setup 20 7. Montages Montages enable channels to be reconnected on a software basis, i.e. new voltage references are assigned to the channels. They also serve to optimize the display of data, e.g. by combining frontal electrodes in one montage and occipital electrodes in another one. In this case, when a montage is selected, only those channels which have been assigned to it are displayed. The sequence of channels can also be changed in a montage so that channels which were originally apart can be shown next to each other. A channel can also occur multiple times in a montage. A montage is used for visualization purposes only, i.e. the new data exists just temporarily and the original data is not changed in any way. Fig. 7-1: Start dialog for new montage Choose Display Montage -> New.... from the menu in order to create a new montage. This brings up a dialog in which you are asked about the type of reference to be used in the new montage. There are three options: Original. No new reference is calculated here. This type of montage is only used to group channels or optimize their presentation as described above. Average. The average reference is calculated here, i.e. the average of all selected channels is used as the reference. Bipolar. Bipolar connection. Differences between channels are formed. Choose one of the reference options. To begin with, it may be better to take the easiest one – the original reference. Clicking the OK button takes you to the edit menu for electrodes. You will see two columns titled Chn (+) and Chn (-) which indicate the channels and their reference channels. The second column is not accessible unless you chose bipolar reference. On the right, the obligatory OK and Cancel buttons are followed by others: Insert Line: This button becomes accessible when you have written a text in the first field of the first channel. If you click this button, the program inserts a line above the current line. Remove Line: With this button you can remove the current line providing it is not the last line. Vision Recorder User Manual 21 Insert Current Channels: This button is accessible when the montage list is empty. Clicking it causes all channels in the current data window to be copied to the montage in their original sequence. Then you may be able to define the required montage faster by removing and inserting individual channels. Remove All: This button becomes accessible when an entry has been completed. If you click it, the entire content of the montage is removed following a question checking that you really want to do so. Arrange for Grid Views...: Clicking this button takes you to another dialog in which channels can be assigned for grid views. Grid views are used when segmented or averaged data is presented. This option is explained further below. Fig. 7-2: Screen for editing montages You can either type in the channel names or select them from the list boxes. When you have completed the first 16 channels, you can access the next channels with the scroll bar. As far as non-bipolar montages are concerned, the program inserts adequate names in the reference channel input boxes. 22 In a grid view, as used in segmentation/averaging, the channels are arranged in a grid pattern. For the standard montage the grid is predefined. As far as other montages are concerned, you can define the arrangement yourself under Arrange for Grid Views. Here you can input the required number of rows and columns of the channel grid. Clicking the Refresh button updates the grid that is being displayed. Now you can arrange the channels and the gaps using your mouse. Fig. 7-3: Grid definition dialog When you have defined your montage, click the OK button. You are prompted to save the montage. Input a suitable name and save the file. To test your new montage, switch the Recorder to Monitoring status. Then click the Display Montage menu. The number of items on the menu has increased as the name of your new montage appears here now. Choose your new montage. The EEG is now displayed with the montage. To revert to the default montage, choose it on the Display Montage menu. If you have created a montage in which no electrodes of the current setup exist, then this montage is not selectable during monitoring. Vision Recorder User Manual 23 If you want to modify an existing montage, select it under Display Montage > Edit... and edit it. You cannot change the reference type for an existing montage. After editing, the program asks you again which name you want to store the montage under. You can input a new name in order to derive a new montage from an existing one in this way. Fig. 7-4: Selecting keyboard shortcuts for montages You can assign keyboard shortcuts to montages so that you can switch between them faster. The montages are activated when you press the specified shortcuts. You can define these shortcuts under Display Montage > Options.... The montages are assigned to the Ctrl-1 to Ctrl-0 key combinations. Ctrl-1 is reserved for the default montage. As far as the other combinations are concerned, you can select from existing montages. If you defined one or more segmentation or averaging groups, as described in the "Segmentation and averaging" chapter, you can select the montage from the active group window in the same way by pressing the Ctrl-Shift-1 to Ctrl-Shift-0 shortcut. Alternately, you can right-click in a data window to select a new montage. 24 8. Segmentation and averaging The Recorder can segment or average your data on the basis of event markers such as stimulus and response markers. Segmentation is always a preliminary stage to averaging, so the two are dealt with here in one chapter. You can store your segmented or averaged data in parallel to the raw data. You can also use segmentation and averaging to ascertain whether a visibly evoked potential is formed at all. In this case you do not store the segments or average. It is also possible to save segmented data or the average only, and to dispense with raw data. However, we advise you to save raw data if possible. Only if you do this do you have the opportunity of changing your average parameters later. 8.1. Entering parameters You can find the segmentation/averaging parameters under File > New Workspace... or File > Edit Workspace... on the third page of the dialog box (press the Next button twice). The first two pages of this dialog box are described in the "Getting started and handling" chapter. When setting the segmentation parameters you will see the term segmentation/averaging group. A group describes segmentation based on one or more markers. Each group independently defines all characteristics of segmentation/averaging. The data for each group is displayed later in a separate window, and can be stored in separate files if you want to. You can define up to 16 groups in total. Now let's look at the various setting options. First you can enable or disable segmentation/averaging with the Enable Segmentation / Averaging option. You use the Save Raw Data option to specify whether you want to save the raw data in addition to segmented/averaged data. You will also see two separate blocks in this dialog. The narrow block on the left enables you to select, create, rename and delete groups. The large block on the right shows you the parameters for the selected group. You will see the following in the left-hand block: Segment./Avg. Group Here you select a group for editing. New This option is available to create a new group. A dialog appears in which you input the name of the group and have the option of copying the settings from an existing group. Rename You use this option to rename the current group. Vision Recorder User Manual 25 Remove Here you can delete the current group. Fig. 8-1: Segmentation/averaging parameters The right-hand block contains various sections. In the Markers section you can select the markers that describe the relevant segments for the current group. If you select Use All Markers, all markers that are sent by the amplifier are used in the course of segmentation/averaging. Alternately, the markers are used that are listed together with their type and description. Press the Select button if you want to modify this list. This brings up a dialog in which you can choose various markers. On the left there is a list named Types in which you select the type of marker first. Then you can choose one or more markers under Descriptions. 26 Fig. 8-2: Marker selection dialog You add the markers to the Selected Markers list by clicking the Add button. If you want to remove a marker from this list, then select it and click the Remove button. Click the OK button when you have finished selecting markers. This takes you back to the group dialog. In the Interval Relative to Markers section you can set the relative positions of the segment interval in one of two ways: Based on Time or Based on Data Points. You specify the Start and End of the interval, or alternately the Duration of the interval instead of the end. When defining an interval, make sure that it is not too big. The program will not include overlapping segments in segmentation / averaging. The Artifact Rejection section enables you to examine the individual segments that you want to include in segmentation/averaging for various artifacts, or to carry out a quality check. All segments that are detected as having artifacts are excluded from segmentation/averaging. Four criteria are used to check for artifacts. Gradient The maximum permissible voltage gradient between two data points is defined here. Difference This describes the maximum permissible voltage difference between the smallest and highest value in the range tested. Amplitude Here you can specify absolute voltage values for amplitude, i.e. the smallest and highest permissible voltage in the range tested. Low Activity Here the program checks whether there is a minimum activity in a defined time. If, for example, a period of 5 ms is specified here, the program checks whether, within the test interval (described below), there is no change of voltage for the selected value over a period of 5 ms. Vision Recorder User Manual 27 All these criteria are checked at an interval that you have to define. You can also disable individual criteria, or all of them. Furthermore, you can exclude individual channels from artifact checking. This is particularly advisable for ECG channels. Note that, here, you have to select the untested channels and not the tested channels as in Vision Analyzer! You can change the artifact detection parameters by clicking the Change button. A further option is to manually reject artifacts ("Allow Manual Rejection with Space Bar"). If this option is activated, you can subsequently reject any segment which has just been accepted during segmentation / averaging by pressing the space bar. This is possible until the next segment appears. If you have defined several segmentation/averaging groups, the rejection refers to the segment of the group with the active window. All segments of the other groups which form an intersection with respect to time with the rejected segment are also rejected. However, only the most recently accepted segment in a group is checked. In the next section (Average) you can define whether you want to segment or average the data. If you opt for averaging, the Baseline Correction option is available in addition. Baseline correction involves the adjustment of the baseline of every segment. The correction is carried out right before averaging. The average voltage value of the prestimulus interval is defined as the new zero value. In other words, the average of the points in the prestimulus interval is ascertained, and this is subtracted from all points in the segment. This operation is performed for all channels. The next section (Miscellaneous) contains two options. Limited Number of Segments With this option you can limit the number of segments that you want to record during segmentation or include in averaging. Frame Color Here you can select a frame color for the group in order to identify the associated data window. Finally, the Save Data section contains the following options for saving the group data: Save Data If you select this option, the data is stored when you press the Start button later when viewing data. File Name Prefix Here, you specify the file name prefix, and can also use the $n placeholder. Wherever this placeholder occurs, it is replaced later by the name of the raw file. The group name and a file extension are added to the prefix that you enter here. The name that is formed is shown under Resulting File Name. Use Separate Folder If this option is not selected, the previously defined raw data folder is used. Otherwise you can select a separate folder (folder name) for the group here. Now click the Finish button. 28 8.2. Viewing and recording data If the program is still in the standard view, click the Monitor button on the toolbar: Monitor Fig. 8-3: Monitoring with averaging groups shown as well The data view is now split up into two parts. On the left you see the familiar monitoring window and on the right a separate data window for every segmentation or averaging group. The data in this window is updated whenever a matching marker is found. The curves are shown in red if the segment does not match the artifact criteria. This enables you to check the criteria easily prior to acquisition. If you have activated manual artifact rejection in the parameters, you can now use the space bar during recording to subsequently reject segments which have not automatically been identified as having artifacts. You can change the ratio between the Monitor view and the segmentation windows by dragging the bar between them to the left or right with the mouse. However, there is a limit both on the left and on the right to prevent an area disappearing completely from the screen. Beneath the group windows you see tabs that enable you to fetch a group window into the foreground fast. You can arrange the group windows with the three window control buttons below: Vision Recorder User Manual 29 Right-clicking in a data window enables you to select a new montage for this window. At the top right there is a new toolbar with the following buttons that always relate to the active group window. Their functions are the same as those of the main toolbar, but they are explained here again. Note the difference in keyboard shortcuts (Ctrl-Shift-..., not Ctrl-...). Increase scaling (sensitivity; alternately, use the Ctrl-Shift- shortcut). To scale individual channels differently (e.g. ECG channels) you can assign individual scaling factors to them. The "Preferences" section of the "Program configuration" chapter gives more details of this. Reduce scaling (sensitivity; alternately, use the Ctrl-Shift- shortcut). Reduce the number of channels shown. Increase the number of channels shown. Go to next channel group (only accessible when the number of channels has been reduced). Go to previous channel group (only accessible when the number of channels has been reduced). Turn baseline correction on/off. This only changes the baseline of the display – not the data itself. Now we come to recording. Fig. 8-4: Dialog to save data Press the following button to start recording: 30 Start / Resume Recording An extended Save dialog appears enabling you to overwrite the originally specified parameters for the raw data and for every group. As in the normal Save dialog, that is described in the "Viewing and recording data" chapter, you can enter annotations (Comment). You can decide whether you want to save the raw data and the various groups, the folder in which you want to store the data and the file name you want to use. You can input a base name for the raw file in the Base File Name field. The above-mentioned $n placeholders in the filename fields of the segmentation or averaging groups are changed accordingly. Clicking the Save button puts the program in Save mode. The status fields in the individual groups now show the number of segments (Total Segs) and the number of accepted segments (Accepted Segs) in addition to the group status and the current montage. Furthermore, the program shows the EEG filename and the remaining storage capacity in hours, minutes and seconds. Note that this has to be interpreted as the capacity that would be available if the respective group only were stored. Vision Recorder User Manual 31 9. Program configuration 9.1. Administrator The Vision Recorder behaves differently, depending on whether you have logged in as an administrator or as a normal user. All menu items are available to the administrator. Three options are never available to normal users. Configuration > Select Amplifier... Here you can select the amplifier that needs to be controlled. Configuration > Select Data Storage Type... This menu item enables you to switch the EEG data output format. Only one format is available in the current version. Configuration > Administrator... Selecting this brings up a dialog in which you can disable other options for normal users. Fig. 9-1: Administrator dialog You have the following options here: Allow User Selecting Workspace If this option is disabled, a normal user cannot select a workspace. Allow User Editing / Creating Workspaces This option defines whether a normal user can edit existing workspaces or create new ones. Allow User Editing Preferences If this option is disabled, a normal user cannot set preferences. Preferences are dealt with in the next section. Allow User Editing Amplifier Specific Settings All submenus beneath the Amplifier menu item can be enabled or disabled. The menu items depend on the amplifier in question, and are explained in the "Amplifier-specific properties" chapter. 32 Another option is Force 'Save As' Dialog when Monitoring Starts. If this option is enabled, the Start button is activated internally whenever an EEG is displayed, causing the Save dialog to appear. 9.2. Preferences If you have administrator rights or if the administrator has not denied you access (see above), then you can set various preferences. To do this, stop monitoring and select Configuration > Preferences from the menu. You now see three tabs: "Scaling", "DC Correction" and Remote Data Access. Fig. 9-2: Dialog for setting scaling preferences You can select the following under Scaling: Polarity: Positive Down This option defines the polarity of the displayed signal. If this option is enabled, positive signals are shown facing down. Start with Display Baseline On If this option is enabled, baseline correction in the EEG display is enabled as standard. Default Scaling This is the scaling that is specified at the start of monitoring. Set Individual Scaling Factors Here you can enter individual channels that you want to display on a diminished basis. This is, for example, desirable for ECG channels as they would otherwise extend far into the signals of EEG channels. In the table, you enter the channels names and the associated scaling factors by which you want to diminish display of the signals. This applies to the display only, not to the data itself. Under the "DC Correction" tab, you select whether or not automatic DC correction is to be performed and at which threshold value (in percent) the correction will be performed. DC correction is explained in the section "Viewing and recording data". Vision Recorder User Manual 33 Under the Remote Data Access tab, you enable or disable the RDA server. Refer to the "Remote data access" chapter for more details of this. 34 10. Amplifier-specific properties This chapter describes amplifier-specific properties. In order to follow the descriptions given here, you must have selected the amplifier in question. 10.1. BrainAmp family 10.1.1. Using the BrainAmp PolyBox If you wish to use external sensors to measure temperature, skin conductivity etc. you can use the BrainAmp PolyBox. Please note the following: The PolyBox inputs are not authorized for direct electrical contact with the test subject as defined in EN ISO 60601-1. Sensors which are not isolated from the patient (e.g. skin conductivity sensors) must therefore not be used directly with the inputs. In this event, use the Brain Products Optobox, which optically isolates the sensors and the PolyBox. To set the parameters for the sensors, select the menu item File > Edit Workspace. The amplifier parameters are on the second page. Figure 10-1: Amplifier Settings Vision Recorder User Manual 35 The BrainAmp system cannot automatically detect whether a PolyBox is connected. You must therefore explicitly activate this by checking the "Use PolyBox" box. The PolyBox inputs are labeled "AUX" (auxiliary) in the second column. The PolyBox can only be used in combination with a minimum of one and a maximum of two BrainAmps. The PolyBox channels are always the last eight channels of the entire system. This means that you can use physical channels 33 to 40 of a BrainAmp that is ready for operation, or channels. 65 to 72 in the case of two BrainAmps. If you have selected these channels under "Phys Chn." then additional input columns will be available: "Diff. Unit (Different Unit)" If you check this box, you can use another unit such as "C" for Celsius "Unit" You enter the unit here. "Gradient" Here you enter the gradient in mV/unit, in the case of the unit "C", for example, mV/C. Here, in our example, you describe the voltage difference in mV at a temperature change of one degree Celsius. This value can also be negative. "Offset" The offset defines the zero point. In our temperature example, this is the voltage in mV which the sensor returns at a temperature of 0 degrees Celsius. 10.1.2. Impedance measurement In addition to the "Impedance measurement" chapter, you should note the following for the BrainAmp: There are three groups of electrodes that are measured separately: data electrodes, one reference electrode and one ground electrode. These groups are not completely independent of each other so note the following sequence: First apply all electrodes. Then measure the data electrodes. You can choose from five ranges: 100, 50, 20, 10 and 5 k ohms. Start with the bigger range. If all electrodes are in a high-impedance state, check how the reference and ground electrodes are connected. If you want to define other measuring ranges, you can do so under "Settings" as described above. If the data electrodes have resistance values that are roughly correct, measure the reference electrode. Here there is only a maximum measuring range from 0 to 10 k ohms. Finally, measure the ground electrode. In this case as well there is only a maximum measuring range from 0 to 10 k ohms. You should also note that neither with bipolar inputs (ExG amplifiers) nor with the PolyBox polygraphic sensors is it possible to measure input impedances. 36 Fig. 10-2: Options for measuring impedance Vision Recorder User Manual 37 10.1.3. Test signal To record or display a test signal, attach the enclosed test signal generator to the amplifier via the electrode input socket. Clicking the program's Test Signal button generates and displays a signal with an amplitude of 50µVpp (square wave) or 100µVpp (sine wave) . Under Amplifier > Test Signal Values... you can select the signal shape (square waves or sine waves). Here, you can also define the frequency of the signal between 1 and 50 Hz. Fig. 10-3: Dialog for entering test signal parameters 38 10.1.4. Configuring the digital port (marker port) To record time-synchronous events such as stimuli or patient responses, the amplifier's PC adapter card or USB adapter incorporates a 26-pole HD-sub socket. The socket contains 16 digital 1-bit inputs that are programmed separately from each other. The exact pinning of the socket is given in the manual for the amplifier. The names D00 to D15 there relate to the bit number. The first bit is identified as number 0. Selecting Amplifier > Digital Port Settings... from the menu brings up the following settings dialog: Fig. 10-4: Dialog for digital port settings You have various options here: For each group of 8 bits you can define whether the signals are interpreted as high-active (5 volts = active) or low active (0 V = active). In addition, pulldown (high-active) or pullup (low-active) resistors are applied at each input with a value of 4.9 k ohms to ground or 5 volts. Vision Recorder User Manual 39 In the table you can first define whether a bit is to be evaluated at all (Enabled field). For every bit you can define which time marker types it is supposed to represent. It is also possible to give several bytes a name of the same type. In principle, you are free in naming the type but the Vision Recorder and Vision Analyzer use color coding for certain types. This is why it is advisable to choose Stimulus and Response for stimulus and response inputs. The description of the markers – that is the text that appears in the marker presentation of the EEG view – is coded automatically. The following procedure is followed: The first occurrence of the type in the table is weighted with value 1, the second occurrence with value 2, the third with value 4 etc. For every data point, all set bits of a type are added together according to this pattern. The resultant number is combined with the initial letter of the type, resulting in the description. Example: Bits 8 to 15 are of the Response type. Setting bits 11 and 13 now results in a marker of the Response type with description R 40. Bit 11 has value 8, and bit 13 has value 32. The total is 40. A consequence of this logic is that only markers of different types can be detected at any one time. If you want to record different responses simultaneously, you can do so by decoding the number values again in the analysis, i.e. assigning a separate marker to every bit. Alternately, you can assign a separate type to every bit in the table. You can view the current state of the digital port for test purposes in the Current State field. Another option in the dialog is Debouncing. If this is enabled, repetition of a marker of the same type and same description is ignored for a period of 50 ms. Note that trigger signals must be present at least for the period of a sampling point. This means, for instance, that at a sampling rate of 1000 Hz, the minimum length of the trigger signal is 1 ms. At 500 Hz, the minimum length is 2 ms etc. 10.1.5. Displaying the amplifiers connected Select the menu item Amplifier > Connected Amplifiers... to determine which BrainAmp amplifiers of which type are currently connected to your computer and are ready for operation. 40 10.2. QuickAmp 10.2.1. Adapting sensors for the auxiliary (AUX) inputs If you wish to use external sensors to measure temperature, skin conductivity etc. you can carry out the appropriate adaptations in the Amplifier menu of the QuickAmp. Please note the following: The AUX inputs of the amplifier are electrically isolated from the power supply unit but not from the standard EEG electrodes. It is therefore necessary to ensure that employed sensors which have their own power supply isolate their signal output from this supply in accordance with IEC60601-1. Otherwise it would be possible for impermissible currents to be routed from the sensor output via the polygraphic inputs to the EEG electrodes. In this case, use the Brain Products Optobox, which optically isolates the sensors and the amplifier. To set the parameters for the sensors, select the menu item File > Edit Workspace. The amplifier parameters are on the second page. Figure 10-5 : Amplifier Settings Vision Recorder User Manual 41 The AUX channels are always the last four channels of an amplifier. This means that you can use the physical channels 37 through 40 on the QuickAmp40, channels 69 through 72 on the QuickAmp72 and channels 125 through 128 on the QuickAmp128. Once you have selected these channels under "Phys Chn.", additional data entry columns become available. "Diff. Unit (Different Unit)" If you check this box, you can use a different unit, such as "C" for Celsius. "Unit" Specify the unit here. "Gradient" This field allows you to specify the gradient in mV/unit; with a unit "C", for example, mV/C. In this example, you are describing the voltage difference in mV for a temperature change of one degree Celsius. This value can also be negative. "Offset" The offset defines the zero point. In our temperature example, this is the voltage in mV which the sensor returns at a temperature of 0 degrees Celsius. 10.2.2. Test signal To record or display a test signal, click the program's Test Signal button. A rectangular signal will be displayed. Under Amplifier > Test Signal Values... you can select the signal amplitude. You can choose between 50, 100, 200 and 500 µVpp. Note that the test signal is not calibrated. It is simply an approximate value. Fig. 10-6: Dialog for entering test signal parameters 10.2.3. Configuring the digital port (marker port) To record time-synchronous events such as stimuli or patient responses, use digital ports DIO0 to DIO7. The names DI00 to DI07 relate to the bit number. The first bit is identified as number 0. Selecting Amplifier > Digital Port Settings... from the menu brings up the settings dialog. You have various options here: You can define whether the signals are interpreted as high-active (5 volts = active) or low active (0 V = active). 42 In the table you can first define whether a bit is to be evaluated at all (Enabled field). For every bit you can define which time marker types it is to represent. It is also possible to give several bytes a name of the same type. In principle, you are free in naming the type but the Vision Recorder and Vision Analyzer use color coding for certain types. This is why it is advisable to choose Stimulus and Response for stimulus and response inputs. The description of the markers – that is the text that appears in the marker presentation of the EEG view – is coded automatically. The following procedure is followed: The first occurrence of the type in the table is weighted with value 1, the second occurrence with value 2, the third with value 4 etc. For every data point, all set bits of a type are added together according to this pattern. The resultant number is combined with the initial letter of the type, resulting in the description. Fig. 10-7: Dialog for digital port settings Example: Bits 4 to 7 are of the Response type. Setting bits 5 and 7 now results in a marker of the Response type with description R 10. Bit 5 has value 2, and bit 7 has value 8. The total is 10. A consequence of this logic is that only markers of different types can be detected at any one time. If you want to record different responses simultaneously, you can do so by decoding the number values again in the analysis, i.e. assigning a separate marker to every bit. Alternatively, you can assign a separate type to every bit in the table. Vision Recorder User Manual 43 You can view the current state of the digital port for test purposes in the Current State field. Another option in the dialog is Debouncing. If this is enabled, repetition of a marker of the same type and same description is ignored for a period of 50 ms. Note that trigger signals must be present at least for the period of a sampling point. This means, for instance, that at a sampling rate of 1000 Hz, the minimum length of the trigger signal is 1 ms. At 500 Hz, the minimum length is 2 ms etc. 44 10.3. National Instruments NI 6071e A/D converter card You can also enable EEG analog amplifiers to be connected to the Vision Recorder using the A/D converter card from National Instruments. The card converts the analog signals of the amplifiers into digital signals. The Vision Recorder treats the card just like an amplifier. N.B.: The EEG amplifier used must ensure the prescribed electrical patient isolation at the analog outputs. The A/D converter card does not provide any electrical isolation between the inputs and the PC! There is no facility here for measuring impedance or for feeding in an internal test signal. Please refer to the documents "PCI E Series User Manual.pdf" and "SCB-100 100-Pin Connector Block Installation Guide.pdf" in subfolder "NI6071e" of the Brain Vision CD for further information about the A/D converter card. 10.3.1. Installation Do not use the CD from National Instruments to install the A/D card. The drivers on this CD are not compatible with the Brain Vision Recorder. The Brain Products CD contains the correct drivers. Installation procedure: Install the Brain Vision Recorder program. Power down the computer and install the A/D card in a free PCI slot. Power up the computer again. When the Hardware Wizard prompts you for a driver for the new hardware, insert the Brain Products CD. 10.3.2. Configuration To select this A/D converter card, choose NI 6071e under Configuration > Select Amplifier. Fig. 10-8: Amplifier drop-down box To set the parameters for the A/D card, select File > Edit Workspace. The parameters for the card are on the second page. The names of the parameters used are from the nomenclature of National Instruments and their meaning may differ from the terms used in neurophysiological research. Vision Recorder User Manual 45 Fig. 10-9: Parameter settings for the A/D card You can choose the input mode. This must match your chosen wiring configuration. You have three options here: Differential Every channel has its own reference. A total of 32 channels are available here. Nonreferential Single-ended Unipolar without a connection to ground. The reference point for all channels here is the "AISENSE" terminal. Referential Single-ended Unipolar with connection to ground. The reference point for all channels here is the "AIGND" terminal. Please refer to section 4, pages 4-13 ff. of the document "PCI E Series User Manual.pdf" on the Brain Vision CD for information about optimal wiring of the amplifier used. In addition, you can specify the number of channels, sampling rate, and input polarity. The maximum sampling rate depends on the number of channels. With up to 16 channels you can sample at 2048 Hz, with 32 channels at 1024 Hz and with 64 channels at up to 512 Hz. 46 The input polarity indicates whether the EEG amplifier supplies a symmetrical or asymmetrical output signal. The A/D Range drop-down box allows you to specify the recording level range of your amplifier. Enter the amplification factor of your EEG amplifier in the Gain box. If you do not know the gain, you can determine it empirically. To do this you require a calibration signal which is fed into the amplifier. Choose a realistic gain, e.g. 1000, and then record a short data sequence. Measure the values in the analysis software. You can now correct the gain by comparing the actual value with what it should be. Example: Set the gain to 1000 and feed in a test voltage of 100µVpp. The voltage measured in the Analyzer is 120 µVpp for example. Correct the gain: new value = old value * 120 µV/100 µV = 1200. Now enter the new value and repeat the test. The value of the signal feed and the measured value should now match. If you require individual settings for each channel, activate the Use Individual Settings checkbox. 10.3.3. Configuring the digital port (marker port) To record time-synchronous events such as stimuli or patient responses, use digital ports DIO0 to DIO7. The names DI00 to DI07 relate to the bit number. The first bit is identified as number 0. Selecting Amplifier > Digital Port Settings... from the menu brings up the settings dialog. You have various options here: You can define whether the signals are interpreted as high-active (5 volts = active) or low active (0 V = active). In the table you can first define whether a bit is to be evaluated at all (Enabled field). For every bit you can define which time marker types it is to represent. It is also possible to give several bytes a name of the same type. In principle, you are free in naming the type but the Vision Recorder and Vision Analyzer use color coding for certain types. This is why it is advisable to choose Stimulus and Response for stimulus and response inputs. The description of the markers – that is the text that appears in the marker presentation of the EEG view – is coded automatically. The following procedure is followed: The first occurrence of the type in the table is weighted with value 1, the second occurrence with value 2, the third with value 4 etc. For every data point, all set bits of a type are added together according to this pattern. The resultant number is combined with the initial letter of the type, resulting in the description. Vision Recorder User Manual 47 Fig. 10-10: Dialog for digital port settings Example: Bits 4 to 7 are of the Response type. Setting bits 5 and 7 now results in a marker of the Response type with description R 10. Bit 5 has value 2, and bit 7 has value 8. The total is 10. A consequence of this logic is that only markers of different types can be detected at any one time. If you want to record different responses simultaneously, you can do so by decoding the number values again in the analysis, i.e. assigning a separate marker to every bit. Alternatively, you can assign a separate type to every bit in the table. You can view the current state of the digital port for test purposes in the Current State field. Another option in the dialog is Debouncing. If this is enabled, repetition of a marker of the same type and same description is ignored for a period of 50 ms. Note that trigger signals must be present at least for the period of a sampling point. This means, for instance, that at a sampling rate of 1000 Hz, the minimum length of the trigger signal is 1 ms. At 500 Hz, the minimum length is 2 ms etc. 48 11. OLE Automation As mentioned at the beginning of this manual, the Vision Recorder can be controlled remotely via OLE Automation. The program ID (ProgID) for external access to the Recorder is VisionRecorder.Application. The Recorder incorporates a registered type library which is stored in Recorder.exe. The entry for the type library in the Registry is Vision Recorder x.x Type Library where x.x stands for the current version. The recorder can also be controlled, for example, via a VB script batch file, as shown below: ' TestRecorder ' Create recorder object Set Rec = CreateObject("VisionRecorder.Application") Rec.Acquisition.ViewData() Rec.Acquisition.StartRecording(Rec.CurrentWorkspace.RawFileFolder & "\TestData.eeg") WScript.Sleep 5000 ' Analyzer Macro: use Wait 5 Rec.Acquisition.StopRecording() Rec.Acquisition.StopViewing() Rec.Quit In this example, the Recorder is started, data is displayed and an EEG file named TestData.EEG with a length of 5 seconds (5,000 milliseconds) is stored. If you have the Vision Analyzer, you can also control the Recorder by means of an Analyzer macro. The macro looks like this: ' TestRecorder Sub Main ' Create recorder object Set Rec = CreateObject("VisionRecorder.Application") Rec.Acquisition.ViewData() Rec.Acquisition.StartRecording(Rec.CurrentWorkspace.RawFileFolder & "\TestData.eeg") Wait 5 Rec.Acquisition.StopRecording() Rec.Acquisition.StopViewing() Rec.Quit End Sub In this chapter, we will not deal with programming in depth but will just outline the Application CurrentWorkspace Acquisition Menu Recorder's object model. Fig. 11-1: The Recorder's object hierarchy Vision Recorder User Manual 49 The objects are described below in Visual Basic notation. 11.1. Application Description The Application object represents the program as a whole. It is the default object, which means that the methods and properties of this object can be addressed directly, i.e. Version corresponds to Application.Version, for example. Methods Sub Quit() Terminates the program. Properties Acquisition As Acquisition Write-protected The Acquisition object CurrentWorkspace As CurrentWorkspace Write-protected The current workspace Menu As Menu Write-protected The Menu object State As VisionRecorderState Write-protected The program status, see below for enumerator types SubLicenses As Licenses Write-protected Lists the registered sub-licenses Version as double Write-protected This specifies the current program version 50 11.2. Acquisition Description This object controls recording. Methods Sub Continue() This resumes interrupted recording Sub DCCorrection() This performs a DC correction Sub Pause() This interrupts recording Sub StartRecording(FileName As String, [sComment As String])) This starts recording to FileName A comment can be specified as an option Sub StopRecording() This stops recording Sub StopViewing() This stops viewing of data, test signals or impedance measurements Sub ViewData() This displays data, starts monitoring. Sub ViewTestSignal() This displays test signals. Sub ViewImpedance() This displays impedance. 11.3. CurrentWorkspace Description This object represents the current workspace. Methods Sub Load(FileName As String) This loads the specified workspace file FileName Properties FullName As String Write-protected Name of the workspace file including full path Name As String Write-protected Base name of the workspace file without the folder and file name extension RawFileFolder Write-protected Folder for raw data Vision Recorder User Manual 51 11.4. License Description This object describes a license/sub-license (e.g. a video sub-license). Methods Properties ID As Long Write-protected Unique ID of the license Description As String Write-protected Description of the license 11.5. Licenses Description This object is a list of "License" objects. Methods Properties Count As Long Write-protected Number of licenses in the list Item(Index As Long) As License Default element, write-protected On specifying the index (1-...), returns a "License" object. 11.6. Menu Description This object supports manipulation of menus. Methods Sub DisableMenuItem(MenuItem As VisionRecorderMenuItem) This disables a menu option; the option to be disabled is specified in MenuItem (see below for enumerator types) Sub EnableMenuItem(MenuItem As VisionRecorderMenuItem) This enables a menu option; the option to be enabled is specified in MenuItem (see below for enumerator types) Sub Reset() This resets all manipulated menu options 52 11.7. Enumerator types The following sections describe the various enumerator types. 11.7.1. VisionRecorderMenuItem Constants for the various menu items that can be addressed with the Menu object. Enum VisionRecorderMenuItem vrMiMonitoring = 32777, vrMiImpedanceCheck = 32778, vrMiTestsignal = 32779, vrMiStartRecording = 32791, vrMiPauseRecording = 32792, vrMiStopRecording = 32793, vrMiStop = 32780, End Enum 11.7.2. VisionRecorderState Constants for the various states of the program Enum VisionRecorderState vrStateOff = 0 vrStateMonitoring = 1 vrStateTestsignal = 2 vrStateImpedanceCheck = 3 vrStateSaving = 4 vrStateSavingTestsignal = 5 vrStatePause = 6 vrStatePauseTestsignal = 7 vrStatePauseImpedanceCheck = 8 ' Idle state ' Viewing EEGs ' Test signal ' Impedance measurement ' Saving data ' Saving test signals ' Data saving pause ' Data saving pause ' Displaying test signals ' Data saving pause ' Displaying impedance End Enum Vision Recorder User Manual 53 12. Remote data access (RDA) While it is being displayed, the EEG data can be passed via TCP/IP to other programs on the local computer and to computers in a network. In the program, this is referred to as remote data access (RDA). In this process, the Recorder acts as the server, and the program receiving the data acts as a client. Up to ten clients can be logged in to the RDA server at the same time. This chapter describes the interface that enables you to implement your own online analysis programs or bio feedback methods. In principle, you can use different programming languages to do this. You can also develop and run a client program under Linux or other operating systems. Our example RDAClient is a program that was developed with Microsoft Visual C++ Version 6.0 under Windows. You can find the example project on the program CD in the RDAClient folder. RDAClient establishes the connection to the server, and then waits in a loop for data. When data arrives, it is stored in Brain Vision-compatible EEG files. The name of the computer on which the Recorder is running is passed to the program as a command line parameter. If this parameter is not specified, the local computer is examined. There are two versions of the RDAClient. The 16-bit version works with amplifiers and A/D converters with an A/D range of a maximum of 16 bits. The 32-bit version covers an A/D range of up to 25 bits. Before the RDA server can run it must have been enabled in the Recorder program under the Configuration > Preferences... menu option (Remote Data Access tab). A key term in programming via TCP/IP is socket. It is the combination of a TCP/IP address and a port number. This combination describes a certain service on a computer. A known, implicitly used service is, for example, the HTTP protocol on a Web server. This has port number 80 by default. The Recorder's RDA server has two port numbers, 51234 and 51244. The first port is intended for 16-bit data, the second port for 32-bit data. The first task of the client program is to establish a connection to the server's RDA service using the port number. This is done with standardized socket programming that we will not explain here. However, you can find an example of it in the RDAClient.cpp or RdaClient32.cpp file. Then the client waits for data or messages to be sent from the server. The client itself never sends data to the server. Every received data block contains a header of the type RDA_MessageHeader. You can find the declaration of this header and all other structures and constants in the RecorderRDA.h file. The header consists of three parts: uid is a 128-bit constant for unique identification. nSize describes the total length of the block. nType describes the type of this message. Four message types are in use at present: 1 means the start of message (RDA_MessageStart), 2 means data block (RDA_MessageData) for clients of the 51234 socket, 3 means end of message (RDA_MessageStop) and 4 means data block (RDA_MessageData32) for clients of the 51244 socket. These different messages are described below. 54 RDA_MessageStart (nType = 1) This message is sent by the server when it goes into Monitoring status. If a client logs in during monitoring, it will also receive this message. In addition to the header information about the number of channels (nChannels), data is sent on the sampling interval in µS (dSamplingInterval), the sensitivity of the channels in µV separately for each channel (dResolutions) and the channel names (sChannelNames). The size of the dResolutions field is flexible and depends on nChannels. sChannelNames contains all channel names in a string. The individual channel names are null-terminated. The routine WriteHeaderFile(RDA_MessageStart* pMsg) in RDAClient.cpp shows how the fields can be broken down. RDA_MessageData (nType = 2) This message is only received by clients that have logged in via port number 51234. This message is used to transfer 16-bit data. It consists of the following elements: nBlock specifies the current block number since the start of monitoring. The number can be used to identify whether a block has not been processed fast enough, thus causing a data overflow. An example of this is given in RDAClient.cpp. nPoints specifies the number of data or sampling points in this block. nMarkers defines the number of markers in this data block. nData[] is the actual data as 16-bit signed integers. The number of values results from nPoints and RDA_MessageStart.nChannels. Markers is a data field with markers of the RDA_Marker type. The individual elements of this field can have different lengths. A marker of the RDA_Marker type consists of the following: nSize = the size of the marker in bytes nPosition = the relative position in the data block in sampling points (0 -...) nPoints = the number of points covered by this marker (mostly 1) nChannel = the channel number to which this marker has been assigned (at present only –1 = all markers) sTypeDesc = type and description of the marker as null-terminated text You will find examples of dealing with data and markers in RDAClient.cpp in the routines WriteDataBlock(RDA_MessageData* pMsg) and WriteMarkers(RDA_MessageData* pMsg, ULONG nOffset, ULONG nExistingMarkers). RDA_MessageStop (nType = 3) This message consists of the header only, and indicates the end of monitoring. Vision Recorder User Manual 55 RDA_MessageData32 (nType = 4) This message is only received by clients that have logged in via port number 51244. Its layout is identical to that of RDA_MessageData with the exception of the fData[] field, which replaces the nData[] field. fData[] is the current data in the 32-bit IEEE floating point format. The number of values results from nPoints and RDA_MessageStart.nChannels. 56 13. EEG file format The current version of the Recorder supports the Vision Data Exchange Format only. This format is described below. An EEG consists of three files: the header file, the marker file and the actual data. The header file describes the EEG. This file is an ASCII file with the extension ".vhdr". It will normally be given the same base name as the raw data EEG that is described in it. The header file is stored in the raw data folder of the workspace. The format of the header file is based on the Windows INI format. It consists of sections of different names containing keynames and assigned values. Here is an extract of a header file: Brain Vision Data Exchange Header File Version 1.0 ; Data created by the Vision Recorder [Common Infos] DataFile=000014.eeg MarkerFile=000014.vmrk DataFormat=BINARY ; Data orientation: MULTIPLEXED=ch1,pt1, ch2,pt1 ... DataOrientation=MULTIPLEXED NumberOfChannels=16 ; Sampling interval in microseconds SamplingInterval=2000 [Binary Infos] BinaryFormat=INT_16 [Channel Infos] ; Each entry: Ch<Channel number>=<Name>,<Reference channel name>, ; <Resolution in "Unit">,<Unit>, Future extensions.. ; Fields are delimited by commas, some fields might be omitted (empty). Ch1=Fp1,,0.1 Ch2=Fp2,,0.1 Ch3=F3,,0.1 Ch4=F4,,0.1 Ch5=C3,,0.1 Ch6=C4,,0.1 Ch7=P3,,0.1 Ch8=P4,,0.1 Ch9=O1,,0.1 Ch10=O2,,0.1 Ch11=A1,,0.1 Ch12=A2,,0.1 Ch13=F7,,0.1 Ch14=F8,,0.1 Ch15=T7,,0.1 Ch16=T8,,0.1 The first line identifies the header file and is mandatory. A semicolon at the beginning of a line identifies a comment which is ignored by the reader. Blank lines are also ignored. A section is identified by a line with a term enclosed in square brackets. The header extract above, for example, contains the [Common Infos] section. A header file can contain any number of sections. Vision Recorder User Manual 57 The next lines show some keynames in this section and the values that have been assigned to them. A keyname can only occur once in a section. Its meaning depends on the section in which it occurs. There must be no blank before or after the assignment operator (equal sign). Most predefined keynames have a predefined value which is used if a keyname is not found. The various predefined sections with keynames, meaning and default values are listed below. [Common Infos] This section contains general information on the EEG file. Keyname Meaning DataFile MarkerFile DataFormat DataOrientation DataType 58 Name of the EEG file. If the name does not contain a path, it is assumed that the EEG file is in the same folder as the header file. The placeholder $b can be used in the name. It is replaced by the base name of the header file when the file is read in. Example: The entry DataFile=$b-EEG.dat is interpreted for a header file named Test.vhdr as DataFile=Test-EEG.dat Optional marker file containing a list of markers assigned to the EEG. If no path is specified explicitly, the marker file is searched for in the folder in which the header file is located. The format of the marker file is explained further below. Here, too, it is possible to use the placeholder $b. Possible values: ASCII, BINARY Possible values: VECTORIZED First the file contains all data points for the first channel, followed by all data points for the second channel etc. MULTIPLEXED Here, all channels for every data point follow on from each other directly. The data structure is multiplexed. Possible values: TIMEDOMAIN The data is in the time domain. FREQUENCYDOMAIN The data is in the frequency domain. Default value None A value must be specified - ASCII MULTIPLEXED TIMEDOMAIN NumberOfChannels Number of channels in the EEG file. None A value must be specified SamplingInterval None A value must be specified The sampling interval is specified in µs in the time domain and in hertz in the frequency domain. Averaged This indicates whether the data set which is to be read in has already been averaged. This is particularly relevant for the enabling and disabling of transforms on the Transformations menu. Possible values: YES Yes, the data set represents data that has been averaged. NO No, the data set represents data that has not been averaged. AveragedSegments This is the number of segments that were included in averaging. This value is only evaluated if Averaged=YES. SegmentDataPoints If the data is segmented evenly, then the number of data points per segment can be specified here. SegmentationType Like Averaged, this variable is relevant for the enabling and disabling of transforms on the Transformations menu. Possible values: NOTSEGMENTED The data set has not been segmented. MARKERBASED The data set has been segmented on the basis of one or more marker positions. All segments have the same length. FIXTIME Segmentation was based on fixed times. All segments have the same length. DataPoints Number of data points in the EEG file. NO 0 0 NOTSEGMENTED 0 If no predefined value has been specified, the data is read to the end of the file. As far as binary data is concerned, the TrailerSize parameter Vision Recorder User Manual 59 can be set in the [Binary Infos] section as an alternative. Codepage Codepage used in the header file. ANSI Possible values are: UTF-8 ANSI [ASCII Infos] This section is only relevant if DataFormat in the [Common Infos] section was set to ASCII. Keyname Meaning Default value DecimalSymbol Decimal symbol that is used in the EEG Point (.) file. This symbol can be a point or comma. In the header file, the decimal symbol is always a point. SkipLines Number of header lines to be skipped. 0 SkipColumns Number of columns to be skipped at the 0 beginning of a line. [Channel Infos] This section lists the individual channels and their properties. Keyname Meaning Ch<x> Individual properties for the channel are "x" stands for the specified with commas between them: channel number, <Channel Name>,<Reference Channel i.e. the keyname Name>,<Resolution in for the first "Unit">,[<Unit>] channel is Ch1, Example: Ch1=Fp1,,1 for the second channel Ch2 etc. Here, the first channel is named Fp1. The reference channel is assumed to be the common reference channel because no entry has been made. Resolution is 1 µV. Resolution is the value by which the value of the data point is multiplied to convert it to μV or to the selected unit. Default value <Channel Number>,,1,µV i.e. Ch1=1,,1,µV for channel 1, for example [Binary Infos] This section is only relevant if DataFormat in the [Common Infos] section was set to BINARY. Keyname Meaning Default value BinaryFormat Possible values: INT_16 60 ChannelOffset DataOffset SegmentHeaderSize TrailerSize UseBigEndianOrder IEEE_FLOAT_32 IEEE floating point format, single precision, 4 bytes per value. INT_16 16-bit signed integer UINT_16 16-bit unsigned integer Channel offset at which the data starts. This offset is only relevant to vectorized data. ChannelOffset and DataOffset can be used simultaneously. Size of the offset in the file at which the actual data starts. If the data is segmented evenly, the size of the segment header can be input here in bytes. Size of the trailer of the EEG file in bytes. This parameter can be specified as an alternative to DataPoints in [Common Infos] in order to stop reading in the data before the end of the EEG file is reached. This only applies to integer formats. It specifies whether big endian order is used, i.e. whether the most significant byte in a number is stored first (Macintosh, Sun). Possible values: YES Yes, big endian order is in use. NO No, little-endian order is in use (corresponds to the Intel specification). 0 0 0 0 NO The marker file is based on the same principle of sections and keynames as the header file. The first line identifies the marker file and is as follows: Brain Vision Data Exchange Marker File Version 1.0 The various predefined sections with keynames, meaning and default values are listed below. [Common Infos] This section contains general information on the marker file. Keyname Meaning DataFile Name of the EEG file. If the name does not contain a path, it is assumed that the Vision Recorder User Manual Default value 61 EEG file is in the same folder as the marker file. This information is not evaluated. [Marker Infos] The individual markers and their properties are listed in this section. Keyname Meaning Default value Mk<x> Individual properties for a marker are specified with commas between them: - Here, "x" stands for the marker number, i.e. the keyname for the first marker is Mk1, for the second marker Mk2, etc. <Type>,<Description>,<Position>, <Points>,<Channel Number>,<Date> Example: Mk1=Time 0,,26,1,0 Here, the first marker has the type "Time 0", no description, the position is at data point 26, the length is 1 data point, and the channel number is 0 which means that this marker relates to all channels. The date is optional. It is only evaluated if the marker type is New Segment. The date has the following format: 4 digits = Year 2 digits = Month 2 digits = Day 2 digits = Hour (24-hour system) 2 digits = Minute 2 digits = Second 6 digits = Microsecond Consequently time is broken down to the microsecond level. The following specification 19990311140312003012 means March 11, 1999, 14:03:12,003012 62 14. Vision Video Recorder The Brain Vision Video Recorder – referred to in the following as Video Recorder for short – is used for the synchronous recording of video data and EEG data in conjunction with the Brain Vision Recorder. As of version 1.03 of the Vision Recorder, you also install the Brain Products license file you received with the product. All settings for the Video Recorder are made in the Vision Recorder. 14.1. Installation In order to use the Video Recorder, a Brain Vision Recorder with version number 1.02.0001 or higher must have been previously installed. Make sure that you have a USB dongle with video option. Check this by starting the Vision Recorder and choosing Help > About Recorder. Fig. 14-1: Program info If you have the appropriate USB dongle, the following line "Vision Video" will appear. To install the Video Recorder, run the Setup program on the CD supplied and follow the installation instructions. Now install the codec supplied. A codec is used to compress the video data. Finally, connect the video camera and switch it on. Note that some video cameras with a video tape inserted switch over to standby mode after a set time. Since we store the data directly in the computer, no video tape is required. Vision Recorder User Manual 63 14.2. Configuration The Video Recorder is configured in the Vision Recorder under Configuration > Preferences. If you have installed the Video Recorder correctly and you have a dongle with a video license, you will see an additional tab named Vision Video. Fig. 14-2: Video settings tab You can switch on synchronous video recording here (Enable Vision Video). Pressing the "Vision Video Recorder Settings" button takes you to the codec selection dialog of the Video Recorder. Fig. 14-3: Codec selection This dialog box allows you to select different codecs. Note that most codecs offered are not suitable for real-time recording so choose either the codec supplied or one that you know is capable of doing the job. Pressing the Codec Settings button takes you to a menu that depends on the codec currently selected. There you can then set the optimum balance between image quality and video file size. Experiment with different settings by recording part of an EEG in conjunction with the Video Recorder and looking at the resulting quality and file size. To diagnose errors, you can also select <None> for the codec. In this case the video data is not compressed. Select this option for test purposes only! 64 14.3. Combined EEG/video recording Once you have enabled the video option and selected a suitable codec, choose the monitoring mode in the Recorder with the following button: Monitor This brings up a window with EEG data as well as a video window in which the current video data is displayed. Fig. 14-4: Combined EEG/video display If the video camera is not ready, the video window will show "Camera Not Connected!". If the display is black, the most likely cause is that an incompatible codec has been selected. In this case, select a different codec as described in the "Configuration" section. You can move and resize the video window using the mouse. Now record part of an EEG, for example 10 seconds. Make sure that the video image does not disappear. A panning of the camera should also be visible after a short delay of less than a second. If not, the codec used is not suitable. A constant delay of the displayed video data of less than a second is however normal. This does not result in any time difference between the video and the EEG when subsequently replayed in the Vision Analyzer. The video data is saved in the current raw data folder. A file with the extension ".VIDEOCONFIG" and the base name of the EEG file contains detailed information about the video (names of video files, time, length etc.). The actual video data is saved to a file with the Vision Recorder User Manual 65 extension ".VISIONVIDEO". A new video file is created after every recording pause. It is therefore possible for one EEG file to be associated with several video files. You should always check the size of the video files generated. A value of 150 to 300 kbytes per second is possible while maintaining good quality. If your video files have several megabytes per second, either an unsuitable codec or no codec is selected. 66