MouseTracker Help

Jon Freeman
New York University
http://www.jonbfreeman.com


>>

Start

>> Running experiments

>> Creating experiments

 Editing with Designer
 Experimental parameters
 Stimuli and response list


>> Interfacing with an external environment
 
>> About MouseTracker data

>> Analyzing data

>> Exporting data

>> Converting from MouseTracker 1.x

   
 
 

 
Creating experiments

Please see the sample folder (e.g., "C:\MouseTracker\sample") and open fruit-veggies.csv. To create your own experiment .CSV file, I recommend looking at this file and starting from there. It should be fairly easy. There is also now another version of this .CSV file, four-responses.csv, which has the same trials but two additional response alternatives in a different configuration.

There are two parts to an experiment .CSV file. In the first part, you set experimental and display parameters. In the second part, you define in a list what stimuli are presented and what responses options are given. To see how these are specified, the easiest way is to simply look at the fruit-veggies.csv or four-responses.csv file.

The easiest way to set up a .CSV file is to open it in the Designer program. Designer provides a visualization of what the experiment will look like and allows you to customize your experiment. In Designer, you can see and change the number of response alternatives in your experiment, their location and size, the location of visual stimuli (images and letter strings), and the color and font properties. All of these are easily edited directly in the .CSV file as well. Designer's purpose is simply to make it easier for you to change the structure and appearance of the experiment and to provide a visualization of it.


Editing with Designer

Before we begin, familiarize yourself with the MouseTracker coordinate space (below). All experiments operate in this coordinate space and trajectory data take on this form:


When you run Designer, it will prompt you to load an experiment .CSV file. Once you locate it, a screen such as the following will appear:

To load another .CSV file, hit the Load .CSV button. To save changes to a .CSV file, hit the Save .CSV button. To edit the .CSV file in Excel (or whatever default program is linked to .CSV files), hit the Edit .CSV button.

On the right is a visualization of the experiment, with the white box representing a computer screen. The black squares with numbers on them denote the 4 response alternatives in this experiment. Because response button #2 is currently selected, it is red. The gray "Start" button is the "Start" button in the experiment. The black arrow with gray diagonal lines surrounding it denotes the location of visual stimuli (images and letter strings). The point that the black arrow points at is where stimuli are set to appear. The gray lines surrounding it give an example of how a stimulus would appear. You can set the stimulus location by  dragging the black arrow elsewhere. Or, you can type it new values in the bottom-left where it says X and Y in the stimulus location section. If you want to present visual stimuli exactly where the black arrow points at (with the top-right corner of an image or text corresponding with the arrow's point), then uncheck the H Center and V Center boxes. If you like an image or text to be horizontally centered around the arrow's point, check the H Center box; if you'd like an image or text vertically centered around the point, check the V Center box. Hit Set to make changes.

Every object in the visual display on the right can be moved by simply using your mouse and dragging them to a new location. To select a response button or the "Start" button, you can just click on it (and it will turn red). You can also select these by using the list on the left. To add or remove a response button, hit the + or - button, respectively, which are located next to the list on the left. When a response button or the "Start" button is selected, its X and Y coordinates and Width and Height are displayed (to the right of the list). You can also edit these properties by typing in a new value and hiting the Set button. The small blank buttons on the top and right sides of the visual display will take a selected object and align it with that part of the display.

To set the background screen color or color of the response buttons, click on the color box where it says Screen or Resp, respectively. To set the font style, size, and color of the response buttons and letter string stimuli, click on the boxes where it says Resp Text and Stim Text, respectively. 

Creating symmetries for trajectory remapping

In most MouseTracker experiment designs, you'll probably want to make two response alternatives (or multiple sets of two response alternatives) symmetrical to one another. For instance, if participants are deciding between two different choices (or four different choices, etc.), each choice should probably be an exactly equal distance away from the where the mouse starts (the "Start" button). This is important not only for your experimental design, but also for remapping trajectories later when you analyze the data in the Analyzer program. Let's take an example. See the screenshot below. There are four response buttons. Later on during data analysis, we might want to directly compare simultaneously all the mouse trajectories heading into the different response buttons. One way to do this would be to plot them all in their raw form, each heading in their own direction. However, a far easier way to do this would be to remap trajectories into one location. So, for instance, we might want to remap trajectories heading into responses #1, #2, and #3 all into #4, so we can overlay them on top of one another and compare directly. A prerequisite for this kind of analysis is that the buttons are symmetrical with one another about the "Start" button. To make these symmetrical (and ensure that they are indeed symmetrical), we can use the H Sym and V Sym tools under the X, Y, Width, and Height properties.

First, select a response button. Here, we've selected response #1, which is not symmetrical horizontally with #4, nor is it symmetrical vertically with #2.

To make it symmetrical horizontally with #4, we simply set the H Sym property to 4. To make it symmetrical vertically with #2, we set the V Sym property to 2. Then, hit the Set button.

Symmetry lines blink for a few seconds to show you the axis or axes of symmetry taking place. Now, response #1 has been made horizontally symmetrical and vertically symmetrical. Later, this will allow you to remap trajectories in the Analyzer program.

To save any changes you've made, hit the Save .CSV button. If you then hit the Edit .CSV button, you can then continue on to the rest of the experiment's design.

 


Experimental and display parameters

The first part of an experiment .CSV file is the list of experimental and display parameters (many of which are what were edited in Designer). It is best that you include the entire list of parameters, as seen in the fruit-veggies.csv file. Below is a description of what each one does. Parameters in red with an asterisk are required (and should be specified in the following order); the rest are optional.

Display
screenres You have the option of setting the screen resolution. To set it, include this parameter as the very first parameter listed, and put the screen width as the first value and the screen height as the second value (in pixels), e.g., 1024 and 768 (to set the resolution to 1024 x 768 pixels). When the experiment ends, the screen resolution will be set back to its original state.

resploc *

This sets how many response alternatives there are in addition to their  location and size. Each response alternative goes in a separate column. You can use as many columns (response alternatives) as you need. In each column location, first comes the response's X coordinate, then a semicolon (";"), the response's width, a semicolon (";"), the response's Y coordinate, a semicolon (";"), and the response's height. Thus, the value for response button #2 in the example earlier would be:  -0.64;0.2;0.48;0.2

startloc *

This sets the location and size of the "Start" button. First comes the X coordinate, then a semicolon (";"), the width, a semicolon (";"), the Y coordinate, a semicolon (";"), and the height. Thus, the value for a "Start" at the bottom-center of the screen would be:  -0.1;0.2;0.1;0.1

stimloc *

This sets the location of visual stimuli (images and text). First comes the X coordinate, followed by a semicolon (";"), and the Y coordinate. For example:  0;0.5

stimhcenter *

To have a visual stimulus be horizontally centered around the stimulus location (stimloc), set this to 1. Otherwise, to have the right edge of a visual stimulus correspond with the stimulus location (stimloc), set this to 0.

stimvcenter *

To have a visual stimulus be vertically centered around the stimulus location (stimloc), set this to 1. Otherwise, to have the top edge of a visual stimulus correspond with the stimulus location (stimloc), set this to 0.

respbackcolor *

Color of the response buttons in RGB format.

respfontname *

Font name for response buttons (e.g., Arial).

respfontcolor *

Color of the response button font in RGB format.

respfontsize *

Font size for response buttons.

screencolor *

Background color of the screen in RGB format. If you would like to use a background image rather than a color, start the first column (where the red value would be specified) with a "~" followed by the image: e.g., ~background.jpg

stimfontname *

Font name for word stimuli (e.g., Arial).

stimfontcolor *

Font color for word stimuli in RGB format.

stimfontsize *

Font size for word stimuli.

autoorigin *

 

Automatically relocate the mouse to the Start button (origin) when the Start button is pushed. 0 = do not automatically relocate to origin. 1 = automatically relocate to origin. It is recommended that autoorigin = 1.

startfontname Font name for the Start button
startfontsize Font size for the Start button
starttext Text of the Start button (default = "START")
respborder Sets whether there is a black border around response buttons.
(0 = no border, 1 = border)
 

End of experiment

endscreen

A fullscreen image (e.g., JPG, BMP) to display after the last trial finishes. Pressing any key ends Runner program (unless endexec is specified). If endscreen is not specified, a “Goodbye!” button will appear at the end instead.

endexec

Rather than Runner simply ending, it can launch a file, program, or URL. Pressing any key on the end screen will launch this. For files or programs, specify the full path and file name. For URLs, specify the URL (e.g., "c:\mousetracker\analyzer.exe" or "http://mousetracker.jbfreeman.net"). To automatically launch another experiment in Runner, you can use command-line arguments (see 'Running experiments'). For example, specifying "c:\mousetracker\runner.exe -s 250 -f c:\mousetracker\sample\fruit-veggies.csv" would run that experiment .CSV file with subject ID of 250.

 

Interval between trials

ITI1

This is the first inter-trial-interval (in milliseconds) immediately following a prior response, where the response buttons are not displayed (thus, a blank screen). You can set ITI1 = 0 in order to have the response buttons constantly displayed between trials and use ITI2 to define how long they are displayed before the Start button appears for the next trial.

ITI2

This is the second inter-trial-interval (in milliseconds) following the first (ITI1). ITI2, unlike ITI1, does display the response buttons.

respshowafter

Set this to 1 if you would like the response buttons to not appear until after the participant has clicked the “Start” button. Set to 0 to have them appear normally. If respshowafter = 1, set respshowafterdelay to specify the time delay between clicking the “Start” button and when the mouse may move.

respshowafteronset (Only important if respshowafter = 1). This sets the time delay (in milliseconds) between clicking the "Start"  button and when the responses are shown.

If presenting compound trials (trial-type 4), another way to display responses using respshowafter is to have them displayed in sync with a step in the sequence. To do this, set respshowafteronset to -1, and put *RS* before the stimulus name in the step in the sequence where you wanted the responses shown. For instance:

2/ARE/500;2/YOU/500;2/A/500;2/*RS*RABBIT?/0

By putting in the *RS*, the responses would be shown at the "RABBIT?" part of the sequence.

respshowafterdelay

(Only important if respshowafter = 1). This sets the time delay (in milliseconds) between when then the responses are shown and when the mouse is allowed to move. Until this time, the mouse will remain frozen. After the delay, the mouse is freed. This is helpful to allow participants to view the responses before the trial can begin. If respshowafterdelay = 0, the mouse can move immediately (as in normal trials).

Incorrect responses and feedback

feedbacktime

This defines the duration (in milliseconds) of how long an error message (“X”) will appear after an incorrect response. Set feedbacktime = 0 to not display error messages after incorrect responses. Or, if you are using unique feedback messages, this will define how long such a message will appear after a response is made (see response #1 ... n section of the Stimuli and Response list).

hovermode

Setting hovermode = 1 sets all incorrect response buttons to be hover responses (rather than click responses, which are default). Setting hovermode = 2 sets both incorrect response buttons and the correct response button to be hover responses (rather than click responses, which are default). Setting a response button to be a hover response means that that response is automatically selected when a participant hovers over its location (and thus it does not require an actual mouse click). You can also set response buttons to be hover-selected not only when the mouse hovers not on the actual response location, but also when it just gets too close to it. Use the hovervspace and hoverhspace parameters to set the size of this boundary. Set hovermode = 0 to keep response buttons as requiring an actual mouse click (default). Hovermode should be set to 0 if not error monitoring at all (i.e., feedbacktime = 0).

hovervspace

(Only important if errorhover = 1). This is the amount of extra vertical space surrounding an incorrect response button that, when the mouse hovers over it, automatically marks the trial incorrect. Specify this extra height in proportion to the screen: e.g., 0.1 = 1/10 of the screen height, such that when the participant passes the mouse as close as 1/10th of the screen height below the top-edge or bottom-edge of an incorrect response button, the trial is marked incorrect.

hoverhspace

(Only important if errorhover = 1). This is the amount of extra horizontal space surrounding an incorrect response button that, when the mouse hovers over it, automatically marks the trial incorrect. Specify this extra width in proportion to the screen: e.g., 0.1 = 1/10 of the screen width, such that when the participant passes the mouse as close as 1/10th of the screen width to the left of the left-edge or right of the right-edge of an incorrect response button, the trial is marked incorrect.

 

Time deadline and on-line screening of mouse movement

 

timecut

This sets a time deadline (in milliseconds) that participants have to respond by. If they exceed this deadline, a message will appear informing them that they ran out of time, and the trial will be discarded. The message appearing is defined by timecutmsg. Set timecut = 0 for no time deadline.

timecutmsg

The message appearing that informs participants that the trial exceeded the time deadline (see timecut). Use the “|” character to denote a comma (“,”).

timeouttime

This defines the duration (in milliseconds) of how long the time deadline message (see timecut and timecutmsg) will appear.

initcut

In some paradigms, it may be important to ensure participants are responding on-line (during actual processing) rather than off-line (once a decision has already been made). One way to do this is by alerting participants when they are initiating mouse movement too late. To do this, you can set initcut to a certain threshold of initiation time (in milliseconds). On trials where initiation time exceeds this threshold, participants will be alerted after the response is made that they initiated movement too late (in order to encourage future responses to be initiated earlier).  The alert message is specified by the parameter, initcutmsg. Set initcut = 0 for no initiation time monitoring.

initcutmsg

Message to appear for alerting participants that a trial’s initiation time is too long (see initcut). Use the “|” character to denote a comma (“,”). To use an image rather than text, specify the image file preceded by a “~”: for example, ~initcutmsg.jpg.

Miscellaneous features

cursorspeed You can temporarily change the Windows cursor speed. Set this value to a number between 1 (slowest) to 20 (fastest). When the experiment ends, the cursor speed will be set back to its original value.

holdforcompound

If you are using compound trials (trial-type = 4) where multiple stimuli are sequenced, you have two options as to what participants can do with the mouse while the stimulus sequence unfolds over time. One option is to allow them to start moving right after the first stimulus is presented (which is akin to simple trials), which you specify by setting holdforcompound = 0. The second option is to prevent mouse movement completely while the stimulus sequence unfolds. In this case, the mouse freezes from the moment the Start button is pressed, and unfreezes after the last stimulus is presented. This is specified by setting holdforcompound = 1.

Another way to release the mouse cursor using holdforcompound is to do so  at a step in the sequence. To do this, set holdforcompound to 1, and put *HC* before the stimulus name in the step in the sequence when you want the mouse cursor released. For instance:

2/ARE/500;2/*HC*YOU/500;2/A/500;2/RABBIT?/0

By putting in the *HC*, the mouse cursor would be released as soon as the "YOU" part of the sequence is presented (rather than released when the sequence ends).
 

dragging

You can require participants to drag image stimuli from the bottom-center of the screen into one of the response alternatives, which is accomplished by setting dragging = 1 (otherwise dragging = 0). If turned on, the participant initially holds down the mouse on the Start button, and the image appears in its place. Still holding down the mouse, the participant drags the image (which is moving along with the mouse) into one of the response alternatives, and then releases the mouse. The mouse must be released within the bounds of one of the response alternatives. If it is released elsewhere (e.g., the participant starts dragging and then releases in the middle of the screen), the trial is marked wrong and recorded in the .MT file as a “time out.” This feature only works for trial-type = 1 (image stimuli).

originafterresp

Automatically relocate the mouse to the Start button (origin) after a response is made. 0 = do not automatically relocate to origin. 1 = automatically relocate to origin.

respinputmsg This sets the question/prompt for optional post-trial input. Once a trial finishes, you can prompt text/numeric input from a subject after he/she responds (e.g., "How confident were you in your decision?"). Trials requiring such input are marked with an asterisk (*) in the trial-type column (see trial-type below for more information). The respinputoptions parameter sets the various acceptable options.
respinputoptions This sets the various acceptable options for optional post-trial input (leave blank to accept all options). For example, the question might be "How confident were you in your decision?" and you may want to accept only a scale from 1-4. In such a case, respinputoptions should be "1234".
 
altsound On certain computers in some rare cases, the mechanism MouseTracker uses to play audio files (trial-type 3) does not work properly. If so, an alternative mechanism can be used instead by setting this parameter to 1.
 

 


Stimuli and response list

Stimuli and responses are entered into as many rows as needed, in columns of at least 8. The columns must proceed in the following order:

type,  stimulus,  condition,  randomize-block,  correct,  default-compare,  response #1,  response #2,  ...  response #n

Here are descriptions of what should be included in each of these columns:

 

type

The options range between 0 to 6:

0 = non-experimental trial (e.g., instructions or break) where a fullscreen image (JPG, BMP, etc.) is displayed. By default, participants press the Return key to move on to next trial, but you can also opt to have it presented for a fixed duration of time. Note: These trials only require the first 3 columns (trial-type, stimulus, condition) and do not need the remaining columns.

1 = stimulus will be an image file (JPG, BMP, etc.)

2 = stimulus will be a string of characters (e.g., a word)

3 = stimulus will be a sound file (WAV, MP3, etc.)

4 = compound trial where multiple stimuli are sequenced, such as a series of words, images, or sounds (or mixed) – see below (stimulus) for more information on how to specify this sequence.

5 = randomly select one stimulus from several alternatives – see below (stimulus) for more information on how to specify alternatives

6 = stimulus will be a video file (AVI, WMV, etc.)
(requires Windows Media Player to be installed)

7 = stimulus will be determined by on-line Clipboard interface
(see Interfacing with external environment)

Requesting input from the subject after the trial

Once a trial finishes, it is possible to prompt text/numeric input from a subject after he/she responds. To do so, mark the trials you would like to request post-trial input from with an asterisk (*) after trial-type. So, a "1*" in the trial-type column indicates that image trial will have post-trial input requested. The input question/prompt is specified using the respinputmsg parameter, and the respinputoptions parameter sets the various acceptable options (see above for more information).

 

stimulus

For trial-type 0, a fullscreen image file is specified (JPG, BMP, etc.). By default, participants press the Return key to move on to the next trial. To specify a fixed duration of time instead, add a "|" and the duration in milliseconds (e.g., "instruct.jpg|1200" would present the instruct.jpg file for 1200 milliseconds).

For trial-type 1, an image file is specified (JPG, BMP, etc.).

For trial-type 2, the string of characters is simply written out. To put a carriage return, use "|". To put a comma, use "^".

For trial-type 3, the sound file is specified (WAV, MP3, etc.).
The sound will keep playing until it's finished, even after a response is made (if it's longer than the response time). To stop the sound once a response is made, insert "!stopsnd!" at the beginning of the stimulus file (e.g., "!stopsnd!sample.wav"). Note that you can also stop the sound that was started on one trial later on a different trial by inserting "!stopsnd!" on  that later trial. On certain computers in some rare cases, the mechanism MouseTracker uses to play audio files (trial-type 3) does not work properly. If so, an alternative mechanism can be used instead by setting the altsound parameter to 1 (see above).

For trial-type 4 (compound trial) or 5 (random-pick trial), see below.

For trial-type 6, the video file is specified (AVI, WMV, etc.).

For trial-type 7, nothing is specified.
 

Specifying stimulus sequences for trial-type 4 (compound trial):

You can present a sequence of stimuli with as many stimuli as you like. For each stimulus in the sequence, three parameters are needed: stimulus-type, stimulus-file, time-duration.

Stimulus-type = 1 >> image file (JPG, BMP, etc.)

Stimulus-type = 2 >>  string of characters (e.g., a word)

Stimulus-type = 3 >>  sound file (WAV, MP3, etc.)

Stimulus-type = 5 >>  random-pick (see below)

Stimulus-file should be the name of the file (or a letter string, if a word stimulus), and time-duration should be the amount of milliseconds you would like the stimulus presented for (sound files will always play until they have finished, but time-duration will determine how long until the next step is taken). You can require participants to press the Enter key to move onto the next stimulus in the sequence by setting time-duration = -1.

In the stimulus column for the compound trial, you list each step of the sequence, in order, separated by a semicolon (;). Each stimulus in the sequence is specified by its three parameters (type, file, duration), in that order, separated by a forward slash (/). For instance, the following would be put in the stimulus column of a compound trial that sequences: “RABBITS” >>  “NEVER” >> “TURN” >> “DOWN” >> “A” >> [picture of a carrot] and at the same time [speech sound saying ‘carrot’]:

2/RABBITS/500;2/NEVER/500;2/TURN/500;2/DOWN/500;  continues >> continues   >>   2/A/500;1/carrot.jpg/0;3/carrot.wav/0

While the sequence unfolds over time, the mouse can be free to move or be frozen until the last segment of the sequence is presented. This is set using the holdforcompound parameter (see above).
 

Specifying stimulus alternatives for trial-type 5 (random-pick trials)

Multiple alternatives are written out, each separated by a “|”. Each alternative needs 2 pieces of information: the real trial-type (1, 2, 3, or 4) and the stimulus (JPG, WAV, compound sequence, etc.). The trial-type is written first, followed by a “*” and then the stimulus. So, for instance:

1*face7_front.jpg|1*face7_side.jpg|1*face7_back.jpg

These 3 alternatives represent 3 different variants of a particular person’s face (“face7”) in front, side, and back views. In your experiments, you may only want participants to ever encounter one kind of variant of “face7” but that it be in a view that is randomly selected (front, side, back). Here Runner will randomly select one of these 3 alternatives and then run that alternative as the trial. This can be done with all trial-types 1, 2, 3, and 4 (and mixed together) as the alternatives.

If you would like Runner to only randomly select an alternative that has not been presented previously in the experiment, put a “~” as the first character of the stimulus column, e.g.: ~1*face7_front.jpg|1*face7_side.jpg|1*face7_back.jpg

condition

This defines some meaningful condition or code that can be used to select this trial in the analyzer program. This can be general (e.g., “typical” or “atypical”) or could be very specific unique codes (e.g., “200” or “201”) that can then be grouped into a meaningful condition in the analyzer program.

If you are using trial-type 5 (random-pick trial), you need to specify as many condition alternatives as there are stimulus alternatives (in the stimulus column), each one being separated by a “|”. So, with the example above (1*face7_front.jpg|1*face7_side.jpg|1*face7_back.jpg), in the condition column you would put something like: front|side|back    Thus, if Runner picks the second alternative (trial-type 1, stimulus: face7_side.jpg) it will assign its condition code to be: side
 

randomize-block

This column is optional. Use this to specify a block of trials whose order you would like randomized. If you have one block of trials, use “1” and any additional blocks should be indicated by consecutive numbers (e.g., “2”, “3”, etc.). Thus, any trials where a “1” is specified will be randomly shuffled, and any trials where a “2” is specified will be randomly shuffled, and so on and so on. In most cases, you’ll simply want to randomize all trials in the experiment and thus would put a “1” on every trial. Leave this blank to not randomize the trial.

correct

This is the number of the correct response. Thus, if response #1 is the correct one, this should be 1. Not all experiments require a "correct" response. If there is no "correct" response, enter in the one that is most expected.

default-compare This is the number of the response that is the default comparison. Later during data analysis, you'll be able to calculate how much the mouse deviated to each response in a trial, but for the purposes of averaging and convenience, this should be the default comparison. For instance, perhaps this response button is the one hypothesized to be a distractor or hypothesized to attract participants' mouse movements. Specifically, this is used for averaging across trials (and subjects) with the maximum deviation (MD) and area-under-the-curve (AUC) measures later during data analysis. In experiments only involving 2 response alternatives, this is simply the incorrect or unexpected alternative (not specified in correct).
response #1 ... n This defines the text or image of the #n response button. There should be one column for each response button. Response button #1 comes first, then #2 comes second, etc. The number of response buttons is determined by how many columns were used in the resploc parameter. Use “|” to enter a line-break (e.g., “WHITE|GOOD” would put “WHITE” on the first line and “GOOD” on the second). To use an image rather than text, specify the image file preceded by a “~”: for example, ~carrot.jpg. To make the response button transparent, just use a "~" with no image specified.

Providing unique feedback messages for response alternatives

Rather than have Runner provide participants with error feedback ("X") after an incorrect response, you can opt to have it provide unique feedback messages for each response alternative. For instance, on a particular trial you may want participants to see the message "$100" if they choose response #1 or see the message "$200" if they chose response #2. To use this feature, simply put the feedback message for the response alternative sandwiched between two "#" characters at the beginning of the response text in this column. For instance, to make the message, "$100", appear after clicking a response button that says "DOG", set the response column to "#$100#DOG". The feedbacktime parameter sets how long the message will appear for. If a response is clicked on that has unique feedback and it is an incorrect response, no additional error feedback is provided. If desired, you can also specify the RGB color of this feedback message. This can be done by adding the RGB values after the feedback message with more "#" signs, e.g., "#$100#0#0#255#DOG" (setting the feedback message to blue color).


Some examples of rows in the stimulus list:

type stim condition randomize correct default-
compare
response #1 response #2
0 instructions.jpg   instruct          
1 carrot.jpg more-com 1 2 1 FRUIT  VEGGIE
1 tomato.jpg less-com 1 1 2 FRUIT  VEGGIE
2 CARROT more-com 1 2 1 FRUIT  VEGGIE     
3 tomato.wav less-com 1 1 2 FRUIT  VEGGIE
4 1/carrot.jpg/0;3/carrot.wav/0 more-com 1 2 1 FRUIT     VEGGIE
4 2/ONION/500;1/onion.jpg/0 more-com 1 2 1 FRUIT  VEGGIE
5 1/carrot.jpg|2/CARROT more-com|more-com 1 2 1 FRUIT VEGGIE