Apex will only load experiment files with the correct versionattribute. Conversion scripts will be provided to convert to newerversions.
Source
<xs:element name="apex"><xs:complexType><xs:sequence><xs:element name="description" type="xs:string" minOccurs="0"><xs:annotation><xs:documentation>Describes the entire experiment. Is reported in the results file.</xs:documentation></xs:annotation></xs:element><xs:element name="procedure" type="apex:procedureType"><xs:annotation><xs:documentation>Describes the procedure to be used. The procedure controls the sequence of trials that will be presented. Real procedures are derived from apex:procedureType.</xs:documentation></xs:annotation></xs:element><xs:element name="screens" type="apex:screensType"><xs:annotation><xs:documentation>Defines one or more screens to be used elsewhere. A screen is what is visible on the computer screen at a certain instant of time.</xs:documentation></xs:annotation><xs:key name="screensKey"><xs:selector xpath="apex:screen"></xs:selector><xs:field xpath="@apex:id"></xs:field></xs:key></xs:element><xs:element name="datablocks" type="apex:datablockstype"><xs:annotation><xs:documentation>A datablock is the smallest unit of output data used in Apex. Every sound or other stimulus file to be used elsewhere, is to be defined in this section.</xs:documentation></xs:annotation><xs:key name="datablockKey"><xs:selector xpath="apex:datablock"></xs:selector><xs:field xpath="@apex:id"></xs:field></xs:key></xs:element><xs:element name="devices" type="apex:devicesType"><xs:annotation><xs:documentation>All output devices to be used are enumerated in this section. Before the experiment can be started, Apex tries to open them. The experiment only starts if all devices can be opened. Devices are started in alphabetical order of their id, except if a master is specified. They are stopped in reverse alphabetical order. Thus if you want them to be started or stopped in a certain order, you can change their IDs.</xs:documentation></xs:annotation><xs:key name="devicesKey"><xs:selector xpath="apex:device"></xs:selector><xs:field xpath="@apex:id"></xs:field></xs:key></xs:element><xs:element name="filters" type="apex:filtersType" minOccurs="0"><xs:annotation><xs:documentation>Filters can be placed anywhere in the output network. They can be real filters, ie blocks that process data, or generators, ie blocks that generate data without any input data.</xs:documentation></xs:annotation><xs:key name="filterKey"><xs:selector xpath="apex:filter"></xs:selector><xs:field xpath="@apex:id"></xs:field></xs:key></xs:element><xs:element name="stimuli" type="apex:stimuliType"><xs:annotation><xs:documentation>A stimulus is the whole of datablocks (for any number of devices) and parameters (fixed and variable) that is presented to the user at a certain instant of time.</xs:documentation></xs:annotation><xs:key name="stimulusKey"><xs:selector xpath="apex:stimulus"></xs:selector><xs:field xpath="@apex:id"></xs:field></xs:key></xs:element><xs:element name="connections" minOccurs="0" type="apex:connectionsType"><xs:annotation><xs:documentation>In this section, connections can be made between datablocks, filters and devices. "from" is only possible for datablocks and filters, "to" is only possible for filters that accept input (thus no generators) and devices. Connections can only be made between elements belonging to the same device. If no connections are specified, Apex tries to make a default network by connecting all channels from _ALL_ (== all datablocks) to all channels from the datablocks' device. Default connections are not made when filters are present.</xs:documentation></xs:annotation></xs:element><xs:element name="randomgenerators" minOccurs="0" type="apex:randomgeneratorsType"><xs:annotation><xs:documentation>Randomgenerators generate random numbers according to a certain specification and can set any parameter defined elsewhere before stimulus output. All randomgenerators are asked to set their corresponding parameters right before a stimulus is output.</xs:documentation></xs:annotation></xs:element><xs:element name="calibration" minOccurs="0" maxOccurs="1" type="apex:calibrationType"><xs:annotation><xs:documentation>In this optional section, parameters for the built in calibration mechanism are defined. Calibration is the process of ensuring a relation between a digital stimulus level (dB) and the actual audio output (dBSPL). Calibration parameters are stored in profiles that are persistent between sessions. Profiles are stored in the apex/config/calibration directory and can be edited by hand if required.</xs:documentation></xs:annotation></xs:element><xs:element name="results" minOccurs="0" type="apex:resultsType"><xs:annotation><xs:documentation>Parameters related to the presentation/analysis of the result of this experiment are defined here.</xs:documentation></xs:annotation></xs:element><xs:element name="interactive" minOccurs="0" type="apex:interactiveType"><xs:annotation><xs:documentation>For every entry in this section, the value of a certain element in this experiment file will be changed to the value set by the user in a GUI window.</xs:documentation></xs:annotation></xs:element><xs:element name="general" minOccurs="0" type="apex:generalType"><xs:annotation><xs:documentation>Some general experiment parameters are defined here.</xs:documentation></xs:annotation></xs:element></xs:sequence><xs:attribute name="version" use="optional" type="xs:positiveInteger"><xs:annotation><xs:documentation>Apex will only load experiment files with the correct version attribute. Conversion scripts will be provided to convert to newer versions.</xs:documentation></xs:annotation></xs:attribute></xs:complexType></xs:element>
Describes the entire experiment. Is reported in theresults file.
Diagram
Type
xs:string
Properties
content
simple
minOccurs
0
Source
<xs:element name="description" type="xs:string" minOccurs="0"><xs:annotation><xs:documentation>Describes the entire experiment. Is reported in the results file.</xs:documentation></xs:annotation></xs:element>
Describes the procedure to be used. The procedure controlsthe sequence of trials that will be presented. Real procedures arederived from apex:procedureType.
The ID is optional, except for child procedures of amultiprocedure. IDs are reported in the results file.
Source
<xs:element name="procedure" type="apex:procedureType"><xs:annotation><xs:documentation>Describes the procedure to be used. The procedure controls the sequence of trials that will be presented. Real procedures are derived from apex:procedureType.</xs:documentation></xs:annotation></xs:element>
<xs:element name="screens" type="apex:screensType"><xs:annotation><xs:documentation>Defines one or more screens to be used elsewhere. A screen is what is visible on the computer screen at a certain instant of time.</xs:documentation></xs:annotation><xs:key name="screensKey"><xs:selector xpath="apex:screen"></xs:selector><xs:field xpath="@apex:id"></xs:field></xs:key></xs:element>
Defines a prefix for the filenames of mediafiles used in the screens below. The prefix is concatenatedin the front of the filenames given below before trying toopen any file.
<xs:element name="prefix" type="apex:prefixType" minOccurs="0" maxOccurs="1"><xs:annotation><xs:documentation>Defines a prefix for the filenames of media files used in the screens below. The prefix is concatenated in the front of the filenames given below before trying to open any file.</xs:documentation></xs:annotation></xs:element>
<xs:element name="general" type="apex:screenGeneralType" minOccurs="0"><xs:annotation><xs:documentation>Some general properties of the entire Apex window are set in this section. They are applied for each particular screen defined below.</xs:documentation></xs:annotation></xs:element>
Show a red panic button that immediately stops all output whenclicked.
Diagram
Type
xs:boolean
Properties
content
simple
minOccurs
0
Source
<xs:element name="stopbutton" type="xs:boolean" minOccurs="0"><xs:annotation><xs:documentation>Show a red panic button that immediately stops all output when clicked.</xs:documentation></xs:annotation></xs:element>
Show a repeat button that will repeat the last stimulus.
Diagram
Type
xs:boolean
Properties
content
simple
minOccurs
0
Source
<xs:element name="repeatbutton" type="xs:boolean" minOccurs="0"><xs:annotation><xs:documentation>Show a repeat button that will repeat the last stimulus.</xs:documentation></xs:annotation></xs:element>
Show a status picture that indicates whether the user should be listening or giving an answer
Diagram
Type
xs:boolean
Properties
content
simple
minOccurs
0
Source
<xs:element name="statuspicture" type="xs:boolean" minOccurs="0"><xs:annotation><xs:documentation>Show a status picture that indicates whether the user should be listening or giving an answer</xs:documentation></xs:annotation></xs:element>
Show the panel; in case of childmode: a movie if defined
Diagram
Type
xs:boolean
Properties
content
simple
minOccurs
0
Source
<xs:element name="showpanel" type="xs:boolean" minOccurs="0"><xs:annotation><xs:documentation>Show the panel; in case of childmode: a movie if defined</xs:documentation></xs:annotation></xs:element>
Determined whether the apex main menu (containing File, Calibration, etc.) is shown
Diagram
Type
xs:boolean
Properties
content
simple
minOccurs
0
default
true
Source
<xs:element name="showmenu" type="xs:boolean" minOccurs="0" default="true"><xs:annotation><xs:documentation>Determined whether the apex main menu (containing File, Calibration, etc.) is shown</xs:documentation></xs:annotation></xs:element>
If true, the main apex window will be shown full-screen, without window title or taskbar or whatever
Diagram
Type
xs:boolean
Properties
content
simple
minOccurs
0
default
false
Source
<xs:element name="fullscreen" type="xs:boolean" minOccurs="0" default="false"><xs:annotation><xs:documentation>If true, the main apex window will be shown full-screen, without window title or taskbar or whatever</xs:documentation></xs:annotation></xs:element>
<xs:element name="intertrialscreen" minOccurs="0" maxOccurs="1"><xs:annotation><xs:documentation>A screen to show in between trials (after feedback that is)</xs:documentation></xs:annotation><xs:complexType><xs:simpleContent><xs:extension base="xs:IDREF"><xs:attribute name="length" type="xs:positiveInteger"><xs:annotation><xs:documentation>The period to show the screen</xs:documentation></xs:annotation></xs:attribute></xs:extension></xs:simpleContent></xs:complexType></xs:element>
<xs:element name="reinforcement" type="apex:reinforcementType" minOccurs="0"><xs:annotation><xs:documentation>Defines what kind of feedback about the procedure and correctness of answers is shown to the user. This is valid for the whole experiment.</xs:documentation></xs:annotation></xs:element>
Show a progress bar in the right hand panel, indicating theexperiment progress. Not functional for multiprocedure ortrainingprocedure.
Diagram
Type
xs:boolean
Properties
content
simple
Source
<xs:element name="progressbar" type="xs:boolean"><xs:annotation><xs:documentation>Show a progress bar in the right hand panel, indicating the experiment progress. Not functional for multiprocedure or trainingprocedure.</xs:documentation></xs:annotation></xs:element>
Show visual feedback according to the correctness of the lastanswer. Feedback is shown using an upward or downward pointing thumb in theright hand panel.
Length of the feedback in ms. If feedback is false but a length is present, the specified time will be the time between two trials.
Source
<xs:element name="feedback"><xs:annotation><xs:documentation>Show visual feedback according to the correctness of the last answer. Feedback is shown using an upward or downward pointing thumb in the right hand panel.</xs:documentation></xs:annotation><xs:complexType><xs:simpleContent><xs:extension base="xs:boolean"><xs:attribute name="length" type="xs:nonNegativeInteger" default="1000"><xs:annotation><xs:documentation>Length of the feedback in ms. If feedback is false but a length is present, the specified time will be the time between two trials.</xs:documentation></xs:annotation></xs:attribute></xs:extension></xs:simpleContent></xs:complexType></xs:element>
If feedback is shown, it is shown as a picture in the panel, but a screen element can also be highlighted.
Diagram
Type
restriction of xs:string
Properties
content
simple
minOccurs
0
default
correct
Facets
enumeration
none
Do not highlight any screenelement
enumeration
correct
Highlight the correct screenelement
enumeration
clicked
Highlight the clicked screenelement (the subject answer)
Source
<xs:element name="feedback_on" minOccurs="0" default="correct"><xs:annotation><xs:documentation>If feedback is shown, it is shown as a picture in the panel, but a screen element can also be highlighted.</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="none"><xs:annotation><xs:documentation>Do not highlight any screenelement</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="correct"><xs:annotation><xs:documentation>Highlight the correct screenelement</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="clicked"><xs:annotation><xs:documentation>Highlight the clicked screenelement (the subject answer)</xs:documentation></xs:annotation></xs:enumeration></xs:restriction></xs:simpleType></xs:element>
Picture to be shown in the panel on positive feedback.
Diagram
Type
xs:string
Properties
content
simple
minOccurs
0
Source
<xs:element name="feedback_picture_positive" type="xs:string" minOccurs="0"><xs:annotation><xs:documentation>Picture to be shown in the panel on positive feedback.</xs:documentation></xs:annotation></xs:element>
Picture to be shown in the panel on negateive feedback.
Diagram
Type
xs:string
Properties
content
simple
minOccurs
0
Source
<xs:element name="feedback_picture_negative" type="xs:string" minOccurs="0"><xs:annotation><xs:documentation>Picture to be shown in the panel on negateive feedback.</xs:documentation></xs:annotation></xs:element>
Show a border around the screen element corresponding to thecurrently playing stimulus.
Diagram
Type
xs:boolean
Properties
content
simple
minOccurs
0
Source
<xs:element name="showcurrent" type="xs:boolean" minOccurs="0"><xs:annotation><xs:documentation>Show a border around the screen element corresponding to the currently playing stimulus.</xs:documentation></xs:annotation></xs:element>
<xs:element name="feedbackplugin" minOccurs="0" maxOccurs="unbounded"><xs:annotation><xs:documentation></xs:documentation></xs:annotation><xs:complexType><xs:sequence><xs:element name="parameter" default="" minOccurs="0" maxOccurs="unbounded"><xs:annotation><xs:documentation>Parameter to be passed to the plugin</xs:documentation></xs:annotation><xs:complexType><xs:simpleContent><xs:extension base="xs:string"><xs:attribute name="name" type="xs:Name" use="required"/></xs:extension></xs:simpleContent></xs:complexType></xs:element></xs:sequence><xs:attribute name="name" type="xs:string" use="required"><xs:annotation><xs:documentation>Name of the plugin to be loaded</xs:documentation></xs:annotation></xs:attribute></xs:complexType></xs:element>
<xs:element name="parameter" default="" minOccurs="0" maxOccurs="unbounded"><xs:annotation><xs:documentation>Parameter to be passed to the plugin</xs:documentation></xs:annotation><xs:complexType><xs:simpleContent><xs:extension base="xs:string"><xs:attribute name="name" type="xs:Name" use="required"/></xs:extension></xs:simpleContent></xs:complexType></xs:element>
<xs:element name="style_apex" type="apex:stylesheetType" minOccurs="0"><xs:annotation><xs:documentation>Style that is to be applied to the whole of apex</xs:documentation></xs:annotation></xs:element>
<xs:element name="style" type="apex:stylesheetType" minOccurs="0"><xs:annotation><xs:documentation>Style that is to be applied to all screens</xs:documentation></xs:annotation></xs:element>
<xs:element name="childmode" type="apex:childmodeType" minOccurs="0"><xs:annotation><xs:documentation>Defines the elements used in child mode.</xs:documentation></xs:annotation></xs:element>
Length of the movie in ms, if not specified, the system will wait for the movie to end and then continue.
Source
<xs:element name="intro" minOccurs="0" maxOccurs="1"><xs:annotation><xs:documentation>The screen to show as intro before the experiment starts</xs:documentation></xs:annotation><xs:complexType><xs:simpleContent><xs:extension base="xs:IDREF"><xs:attribute name="length" type="xs:nonNegativeInteger"><xs:annotation><xs:documentation>Length of the movie in ms, if not specified, the system will wait for the movie to end and then continue.</xs:documentation></xs:annotation></xs:attribute></xs:extension></xs:simpleContent></xs:complexType></xs:element>
<xs:element name="outro" minOccurs="0" maxOccurs="1"><xs:annotation><xs:documentation>The screen to show as outro after the experiment has finished</xs:documentation></xs:annotation><xs:complexType><xs:simpleContent><xs:extension base="xs:IDREF"><xs:attribute name="length" type="xs:nonNegativeInteger"><xs:annotation><xs:documentation>Length of the movie in ms</xs:documentation></xs:annotation></xs:attribute></xs:extension></xs:simpleContent></xs:complexType></xs:element>
<xs:element name="panel" type="xs:anyURI" minOccurs="0" maxOccurs="1"><xs:annotation><xs:documentation>The panel reinforcement movie to use</xs:documentation></xs:annotation></xs:element>
Name of the default font to be used for allelements of every screen. Possible names: any font found byQFontDialog
Diagram
Type
xs:string
Properties
content
simple
minOccurs
0
maxOccurs
1
Source
<xs:element name="defaultFont" type="xs:string" minOccurs="0" maxOccurs="1"><xs:annotation><xs:documentation>Name of the default font to be used for all elements of every screen. Possible names: any font found by QFontDialog</xs:documentation></xs:annotation></xs:element>
Size of the default font to be used for allelements of every screen. Unit: points as defined by thesystem
Diagram
Type
xs:positiveInteger
Properties
content
simple
minOccurs
0
maxOccurs
1
Source
<xs:element name="defaultFontsize" type="xs:positiveInteger" minOccurs="0" maxOccurs="1"><xs:annotation><xs:documentation>Size of the default font to be used for all elements of every screen. Unit: points as defined by the system</xs:documentation></xs:annotation></xs:element>
<xs:element name="screen" type="apex:screenType" minOccurs="0" maxOccurs="unbounded"><xs:annotation><xs:documentation>Every single screen defines a screen with a certain ID to be used elsewhere in the experiment file.</xs:documentation></xs:annotation><!-- As the following does not work, it it implemented per layout
--><!--xs:unique name="screenIDs">
<xs:selector xpath="./*[not(name()='buttongroup')]//*"></xs:selector>
<xs:field xpath="@id"></xs:field>
</xs:unique--></xs:element>
<xs:element name="hLayout" type="apex:hScreenLayoutType" minOccurs="0"><xs:annotation><xs:documentation>Horizontal layout: places elements next to each other</xs:documentation></xs:annotation><xs:unique name="screenId_hLayout"><xs:selector xpath="./*"/><xs:field xpath="@id"/></xs:unique></xs:element>
<xs:element name="font" type="xs:string" minOccurs="0"><xs:annotation><xs:documentation>TODO: how is the font specified?</xs:documentation></xs:annotation></xs:element>
Text font size, in points as defined by the system
Diagram
Type
xs:positiveInteger
Properties
content
simple
minOccurs
0
maxOccurs
1
Source
<xs:element name="fontsize" type="xs:positiveInteger" minOccurs="0" maxOccurs="1"><xs:annotation><xs:documentation>Text font size, in points as defined by the system</xs:documentation></xs:annotation></xs:element>
Put the element in it's own window instead of embedding it in the current layout
Diagram
Type
xs:boolean
Properties
content
simple
minOccurs
0
Source
<xs:element name="floating" type="xs:boolean" minOccurs="0"><xs:annotation><xs:documentation>Put the element in it's own window instead of embedding it in the current layout</xs:documentation></xs:annotation></xs:element>
If set to true, the element will always be disabled (can be used to "guide the eye")
Diagram
Type
xs:boolean
Properties
content
simple
minOccurs
0
Source
<xs:element name="disabled" type="xs:boolean" minOccurs="0"><xs:annotation><xs:documentation>If set to true, the element will always be disabled (can be used to "guide the eye")</xs:documentation></xs:annotation></xs:element>
<xs:element name="text" type="xs:string"><xs:annotation><xs:documentation>Text to be printed on the button</xs:documentation></xs:annotation></xs:element>
Input mask to restrict what can be typed in the textbox.Defined in the Qt documentation. If inputmask=="numbers", only numeric inputwill be allowed. If inputmask starts with a / (slash), the remainder will be used as a regular expression for QRegExpValidator.
Diagram
Type
xs:string
Properties
content
simple
minOccurs
0
maxOccurs
1
Source
<xs:element name="inputmask" type="xs:string" minOccurs="0" maxOccurs="1"><xs:annotation><xs:documentation>Input mask to restrict what can be typed in the textbox. Defined in the Qt documentation. If inputmask=="numbers", only numeric input will be allowed. If inputmask starts with a / (slash), the remainder will be used as a regular expression for QRegExpValidator.</xs:documentation></xs:annotation></xs:element>
Filename of the picture. The format can be any of: PNG, BMP,XBM, XPM, JPEG, MNG, GIF, PBM (P1 or P4), PGM (P2 or P5), and PPM (P3 orP6). If path is relative, it will be prefixed with the prefix givenabove.
<xs:element name="file"><xs:annotation><xs:documentation>Filename of the picture. The format can be any of: PNG, BMP, XBM, XPM, JPEG, MNG, GIF, PBM (P1 or P4), PGM (P2 or P5), and PPM (P3 or P6). If path is relative, it will be prefixed with the prefix given above.</xs:documentation></xs:annotation><xs:complexType><xs:simpleContent><xs:extension base="xs:string"><xs:attribute name="id" type="xs:ID"/></xs:extension></xs:simpleContent></xs:complexType></xs:element>
<xs:element name="feedback" type="apex:feedbackPathsType" minOccurs="0" maxOccurs="1"><xs:annotation><xs:documentation>If used, overrides the normal feedback (using coloured borders) by drawing a different picture on screen.</xs:documentation></xs:annotation></xs:element>
<xs:element name="file" type="xs:string"><xs:annotation><xs:documentation>Flash movie to be put on the screen.</xs:documentation></xs:annotation></xs:element>
<xs:element name="feedback" type="apex:feedbackPathsType" minOccurs="0" maxOccurs="1"><xs:annotation><xs:documentation>If used, overrides the normal feedback (using coloured borders) by putting a different movie on screen.</xs:documentation></xs:annotation></xs:element>
Filename of the picture. The format can be any of: PNG, BMP,XBM, XPM, JPEG, MNG, GIF, PBM (P1 or P4), PGM (P2 or P5), and PPM (P3 orP6). If path is relative, it will be prefixed with the prefix givenabove.
Diagram
Type
xs:anyURI
Properties
content
simple
Source
<xs:element name="file" type="xs:anyURI"><xs:annotation><xs:documentation>Filename of the picture. The format can be any of: PNG, BMP, XBM, XPM, JPEG, MNG, GIF, PBM (P1 or P4), PGM (P2 or P5), and PPM (P3 or P6). If path is relative, it will be prefixed with the prefix given above.</xs:documentation></xs:annotation></xs:element>
<xs:element name="disabledfile" type="xs:string" minOccurs="0"><xs:annotation><xs:documentation>Picture to be used if the element is disabled</xs:documentation></xs:annotation></xs:element>
Parameter to be set to the value of the spinbox. This parameter will be set the NEXT trial.
Diagram
Type
xs:IDREF
Properties
content
simple
minOccurs
0
Source
<xs:element name="parameter" type="xs:IDREF" minOccurs="0"><xs:annotation><xs:documentation>Parameter to be set to the value of the spinbox. This parameter will be set the NEXT trial.</xs:documentation></xs:annotation></xs:element>
<xs:element name="reset" type="xs:boolean" default="false" minOccurs="0"><xs:annotation><xs:documentation>Reset the value for every new trial</xs:documentation></xs:annotation></xs:element>
<xs:element name="text" type="xs:string"><xs:annotation><xs:documentation>Text to be printed right to the checkbox</xs:documentation></xs:annotation></xs:element>
<xs:element name="isChecked" type="xs:integer" minOccurs="0"><xs:annotation><xs:documentation>Determines whether checkbox is checked by default</xs:documentation></xs:annotation></xs:element>
<xs:element name="min" type="xs:integer" minOccurs="0"><xs:annotation><xs:documentation>Minimum value of slider</xs:documentation></xs:annotation></xs:element>
<xs:element name="max" type="xs:integer" minOccurs="0"><xs:annotation><xs:documentation>Maximum value of slider</xs:documentation></xs:annotation></xs:element>
<xs:element name="value" type="xs:integer" minOccurs="0"><xs:annotation><xs:documentation>Default value of slider</xs:documentation></xs:annotation></xs:element>
<xs:element name="stepsize" type="xs:integer" minOccurs="0"><xs:annotation><xs:documentation>Step size on single arrow key press</xs:documentation></xs:annotation></xs:element>
Automatically end the trial when all columns are completed
Diagram
Type
xs:boolean
Properties
content
simple
minOccurs
0
default
true
Source
<xs:element name="autocontinue" type="xs:boolean" default="true" minOccurs="0"><xs:annotation><xs:documentation>Automatically end the trial when all columns are completed</xs:documentation></xs:annotation></xs:element>
<xs:element name="element" minOccurs="1" maxOccurs="unbounded"><xs:complexType><xs:sequence><xs:element name="name" type="xs:string"><xs:annotation><xs:documentation>Name of the element. Will be reported in the results. Will also be used as text if no text is given.</xs:documentation></xs:annotation></xs:element><xs:element name="text" type="xs:string" minOccurs="0"><xs:annotation><xs:documentation>Text to be shown on the button</xs:documentation></xs:annotation></xs:element></xs:sequence><xs:attribute name="row" type="xs:positiveInteger" use="required"><xs:annotation><xs:documentation>Row in the matrix</xs:documentation></xs:annotation></xs:attribute><xs:attribute name="col" type="xs:positiveInteger" use="required"><xs:annotation><xs:documentation>Column in the matrix</xs:documentation></xs:annotation></xs:attribute></xs:complexType></xs:element>
Name of the element. Will be reported in the results. Will also be used as text if no text is given.
Diagram
Type
xs:string
Properties
content
simple
Source
<xs:element name="name" type="xs:string"><xs:annotation><xs:documentation>Name of the element. Will be reported in the results. Will also be used as text if no text is given.</xs:documentation></xs:annotation></xs:element>
<xs:element name="text" type="xs:string" minOccurs="0"><xs:annotation><xs:documentation>Text to be shown on the button</xs:documentation></xs:annotation></xs:element>
<xs:element name="page" type="xs:anyURI"><xs:annotation><xs:documentation>Filename of the HTML document.</xs:documentation></xs:annotation></xs:element>
Stretch factor for the columns: a list of integers separated by comma's. If specified, there should be as much integers as columns. The width of the columns will be proportional to the numbers. E.g. if width=2 and columnstretch="1,2", the second column will be twice as wide as the first. columnstretch="2,4" would have the same effect.
Stretch factor for the rows: a list of integers separated by comma's. If specified, there should be as much integers as rows. The width of the rows will be proportional to the numbers. E.g. if height=3 and rowstretch="1,2,1", the second row will be twice as wide as the first and thirs. rowstretch="2,4,2" would have the same effect.
Stretch factor for the columns: a list of integers separated by comma's. If specified, there should be as much integers as columns. The width of the columns will be proportional to the numbers. E.g. if width=2 and columnstretch="1,2", the second column will be twice as wide as the first. columnstretch="2,4" would have the same effect.
Stretch factor for the rows: a list of integers separated by comma's. If specified, there should be as much integers as rows. The width of the rows will be proportional to the numbers. E.g. if height=3 and rowstretch="1,2,1", the second row will be twice as wide as the first and thirs. rowstretch="2,4,2" would have the same effect.
<xs:element name="gridLayout" type="apex:gridScreenLayoutType" minOccurs="0"><xs:annotation><xs:documentation>Gridlayout: places elements in an (irregular) grid.</xs:documentation></xs:annotation><xs:unique name="screenId_gridLayout"><xs:selector xpath="./*"/><xs:field xpath="@id"/></xs:unique></xs:element>
<xs:element name="twoPartLayout" type="apex:twoPartLayoutType" minOccurs="0"><xs:annotation><xs:documentation>Layout with a small upper part and larger lower part</xs:documentation></xs:annotation><xs:unique name="screenId_twoPartLayout"><xs:selector xpath="./*"/><xs:field xpath="@id"/></xs:unique></xs:element>
<xs:element name="arcLayout" type="apex:arcScreenLayoutType" minOccurs="0"><xs:annotation><xs:documentation>Arc layout: places elements in a semi-circle. Useful for localization experiments.</xs:documentation></xs:annotation><xs:unique name="screenId_arcLayout"><xs:selector xpath="./*"/><xs:field xpath="@id"/></xs:unique></xs:element>
Default element for getting the user input to send to thecorrector.
Diagram
Type
xs:Name
Properties
content
simple
minOccurs
0
maxOccurs
1
Source
<xs:element name="default_answer_element" type="xs:Name" minOccurs="0" maxOccurs="1"><xs:annotation><xs:documentation>Default element for getting the user input to send to the corrector.</xs:documentation></xs:annotation></xs:element>
<xs:element name="script" minOccurs="0"><xs:complexType><xs:simpleContent><xs:extension base="xs:string"><xs:attribute name="source" use="required"><xs:simpleType><xs:annotation><xs:documentation>If inline, the ECMAScript function must be defined inside this element, if file, the filename must be given</xs:documentation></xs:annotation><xs:restriction base="xs:string"><xs:enumeration value="inline"/><xs:enumeration value="file"/></xs:restriction></xs:simpleType></xs:attribute></xs:extension></xs:simpleContent></xs:complexType></xs:element>
<xs:element name="datablocks" type="apex:datablockstype"><xs:annotation><xs:documentation>A datablock is the smallest unit of output data used in Apex. Every sound or other stimulus file to be used elsewhere, is to be defined in this section.</xs:documentation></xs:annotation><xs:key name="datablockKey"><xs:selector xpath="apex:datablock"></xs:selector><xs:field xpath="@apex:id"></xs:field></xs:key></xs:element>
<xs:element name="prefix" type="apex:prefixType" minOccurs="0"><xs:annotation><xs:documentation>The prefix for every filename used below. Only used if a filename is a relative path. This prefix is relative to the path of this experiment file.</xs:documentation></xs:annotation></xs:element>
The device used to play the datablock. Ifno device is specified, and there is only one device inthe experiment file, it will be used. Otherwise an errormessage will be shown.
Diagram
Type
extension of xs:IDREF
Properties
content
complex
minOccurs
0
Source
<xs:element name="device" minOccurs="0"><xs:annotation><xs:documentation>The device used to play the datablock. If no device is specified, and there is only one device in the experiment file, it will be used. Otherwise an error message will be shown.</xs:documentation></xs:annotation><xs:complexType><xs:simpleContent><xs:extension base="xs:IDREF"><!--xs:attribute name="channel1" type="xs:nonNegativeInteger" default="0" use="optional"/>
<xs:attribute name="channel2" type="xs:nonNegativeInteger" default="1" use="optional"/--></xs:extension></xs:simpleContent></xs:complexType></xs:element>
<xs:element name="description" type="xs:string" minOccurs="0"><xs:annotation><xs:documentation>Text description, for your own reference</xs:documentation></xs:annotation></xs:element>
Filename of the corresponding datafile. If it is a relative path, it will be prefixed with the prefix definedabove.
Diagram
Type
xs:string
Properties
content
simple
Source
<xs:element name="file" type="xs:string"><xs:annotation><xs:documentation>Filename of the corresponding datafile. If it is a relative path, it will be prefixed with the prefix defined above.</xs:documentation></xs:annotation></xs:element>
Direct data. If the data consists of XML code, it can be included directly inside this tag. Currently only works with L34 CIstimuli
Diagram
Properties
content
complex
mixed
true
Model
ANY element from ANY namespace
Source
<xs:element name="data"><xs:annotation><xs:documentation>Direct data. If the data consists of XML code, it can be included directly inside this tag. Currently only works with L34 CI stimuli</xs:documentation></xs:annotation><xs:complexType mixed="true"><xs:sequence minOccurs="0"><xs:any processContents="skip"/></xs:sequence></xs:complexType></xs:element>
Number of channels: defaults to the number of channels in a wav-file or to 1 in all othercases.
Diagram
Type
xs:positiveInteger
Properties
content
simple
minOccurs
0
Source
<xs:element name="channels" type="xs:positiveInteger" minOccurs="0"><xs:annotation><xs:documentation>Number of channels: defaults to the number of channels in a wav-file or to 1 in all other cases.</xs:documentation></xs:annotation></xs:element>
<xs:element name="loop" type="xs:positiveInteger" minOccurs="0" maxOccurs="1"><xs:annotation><xs:documentation>Number of times the datablock should be looped</xs:documentation></xs:annotation></xs:element>
All output devices to be used are enumerated in this section. Before the experiment can be started, Apex tries to open them. The experiment only starts if all devices can beopened.Devices are started in alphabetical order of their id, except if a master is specified. They are stopped in reverse alphabetical order. Thus if you want them to be started or stopped in a certain order, you can change their IDs.
<xs:element name="devices" type="apex:devicesType"><xs:annotation><xs:documentation>All output devices to be used are enumerated in this section. Before the experiment can be started, Apex tries to open them. The experiment only starts if all devices can be opened. Devices are started in alphabetical order of their id, except if a master is specified. They are stopped in reverse alphabetical order. Thus if you want them to be started or stopped in a certain order, you can change their IDs.</xs:documentation></xs:annotation><xs:key name="devicesKey"><xs:selector xpath="apex:device"></xs:selector><xs:field xpath="@apex:id"></xs:field></xs:key></xs:element>
The master device is that last one to bestarted after all stimuli are loaded for all devices. Thisfeature can be used when using triggers to synchronizedevices.
Diagram
Type
xs:IDREF
Properties
content
simple
minOccurs
0
maxOccurs
1
Source
<xs:element name="master" type="xs:IDREF" minOccurs="0" maxOccurs="1"><xs:annotation><xs:documentation>The master device is that last one to be started after all stimuli are loaded for all devices. This feature can be used when using triggers to synchronize devices.</xs:documentation></xs:annotation></xs:element>
<xs:element name="device" type="apex:deviceType" minOccurs="0" maxOccurs="unbounded"><xs:annotation><xs:documentation>All real devices derive from this base.</xs:documentation></xs:annotation></xs:element>
Filters can be placed anywhere in the output network. Theycan be real filters, ie blocks that process data, or generators, ieblocks that generate data without any input data.
<xs:element name="filters" type="apex:filtersType" minOccurs="0"><xs:annotation><xs:documentation>Filters can be placed anywhere in the output network. They can be real filters, ie blocks that process data, or generators, ie blocks that generate data without any input data.</xs:documentation></xs:annotation><xs:key name="filterKey"><xs:selector xpath="apex:filter"></xs:selector><xs:field xpath="@apex:id"></xs:field></xs:key></xs:element>
<xs:element name="filter" minOccurs="0" maxOccurs="unbounded" type="apex:filterType"><xs:annotation><xs:documentation>Every filter/generator derives from this base type. All filters to be used are defined here.</xs:documentation></xs:annotation></xs:element>
ID of the device to which this filter belongs. The mode of thefilter (online or offline) is determined by the device.
Diagram
Type
xs:IDREF
Properties
content
simple
Source
<xs:element name="device" type="xs:IDREF"><xs:annotation><xs:documentation>ID of the device to which this filter belongs. The mode of the filter (online or offline) is determined by the device.</xs:documentation></xs:annotation></xs:element>
<xs:element name="channels" type="xs:positiveInteger"><xs:annotation><xs:documentation>Number of channels</xs:documentation></xs:annotation></xs:element>
If continuous==true, the filter/generator keeps on runningbetween trials (ie while the user is entering input). Only makes sense forgenerators.
Diagram
Type
xs:boolean
Properties
content
simple
minOccurs
0
Source
<xs:element name="continuous" type="xs:boolean" minOccurs="0"><xs:annotation><xs:documentation>If continuous==true, the filter/generator keeps on running between trials (ie while the user is entering input). Only makes sense for generators.</xs:documentation><!-- FIXME: move to generator --></xs:annotation></xs:element>
A stimulus is the whole of datablocks (for any number ofdevices) and parameters (fixed and variable) that is presented to theuser at a certain instant of time.
<xs:element name="stimuli" type="apex:stimuliType"><xs:annotation><xs:documentation>A stimulus is the whole of datablocks (for any number of devices) and parameters (fixed and variable) that is presented to the user at a certain instant of time.</xs:documentation></xs:annotation><xs:key name="stimulusKey"><xs:selector xpath="apex:stimulus"></xs:selector><xs:field xpath="@apex:id"></xs:field></xs:key></xs:element>
Fixed parameters describe fixed properties ofevery stimulus. They can be used by procedures to select acertain stimulus, they can be presented on the screen or canbe used for the users own reference. They have no influencewhatever on the actual sound/stimulation that is sent to thedevice when a particular stimulus is to be output. Everyfixed stimulus that is used in any stimulus should bedefined here. All fixed parameters defined here, should bepresent in all stimuli.
<xs:element name="fixed_parameters" minOccurs="0"><xs:annotation><xs:documentation>Fixed parameters describe fixed properties of every stimulus. They can be used by procedures to select a certain stimulus, they can be presented on the screen or can be used for the users own reference. They have no influence whatever on the actual sound/stimulation that is sent to the device when a particular stimulus is to be output. Every fixed stimulus that is used in any stimulus should be defined here. All fixed parameters defined here, should be present in all stimuli.</xs:documentation></xs:annotation><xs:complexType><xs:sequence><xs:element name="parameter" minOccurs="0" maxOccurs="unbounded"><xs:complexType><xs:attribute name="id" type="xs:ID" use="required"/><xs:attribute name="useforresults" type="xs:boolean" use="optional" default="false"/></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element>
<xs:element name="description" type="xs:string" minOccurs="0"><xs:annotation><xs:documentation>Text description, for your own reference</xs:documentation></xs:annotation></xs:element>
<xs:element name="datablocks" type="apex:datablocksType"><xs:annotation><xs:documentation>Combination of datablocks to be output</xs:documentation></xs:annotation></xs:element>
Present all child datablocks or child combinations ofdatablocks sequentially. The result is guaranteed gap-less when using asingle device for all children.
<xs:element name="sequential" type="apex:datablocksSequentialType"><xs:annotation><xs:documentation>Present all child datablocks or child combinations of datablocks sequentially. The result is guaranteed gap-less when using a single device for all children.</xs:documentation></xs:annotation></xs:element>
Present all child datablocks or child combinations ofdatablocks simultaneously. The total length of this block is the length ofthe longest child block. Zero's or null stimulation will be added to shorterchildren if necessary (this is not guaranteed!).
<xs:element name="simultaneous" type="apex:datablocksSimultaneouslType"><xs:annotation><xs:documentation>Present all child datablocks or child combinations of datablocks simultaneously. The total length of this block is the length of the longest child block. Zero's or null stimulation will be added to shorter children if necessary (this is not guaranteed!).</xs:documentation></xs:annotation></xs:element>
<xs:element name="variableParameters" minOccurs="0"><xs:annotation><xs:documentation>These parameters will be set just before the stimulus is output</xs:documentation></xs:annotation><xs:complexType><xs:sequence><xs:element name="parameter" minOccurs="0" maxOccurs="unbounded"><xs:complexType><xs:simpleContent><xs:extension base="xs:string"><xs:attribute name="id" type="xs:IDREF" use="required"></xs:attribute></xs:extension></xs:simpleContent></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element>
<xs:element name="fixedParameters" minOccurs="0"><xs:annotation><xs:documentation>Fixed parameters are properties of a stimulus that can be displayed or used to select a stimulus from a list based on a certain criterion.</xs:documentation></xs:annotation><xs:complexType><xs:sequence><xs:element name="parameter" minOccurs="0" maxOccurs="unbounded"><xs:complexType mixed="true"><xs:choice maxOccurs="unbounded" minOccurs="0"><xs:element name="b" type="xs:string" minOccurs="0" maxOccurs="unbounded"/><xs:element name="i" type="xs:string" minOccurs="0" maxOccurs="unbounded"/><xs:element name="u" type="xs:string" minOccurs="0" maxOccurs="unbounded"/></xs:choice><xs:attribute name="id" type="xs:IDREF" use="required"/></xs:complexType><!--xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="id" type="xs:IDREF" use="required"/>
</xs:extension>
</xs:simpleContent--></xs:element></xs:sequence></xs:complexType></xs:element>
In this section, connections can be made betweendatablocks, filters and devices. "from" is only possible for datablocksand filters, "to" is only possible for filters that accept input (thusno generators) and devices. Connections can only be made betweenelements belonging to the same device. If no connections are specified,Apex tries to make a default network by connecting all channels from_ALL_ (== all datablocks) to all channels from the datablocks' device.Default connections are not made when filters are present.
<xs:element name="connections" minOccurs="0" type="apex:connectionsType"><xs:annotation><xs:documentation>In this section, connections can be made between datablocks, filters and devices. "from" is only possible for datablocks and filters, "to" is only possible for filters that accept input (thus no generators) and devices. Connections can only be made between elements belonging to the same device. If no connections are specified, Apex tries to make a default network by connecting all channels from _ALL_ (== all datablocks) to all channels from the datablocks' device. Default connections are not made when filters are present.</xs:documentation></xs:annotation></xs:element>
<xs:element name="connection" minOccurs="0" maxOccurs="unbounded"><xs:complexType><xs:sequence><xs:element name="from" type="apex:connectFromType"><xs:annotation><xs:documentation>The channel of the filter/datablock where the connection is started from.</xs:documentation></xs:annotation></xs:element><xs:element name="to" type="apex:connectToType"><xs:annotation><xs:documentation>The channel of the device/filter where the connection ends.</xs:documentation></xs:annotation></xs:element></xs:sequence></xs:complexType></xs:element>
<xs:element name="from" type="apex:connectFromType"><xs:annotation><xs:documentation>The channel of the filter/datablock where the connection is started from.</xs:documentation></xs:annotation></xs:element>
<xs:element name="id"><xs:complexType><xs:simpleContent><xs:extension base="apex:idOrAll"><xs:attribute name="mode" default="name"><xs:annotation><xs:documentation>Method of matching the given id.</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="name"><xs:annotation><xs:documentation>Exactly match the given ID</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="regexp"><xs:annotation><xs:documentation>Use regular expression to match an ID</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="wildcard"><xs:annotation><xs:documentation>Use wildcards (*,?,[]) to match an ID</xs:documentation></xs:annotation></xs:enumeration></xs:restriction></xs:simpleType></xs:attribute></xs:extension></xs:simpleContent></xs:complexType></xs:element>
<xs:element name="channel"><xs:annotation><xs:documentation>The channel to be used. Channels are zero based, ie the first channel is 0, the second 1, etc. This parameter can have an ID for later referral.</xs:documentation></xs:annotation><xs:complexType><xs:simpleContent><xs:extension base="xs:unsignedInt"><xs:attributeGroup ref="apex:filterParam"></xs:attributeGroup></xs:extension></xs:simpleContent></xs:complexType></xs:element>
<xs:element name="to" type="apex:connectToType"><xs:annotation><xs:documentation>The channel of the device/filter where the connection ends.</xs:documentation></xs:annotation></xs:element>
The channel to be used. Channels are zero based, ie the firstchannel is 0, the second 1, etc. This parameter can have an ID for laterreferral. Channel -1 means mute.
<xs:element name="channel"><xs:annotation><xs:documentation>The channel to be used. Channels are zero based, ie the first channel is 0, the second 1, etc. This parameter can have an ID for later referral. Channel -1 means mute.</xs:documentation></xs:annotation><xs:complexType><xs:simpleContent><xs:extension base="apex:unsignedPlus-1"><xs:attributeGroup ref="apex:filterParam"></xs:attributeGroup></xs:extension></xs:simpleContent></xs:complexType></xs:element>
Randomgenerators generate random numbers according to a certain specification and can set any parameter defined elsewhere before stimulus output. All randomgenerators are asked to set their corresponding parameters right before a stimulus isoutput.
<xs:element name="randomgenerators" minOccurs="0" type="apex:randomgeneratorsType"><xs:annotation><xs:documentation>Randomgenerators generate random numbers according to a certain specification and can set any parameter defined elsewhere before stimulus output. All randomgenerators are asked to set their corresponding parameters right before a stimulus is output.</xs:documentation></xs:annotation></xs:element>
<xs:element name="min" type="xs:double"><xs:annotation><xs:documentation>Minimum value of the random numbers (inclusive)</xs:documentation></xs:annotation></xs:element>
<xs:element name="max" type="xs:double"><xs:annotation><xs:documentation>Maximum value of the random numbers (exclusive)</xs:documentation></xs:annotation></xs:element>
<xs:element name="parameter" type="xs:IDREF"><xs:annotation><xs:documentation>Parameter to be set to the random value</xs:documentation></xs:annotation></xs:element>
In this optional section, parameters for the built in calibration mechanism are defined. Calibration is the process of ensuring a relation between a digital stimulus level (dB) and the actual audio output (dBSPL). Calibration parameters are stored in profiles that are persistent between sessions. Profiles are stored in the apex/config/calibration directory and can be edited by hand ifrequired.
<xs:element name="calibration" minOccurs="0" maxOccurs="1" type="apex:calibrationType"><xs:annotation><xs:documentation>In this optional section, parameters for the built in calibration mechanism are defined. Calibration is the process of ensuring a relation between a digital stimulus level (dB) and the actual audio output (dBSPL). Calibration parameters are stored in profiles that are persistent between sessions. Profiles are stored in the apex/config/calibration directory and can be edited by hand if required.</xs:documentation></xs:annotation></xs:element>
<xs:element name="soundlevelmeter" minOccurs="0"><xs:annotation><xs:documentation>Information necessary for automatic calibration using an interface to a sound level meter.</xs:documentation></xs:annotation><xs:complexType><xs:sequence><xs:element name="plugin" type="xs:anyURI"><xs:annotation><xs:documentation>Filename of the souind level meter plugin to be used</xs:documentation></xs:annotation></xs:element><xs:element name="transducer" type="xs:string" minOccurs="0"><xs:annotation><xs:documentation>Name of the transducer (microphone, ...) to be used by the SLM. Will only be set if your SLM supports it.</xs:documentation></xs:annotation></xs:element><xs:element name="frequency_weighting" default="Z"><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="Z"><xs:annotation><xs:documentation>No weighting: SPL</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="A"/><xs:enumeration value="C"/></xs:restriction></xs:simpleType></xs:element><xs:element name="time_weighting" default="S"><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="S"/><xs:enumeration value="F"/><xs:enumeration value="I"/></xs:restriction></xs:simpleType></xs:element><xs:element name="type" default="RMS"><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="RMS"/><xs:enumeration value="peak"/></xs:restriction></xs:simpleType></xs:element><xs:element name="percentile" type="xs:double" minOccurs="0" default="0"><xs:annotation><xs:documentation>Percentile of statistics on measurement. If 0 an instantaneous measurement will be made.</xs:documentation></xs:annotation></xs:element><xs:element name="time" type="xs:double" minOccurs="0"><xs:annotation><xs:documentation>Measurement time in seconds. If percentile is defined, time should be >0</xs:documentation></xs:annotation></xs:element><xs:element name="accuracy" type="xs:double" minOccurs="0" default="0.5"><xs:annotation><xs:documentation>Automatic calibration is repeated until the measured value is within the accuracy defined here of the target value</xs:documentation></xs:annotation></xs:element><xs:element name="maxiterations" type="xs:positiveInteger" default="3" minOccurs="0"><xs:annotation><xs:documentation>Maximal number of iterations that can be done to reach the requested accuracy. If the requested accuracy is not reached after this number of iterations, the calibration fails</xs:documentation></xs:annotation></xs:element></xs:sequence></xs:complexType></xs:element>
Filename of the souind level meter plugin to be used
Diagram
Type
xs:anyURI
Properties
content
simple
Source
<xs:element name="plugin" type="xs:anyURI"><xs:annotation><xs:documentation>Filename of the souind level meter plugin to be used</xs:documentation></xs:annotation></xs:element>
Name of the transducer (microphone, ...) to be used by the SLM. Will only be set if your SLM supports it.
Diagram
Type
xs:string
Properties
content
simple
minOccurs
0
Source
<xs:element name="transducer" type="xs:string" minOccurs="0"><xs:annotation><xs:documentation>Name of the transducer (microphone, ...) to be used by the SLM. Will only be set if your SLM supports it.</xs:documentation></xs:annotation></xs:element>
Percentile of statistics on measurement. If 0 an instantaneous measurement will be made.
Diagram
Type
xs:double
Properties
content
simple
minOccurs
0
default
0
Source
<xs:element name="percentile" type="xs:double" minOccurs="0" default="0"><xs:annotation><xs:documentation>Percentile of statistics on measurement. If 0 an instantaneous measurement will be made.</xs:documentation></xs:annotation></xs:element>
Measurement time in seconds. If percentile is defined, time should be >0
Diagram
Type
xs:double
Properties
content
simple
minOccurs
0
Source
<xs:element name="time" type="xs:double" minOccurs="0"><xs:annotation><xs:documentation>Measurement time in seconds. If percentile is defined, time should be >0</xs:documentation></xs:annotation></xs:element>
Automatic calibration is repeated until the measured value is within the accuracy defined here of the target value
Diagram
Type
xs:double
Properties
content
simple
minOccurs
0
default
0.5
Source
<xs:element name="accuracy" type="xs:double" minOccurs="0" default="0.5"><xs:annotation><xs:documentation>Automatic calibration is repeated until the measured value is within the accuracy defined here of the target value</xs:documentation></xs:annotation></xs:element>
Maximal number of iterations that can be done to reach the requested accuracy. If the requested accuracy is not reached after this number of iterations, the calibration fails
Diagram
Type
xs:positiveInteger
Properties
content
simple
minOccurs
0
default
3
Source
<xs:element name="maxiterations" type="xs:positiveInteger" default="3" minOccurs="0"><xs:annotation><xs:documentation>Maximal number of iterations that can be done to reach the requested accuracy. If the requested accuracy is not reached after this number of iterations, the calibration fails</xs:documentation></xs:annotation></xs:element>
<xs:element name="stimuli"><xs:annotation><xs:documentation>Stimuli that are used for calibration. These can be, and in some cases should be stimuli that are used in the actual experiment.</xs:documentation></xs:annotation><xs:complexType><xs:sequence><xs:element name="stimulus" minOccurs="1" maxOccurs="unbounded"><xs:complexType><xs:attribute name="id" type="xs:IDREF" use="required"/></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element>
<xs:element name="parameters"><xs:annotation><xs:documentation>Parameters that are used to calibrate the system. Generally some output gain parameters of the last stage (eg the wavdevice) are used.</xs:documentation></xs:annotation><xs:complexType><xs:sequence><xs:element name="parameter" minOccurs="1" maxOccurs="unbounded"><xs:complexType><xs:sequence><xs:element name="targetamplitude" type="xs:double"><xs:annotation><xs:documentation>Target acoustical measurement of the stimuli defined above during the experiment. Generally in dBSPL.</xs:documentation></xs:annotation></xs:element><xs:element name="calibrationamplitude" type="xs:double" minOccurs="0"><xs:annotation><xs:documentation>Value to calibrate at. Generally in dBSPL and higher than targetamplitude. Can be changed during calibration.</xs:documentation></xs:annotation></xs:element><xs:element name="mute" type="xs:double" default="-150"><xs:annotation><xs:documentation>Value to be used for the other parameters while calibrating this parameter. Has no effect on the actual calibration. Useful for eg muting the other channel of a headphone.</xs:documentation></xs:annotation></xs:element><xs:element name="min" type="xs:double" default="-50" minOccurs="0"><xs:annotation><xs:documentation>Minimum parameter value that can be set by the calibrator.</xs:documentation></xs:annotation></xs:element><xs:element name="max" type="xs:double" default="10" minOccurs="0"><xs:annotation><xs:documentation>Maximum parameter value that can be set by the calibrator.</xs:documentation></xs:annotation></xs:element></xs:sequence><xs:attribute name="id" type="xs:IDREF" use="required"/></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element>
<xs:element name="parameter" minOccurs="1" maxOccurs="unbounded"><xs:complexType><xs:sequence><xs:element name="targetamplitude" type="xs:double"><xs:annotation><xs:documentation>Target acoustical measurement of the stimuli defined above during the experiment. Generally in dBSPL.</xs:documentation></xs:annotation></xs:element><xs:element name="calibrationamplitude" type="xs:double" minOccurs="0"><xs:annotation><xs:documentation>Value to calibrate at. Generally in dBSPL and higher than targetamplitude. Can be changed during calibration.</xs:documentation></xs:annotation></xs:element><xs:element name="mute" type="xs:double" default="-150"><xs:annotation><xs:documentation>Value to be used for the other parameters while calibrating this parameter. Has no effect on the actual calibration. Useful for eg muting the other channel of a headphone.</xs:documentation></xs:annotation></xs:element><xs:element name="min" type="xs:double" default="-50" minOccurs="0"><xs:annotation><xs:documentation>Minimum parameter value that can be set by the calibrator.</xs:documentation></xs:annotation></xs:element><xs:element name="max" type="xs:double" default="10" minOccurs="0"><xs:annotation><xs:documentation>Maximum parameter value that can be set by the calibrator.</xs:documentation></xs:annotation></xs:element></xs:sequence><xs:attribute name="id" type="xs:IDREF" use="required"/></xs:complexType></xs:element>
Target acoustical measurement of the stimuli defined above during the experiment. Generally indBSPL.
Diagram
Type
xs:double
Properties
content
simple
Source
<xs:element name="targetamplitude" type="xs:double"><xs:annotation><xs:documentation>Target acoustical measurement of the stimuli defined above during the experiment. Generally in dBSPL.</xs:documentation></xs:annotation></xs:element>
Value to calibrate at. Generally indBSPL and higher than targetamplitude. Can be changed during calibration.
Diagram
Type
xs:double
Properties
content
simple
minOccurs
0
Source
<xs:element name="calibrationamplitude" type="xs:double" minOccurs="0"><xs:annotation><xs:documentation>Value to calibrate at. Generally in dBSPL and higher than targetamplitude. Can be changed during calibration.</xs:documentation></xs:annotation></xs:element>
Value to be used for the other parameters while calibrating this parameter. Has no effect on the actual calibration. Useful for eg muting the other channel of aheadphone.
Diagram
Type
xs:double
Properties
content
simple
default
-150
Source
<xs:element name="mute" type="xs:double" default="-150"><xs:annotation><xs:documentation>Value to be used for the other parameters while calibrating this parameter. Has no effect on the actual calibration. Useful for eg muting the other channel of a headphone.</xs:documentation></xs:annotation></xs:element>
Minimum parameter value that can be set by the calibrator.
Diagram
Type
xs:double
Properties
content
simple
minOccurs
0
default
-50
Source
<xs:element name="min" type="xs:double" default="-50" minOccurs="0"><xs:annotation><xs:documentation>Minimum parameter value that can be set by the calibrator.</xs:documentation></xs:annotation></xs:element>
Maximum parameter value that can be set by the calibrator.
Diagram
Type
xs:double
Properties
content
simple
minOccurs
0
default
10
Source
<xs:element name="max" type="xs:double" default="10" minOccurs="0"><xs:annotation><xs:documentation>Maximum parameter value that can be set by the calibrator.</xs:documentation></xs:annotation></xs:element>
<xs:element name="results" minOccurs="0" type="apex:resultsType"><xs:annotation><xs:documentation>Parameters related to the presentation/analysis of the result of this experiment are defined here.</xs:documentation></xs:annotation></xs:element>
URL of the HTML page to be shown in the results window. The page should have the appropriate javascript methods embedded.
Diagram
Type
xs:anyURI
Properties
content
simple
minOccurs
1
default
apexresults.html
Source
<xs:element name="page" type="xs:anyURI" minOccurs="1" default="apexresults.html"><xs:annotation><xs:documentation>URL of the HTML page to be shown in the results window. The page should have the appropriate javascript methods embedded.</xs:documentation></xs:annotation></xs:element>
<xs:element name="resultparameters" minOccurs="0"><xs:annotation><xs:documentation>Parameters to be passed to the results page. Each parameter will be set in hash params.</xs:documentation></xs:annotation><xs:complexType><xs:sequence><xs:element name="parameter" minOccurs="0" maxOccurs="unbounded"><xs:complexType><xs:simpleContent><xs:extension base="xs:string"><xs:attribute name="name" type="xs:string"/></xs:extension></xs:simpleContent></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element>
Javascript, which will be executed after loading the results page, in the context of the results page.
Diagram
Type
xs:string
Properties
content
simple
minOccurs
0
default
Source
<xs:element name="resultscript" type="xs:string" minOccurs="0" default=""><xs:annotation><xs:documentation>Javascript, which will be executed after loading the results page, in the context of the results page.</xs:documentation></xs:annotation></xs:element>
If true, an extra window will be created which will showthe results of the current experiment while the experiment is being executed.Javascript embedded in the page will be executed upon each new trial.
Diagram
Type
xs:boolean
Properties
content
simple
minOccurs
0
default
true
Source
<xs:element name="showduringexperiment" type="xs:boolean" minOccurs="0" default="true"><xs:annotation><xs:documentation>If true, an extra window will be created which will show the results of the current experiment while the experiment is being executed. Javascript embedded in the page will be executed upon each new trial.</xs:documentation></xs:annotation></xs:element>
If true a new window will be opened and the results will be shown when the experiment is finished.Confirmation might still be needed (see 'confirmshowresults').
Diagram
Type
xs:boolean
Properties
content
simple
minOccurs
0
default
false
Source
<xs:element name="showafterexperiment" type="xs:boolean" minOccurs="0" default="false"><xs:annotation><xs:documentation>If true a new window will be opened and the results will be shown when the experiment is finished. Confirmation might still be needed (see 'confirmshowresults').</xs:documentation></xs:annotation></xs:element>
If true a dialog will ask for confirmation whether results should be shown.
Diagram
Type
xs:boolean
Properties
content
simple
minOccurs
0
default
true
Source
<xs:element name="confirmshowresults" type="xs:boolean" minOccurs="0" default="true"><xs:annotation><xs:documentation>If true a dialog will ask for confirmation whether results should be shown.</xs:documentation></xs:annotation></xs:element>
Matlab script to be used for processing results. Will be added as an XML processing tag to the results file
Diagram
Type
xs:string
Properties
content
simple
minOccurs
0
Source
<xs:element name="matlabscript" type="xs:string" minOccurs="0"><xs:annotation><xs:documentation>Matlab script to be used for processing results. Will be added as an XML processing tag to the results file</xs:documentation></xs:annotation></xs:element>
Name of the test subject. Will be appended to the suggested results file name. Is typically modified atthe beginning of an experiment using an interactive entry.
Diagram
Type
xs:string
Properties
content
simple
minOccurs
0
Source
<xs:element name="subject" type="xs:string" minOccurs="0"><xs:annotation><xs:documentation>Name of the test subject. Will be appended to the suggested results file name. Is typically modified at the beginning of an experiment using an interactive entry.</xs:documentation></xs:annotation></xs:element>
<xs:element name="interactive" minOccurs="0" type="apex:interactiveType"><xs:annotation><xs:documentation>For every entry in this section, the value of a certain element in this experiment file will be changed to the value set by the user in a GUI window.</xs:documentation></xs:annotation></xs:element>
XPath expression defining the elementto be modified. The user will be alerted if theexpression yields no results. If the expressionyields more than one result, every element foundwill be modified. The modification takes placebefore validation, so the resulting document willnot be used unless valid. Modifications will bereported in the results file.If expression is not present, the user input will be saved to the results file, butnothing will be modified.
Data type of the element to bemodified. It impacts the dialog box presented to theuser and prevents input of data of the wrong datatype.
Source
<xs:element name="entry" maxOccurs="unbounded"><xs:complexType><xs:attribute name="expression" type="xs:string" use="optional"><xs:annotation><xs:documentation>XPath expression defining the element to be modified. The user will be alerted if the expression yields no results. If the expression yields more than one result, every element found will be modified. The modification takes place before validation, so the resulting document will not be used unless valid. Modifications will be reported in the results file. If expression is not present, the user input will be saved to the results file, but nothing will be modified.</xs:documentation></xs:annotation></xs:attribute><xs:attribute name="type" use="required"><xs:annotation><xs:documentation>Data type of the element to be modified. It impacts the dialog box presented to the user and prevents input of data of the wrong data type.</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="int"><xs:annotation><xs:documentation>An integer number</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="double"><xs:annotation><xs:documentation>A number</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="string"><xs:annotation><xs:documentation>Some text</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="bool"><xs:annotation><xs:documentation>Boolean value "true" or "false"</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="combo"><xs:annotation><xs:documentation>Value from list. The list of options should be specified in default, separated by |</xs:documentation></xs:annotation></xs:enumeration></xs:restriction></xs:simpleType></xs:attribute><xs:attribute name="description" type="xs:string" use="required"><xs:annotation><xs:documentation>Description of this entry, will be shown to the user.</xs:documentation></xs:annotation></xs:attribute><xs:attribute name="default" type="xs:string" use="required"><xs:annotation><xs:documentation>Default value for the replacement.</xs:documentation></xs:annotation></xs:attribute><xs:attribute name="constraint" type="xs:string"><xs:annotation><xs:documentation>Regex against which the value should match.</xs:documentation></xs:annotation></xs:attribute></xs:complexType></xs:element>
<xs:element name="general" minOccurs="0" type="apex:generalType"><xs:annotation><xs:documentation>Some general experiment parameters are defined here.</xs:documentation></xs:annotation></xs:element>
Exit immediately after the experiment wasfinished. The "save results" dialog box is alwaysshown.
Diagram
Type
xs:boolean
Properties
content
simple
minOccurs
0
Source
<xs:element name="exitafter" type="xs:boolean" minOccurs="0"><xs:annotation><xs:documentation>Exit immediately after the experiment was finished. The "save results" dialog box is always shown.</xs:documentation></xs:annotation></xs:element>
If defined, apex will automatically select a filename and only present the user with a messagebox asking wheter to save the results yes or no
Diagram
Type
xs:boolean
Properties
content
simple
minOccurs
0
default
false
Source
<xs:element name="autosave" type="xs:boolean" minOccurs="0" default="false"><xs:annotation><xs:documentation>If defined, apex will automatically select a filename and only present the user with a messagebox asking wheter to save the results yes or no</xs:documentation></xs:annotation></xs:element>
If true, the next trial is only presented after clicking the Start button,selecting Start from the Experiment menu or pressing F5.
Diagram
Type
xs:boolean
Properties
content
simple
minOccurs
0
Source
<xs:element name="waitforstart" type="xs:boolean" minOccurs="0"><xs:annotation><xs:documentation>If true, the next trial is only presented after clicking the Start button, selecting Start from the Experiment menu or pressing F5.</xs:documentation></xs:annotation></xs:element>
If true, the F7 key can be used to skip anything that takes a certainamount of time, eg intro/outro/iti
Diagram
Type
xs:boolean
Properties
content
simple
minOccurs
0
default
true
Source
<xs:element name="allowskip" type="xs:boolean" minOccurs="0" default="true"><xs:annotation><xs:documentation>If true, the F7 key can be used to skip anything that takes a certain amount of time, eg intro/outro/iti</xs:documentation></xs:annotation></xs:element>
Run test to compare output with input files. Only works for WavDevice, andthe apex executable must be compiled with WRITEWAVOUTPUT defined.If set, the data send to the soundcard is also written to a file, and afterwardscompared with the input. This allows to check if the entire processing/buffering works properly.If the input below is not specified, the test assumes all available datablocks were playedsequential. Filters and connections are not taken into account. (eg if two datablocks are defined,the test just checks if the output is identical to the two wavefiles played right after each other).To allow testing filter/loop/connections functionality, create a wavefile that mimics all the processing,and specify the path below, and the test will use it to compare against the output.See the example tests for more info.
Diagram
Type
xs:boolean
Properties
content
simple
minOccurs
0
maxOccurs
1
Source
<xs:element name="runoutputtest" type="xs:boolean" minOccurs="0" maxOccurs="1"><xs:annotation><xs:documentation>Run test to compare output with input files. Only works for WavDevice, and the apex executable must be compiled with WRITEWAVOUTPUT defined. If set, the data send to the soundcard is also written to a file, and afterwards compared with the input. This allows to check if the entire processing/buffering works properly. If the input below is not specified, the test assumes all available datablocks were played sequential. Filters and connections are not taken into account. (eg if two datablocks are defined, the test just checks if the output is identical to the two wavefiles played right after each other). To allow testing filter/loop/connections functionality, create a wavefile that mimics all the processing, and specify the path below, and the test will use it to compare against the output. See the example tests for more info.</xs:documentation></xs:annotation></xs:element>
Optional: path to a file to compare the output with.
Diagram
Type
xs:anyURI
Properties
content
simple
minOccurs
0
maxOccurs
1
Source
<xs:element name="outputtestinput" type="xs:anyURI" minOccurs="0" maxOccurs="1"><xs:annotation><xs:documentation>Optional: path to a file to compare the output with.</xs:documentation></xs:annotation></xs:element>
Library of ECMAScript functions. Functions defined in this library can be used from any other script for the experiment.
Diagram
Type
xs:anyURI
Properties
content
simple
minOccurs
0
Source
<xs:element name="scriptlibrary" type="xs:anyURI" minOccurs="0"><xs:annotation><xs:documentation>Library of ECMAScript functions. Functions defined in this library can be used from any other script for the experiment.</xs:documentation></xs:annotation></xs:element>
<xs:element name="scriptparameters" minOccurs="0"><xs:complexType><xs:annotation><xs:documentation>Scriptparameters will be made available to all modules that use ECMAScript, such as plugin datablocks, stimuli, trials and procedures.</xs:documentation></xs:annotation><xs:sequence><xs:element name="parameter" default="" minOccurs="1" maxOccurs="unbounded"><xs:complexType><xs:simpleContent><xs:extension base="xs:string"><xs:attribute name="name" type="xs:Name" use="required"/></xs:extension></xs:simpleContent></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element>
Target loudness value for calibration of thisparameter using this stimulus. Mostly in dBSPL. The aim ofthe calibration is that this stimulus is presented at thisloudness in dBSPL to the subject.
Source
<xs:element name="parameter" minOccurs="1" maxOccurs="unbounded"><xs:annotation><xs:documentation>Parameter to be calibrated using this stimulus.</xs:documentation></xs:annotation><xs:complexType><xs:simpleContent><xs:extension base="xs:IDREF"><xs:attribute name="targetloudness" type="xs:double" use="required"><xs:annotation><xs:documentation>Target loudness value for calibration of this parameter using this stimulus. Mostly in dBSPL. The aim of the calibration is that this stimulus is presented at this loudness in dBSPL to the subject.</xs:documentation></xs:annotation></xs:attribute></xs:extension></xs:simpleContent></xs:complexType></xs:element>
<xs:element name="presentations" type="xs:positiveInteger" default="1"><xs:annotation><xs:documentation>Number of times every trial will be presented.</xs:documentation></xs:annotation></xs:element>
Number of trials that will be presented before the actualpresentations start. Eg if skip=2 and presentations=3 then first 2 trialswill be presented and then 3*#trials. If the order is sequential, theskipped trials will be the first skip trials from the trial list, repeatedif necessary. If the order is random, the skipped trials will be picked fromthe trial list without replacement, repeating this procedure if necessary(if skip>nTrials). Trials that are to be skipped in the results analysis aremarked with the skip tag in the results file. Warning: this has not beenthorougly checked for other procedures than constant.
Diagram
Type
xs:integer
Properties
content
simple
minOccurs
0
default
0
Source
<xs:element name="skip" type="xs:integer" default="0" minOccurs="0"><xs:annotation><xs:documentation>Number of trials that will be presented before the actual presentations start. Eg if skip=2 and presentations=3 then first 2 trials will be presented and then 3*#trials. If the order is sequential, the skipped trials will be the first skip trials from the trial list, repeated if necessary. If the order is random, the skipped trials will be picked from the trial list without replacement, repeating this procedure if necessary (if skip>nTrials). Trials that are to be skipped in the results analysis are marked with the skip tag in the results file. Warning: this has not been thorougly checked for other procedures than constant.</xs:documentation></xs:annotation></xs:element>
Random is realized by creating a list of trials before the experiment starts and shuffling thislist
enumeration
sequential
Trials are presented in order of appearance in theexperiment file
Source
<xs:element name="order"><xs:annotation><xs:documentation>The order in which to present the trials.</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="random"><xs:annotation><xs:documentation>Random is realized by creating a list of trials before the experiment starts and shuffling this list</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="sequential"><xs:annotation><xs:documentation>Trials are presented in order of appearance in the experiment file</xs:documentation></xs:annotation></xs:enumeration></xs:restriction></xs:simpleType></xs:element>
The default standard: only relevant if choices>1 This standard will be used if no standard is defined in a certaintrial.
Diagram
Type
xs:Name
Properties
content
simple
minOccurs
0
maxOccurs
1
Source
<xs:element name="defaultstandard" minOccurs="0" maxOccurs="1" type="xs:Name"><xs:annotation><xs:documentation>The default standard: only relevant if choices>1 This standard will be used if no standard is defined in a certain trial.</xs:documentation></xs:annotation></xs:element>
If uniquestandard is true and multiple standards are definedper trial, Apex will try to present another standard in each interval of thetrial.
Diagram
Type
xs:boolean
Properties
content
simple
minOccurs
0
maxOccurs
1
default
false
Source
<xs:element name="uniquestandard" minOccurs="0" maxOccurs="1" default="false" type="xs:boolean"><xs:annotation><xs:documentation>If uniquestandard is true and multiple standards are defined per trial, Apex will try to present another standard in each interval of the trial.</xs:documentation></xs:annotation></xs:element>
If select is defined, the stimulus will onlybe presented in the intervals enumerated in the selectattribute. e.g.: if select="2,3", the stimulus will neveroccur in interval 1, but only in 2 and 3
Source
<xs:element name="intervals" minOccurs="0"><xs:annotation><xs:documentation>Associate intervals with screen elements. Only useful if count>1, otherwise you can use a corrector.</xs:documentation></xs:annotation><xs:complexType><xs:sequence><xs:element name="interval" maxOccurs="unbounded" minOccurs="2"><xs:complexType><xs:attribute name="number" type="xs:positiveInteger" use="required"><xs:annotation><xs:documentation>Time slot of the stimulus</xs:documentation></xs:annotation></xs:attribute><xs:attribute name="element" type="xs:string" use="required"><xs:annotation><xs:documentation>Name of the screen element corresponding to the time slot</xs:documentation></xs:annotation></xs:attribute></xs:complexType></xs:element></xs:sequence><xs:attribute name="count" type="apex:intervalsCountType" use="required"><xs:annotation><xs:documentation>Number of intervals</xs:documentation></xs:annotation></xs:attribute><xs:attribute name="select" type="apex:selectChoicesType"><xs:annotation><xs:documentation>If select is defined, the stimulus will only be presented in the intervals enumerated in the select attribute. e.g.: if select="2,3", the stimulus will never occur in interval 1, but only in 2 and 3</xs:documentation></xs:annotation></xs:attribute></xs:complexType></xs:element>
<xs:element name="interval" maxOccurs="unbounded" minOccurs="2"><xs:complexType><xs:attribute name="number" type="xs:positiveInteger" use="required"><xs:annotation><xs:documentation>Time slot of the stimulus</xs:documentation></xs:annotation></xs:attribute><xs:attribute name="element" type="xs:string" use="required"><xs:annotation><xs:documentation>Name of the screen element corresponding to the time slot</xs:documentation></xs:annotation></xs:attribute></xs:complexType></xs:element>
Describes the corrector to be used. The corrector comparesthe user input and the correct answer for a certain trail. Realcorrectors are derived from apex:correctorType
<xs:element name="corrector" type="apex:correctorType" minOccurs="0"><xs:annotation><xs:documentation>Describes the corrector to be used. The corrector compares the user input and the correct answer for a certain trail. Real correctors are derived from apex:correctorType</xs:documentation></xs:annotation></xs:element>
If specified, a pause of n milliseconds will be introducedbetween successive stimulus/standard presentations
Diagram
Type
xs:nonNegativeInteger
Properties
content
simple
minOccurs
0
default
0
Source
<xs:element name="pause_between_stimuli" minOccurs="0" type="xs:nonNegativeInteger" default="0"><xs:annotation><xs:documentation>If specified, a pause of n milliseconds will be introduced between successive stimulus/standard presentations</xs:documentation></xs:annotation></xs:element>
If specified, apex will wait for the given number of secondsbefore starting the first stimulus of the first trial when the procedure isstarted.
Diagram
Type
xs:double
Properties
content
simple
minOccurs
0
default
0
Source
<xs:element name="time_before_first_trial" minOccurs="0" type="xs:double" default="0"><xs:annotation><xs:documentation>If specified, apex will wait for the given number of seconds before starting the first stimulus of the first trial when the procedure is started.</xs:documentation></xs:annotation></xs:element>
Number of times the user has to give a wrong answer before the parameter is adapted
Diagram
Type
xs:positiveInteger
Properties
content
simple
Source
<xs:element name="nUp" type="xs:positiveInteger"><xs:annotation><xs:documentation>Number of times the user has to give a wrong answer before the parameter is adapted</xs:documentation></xs:annotation></xs:element>
Number of times the user has to give a correct answer before the parameter is adapted
Diagram
Type
xs:positiveInteger
Properties
content
simple
Source
<xs:element name="nDown" type="xs:positiveInteger"><xs:annotation><xs:documentation>Number of times the user has to give a correct answer before the parameter is adapted</xs:documentation></xs:annotation></xs:element>
Parameter to be adapted. Can be a fixed or variable parameter. If more than one parameter is specified, all parameters will be set to the same value. Only the first parameter given can be a fixed parameter.Fixed parameters are properties of stimuli, so when a fixed parameter is specified, the adaptive procedure will select the stimulus that has the most appropriate fixed parameter.
Diagram
Type
xs:IDREF
Properties
content
simple
minOccurs
1
maxOccurs
unbounded
Source
<xs:element name="adapt_parameter" type="xs:IDREF" minOccurs="1" maxOccurs="unbounded"><xs:annotation><xs:documentation>Parameter to be adapted. Can be a fixed or variable parameter. If more than one parameter is specified, all parameters will be set to the same value. Only the first parameter given can be a fixed parameter. Fixed parameters are properties of stimuli, so when a fixed parameter is specified, the adaptive procedure will select the stimulus that has the most appropriate fixed parameter.</xs:documentation></xs:annotation></xs:element>
<xs:element name="start_value" type="xs:string"><xs:annotation><xs:documentation>Start value of the parameter</xs:documentation></xs:annotation></xs:element>
Criterion to be used to stop the procedure. The procedure will be stopped after stop_after instances of thisevent.
Diagram
Type
restriction of xs:string
Properties
content
simple
Facets
enumeration
reversals
Total number of reversals in thestaircase
enumeration
trials
Total number of trials to bepresented
enumeration
presentations
Corresponding to the above presentationstag. Warning: the number of presentations as specifiedin the presentations element will be used! Everystimulus will be played the number of times specified inthe presentations element.
Source
<xs:element name="stop_after_type"><xs:annotation><xs:documentation>Criterion to be used to stop the procedure. The procedure will be stopped after stop_after instances of this event.</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="reversals"><xs:annotation><xs:documentation>Total number of reversals in the staircase</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="trials"><xs:annotation><xs:documentation>Total number of trials to be presented</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="presentations"><xs:annotation><xs:documentation>Corresponding to the above presentations tag. Warning: the number of presentations as specified in the presentations element will be used! Every stimulus will be played the number of times specified in the presentations element.</xs:documentation></xs:annotation></xs:enumeration><!-- stop after the parameters above are used --></xs:restriction></xs:simpleType></xs:element>
The procedure ends after stop_after events of typestop_after_type
Diagram
Type
xs:positiveInteger
Properties
content
simple
Source
<xs:element name="stop_after" type="xs:positiveInteger"><xs:annotation><xs:documentation>The procedure ends after stop_after events of type stop_after_type</xs:documentation></xs:annotation></xs:element>
Minimal value of the parameter. If the procedure triesto go below this value, the parameter is saturated and saturation isreported on screen and in the results file.
Diagram
Type
xs:double
Properties
content
simple
minOccurs
0
Source
<xs:element name="min_value" type="xs:double" minOccurs="0"><xs:annotation><xs:documentation>Minimal value of the parameter. If the procedure tries to go below this value, the parameter is saturated and saturation is reported on screen and in the results file.</xs:documentation></xs:annotation></xs:element>
Maximal value of the parameter. If the procedure triesto go above this value, the parameter is saturated and saturation isreported on screen and in the results file.
Diagram
Type
xs:double
Properties
content
simple
minOccurs
0
Source
<xs:element name="max_value" type="xs:double" minOccurs="0"><xs:annotation><xs:documentation>Maximal value of the parameter. If the procedure tries to go above this value, the parameter is saturated and saturation is reported on screen and in the results file.</xs:documentation></xs:annotation></xs:element>
Larger values of the parameter are easier than smallervalues
Diagram
Type
xs:boolean
Properties
content
simple
default
true
Source
<xs:element name="larger_is_easier" type="xs:boolean" default="true"><xs:annotation><xs:documentation>Larger values of the parameter are easier than smaller values</xs:documentation></xs:annotation></xs:element>
Repeat the first trial untill the answer iscorrect.
Diagram
Type
xs:boolean
Properties
content
simple
minOccurs
0
Source
<xs:element name="repeat_first_until_correct" type="xs:boolean" minOccurs="0"><xs:annotation><xs:documentation>Repeat the first trial untill the answer is correct.</xs:documentation></xs:annotation></xs:element>
<xs:element name="stepsizes"><xs:annotation><xs:documentation>Defines the stepsizes to be used to adapt the parameter</xs:documentation></xs:annotation><xs:complexType><xs:sequence><xs:element name="change_after" minOccurs="0"><xs:annotation><xs:documentation>Change the stepsize after a certain number of trials or a certain number of reversals</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="trials"/><xs:enumeration value="reversals"/></xs:restriction></xs:simpleType></xs:element><xs:element name="stepsize" maxOccurs="unbounded" minOccurs="1"><xs:annotation><xs:documentation>The procedure uses a step of size "size" after "begin" events of type "change_after" have occured</xs:documentation></xs:annotation><xs:complexType><xs:attribute name="begin" type="xs:nonNegativeInteger" use="required"/><xs:attribute name="size" type="xs:double" use="required"/><xs:attribute name="direction" type="apex:direction" use="optional"><xs:annotation><xs:documentation>If this attribute is specified, this stepsize will only be used then adapting in the up/down direction. When specifying direction for a certain begin value, it needs to be specified for both up and down.</xs:documentation></xs:annotation></xs:attribute></xs:complexType></xs:element></xs:sequence></xs:complexType><xs:unique name="uniqueBeginStepsize"><xs:selector xpath="stepsize"/><xs:field xpath="@begin"/><xs:field xpath="@direction"/></xs:unique></xs:element>
Change the stepsize after a certain number of trials or a certain number ofreversals
Diagram
Type
restriction of xs:string
Properties
content
simple
minOccurs
0
Facets
enumeration
trials
enumeration
reversals
Source
<xs:element name="change_after" minOccurs="0"><xs:annotation><xs:documentation>Change the stepsize after a certain number of trials or a certain number of reversals</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="trials"/><xs:enumeration value="reversals"/></xs:restriction></xs:simpleType></xs:element>
If this attribute is specified, this stepsize will only be used then adapting in the up/down direction.When specifying direction for a certain begin value, it needs to be specified for both up and down.
<xs:element name="stepsize" maxOccurs="unbounded" minOccurs="1"><xs:annotation><xs:documentation>The procedure uses a step of size "size" after "begin" events of type "change_after" have occured</xs:documentation></xs:annotation><xs:complexType><xs:attribute name="begin" type="xs:nonNegativeInteger" use="required"/><xs:attribute name="size" type="xs:double" use="required"/><xs:attribute name="direction" type="apex:direction" use="optional"><xs:annotation><xs:documentation>If this attribute is specified, this stepsize will only be used then adapting in the up/down direction. When specifying direction for a certain begin value, it needs to be specified for both up and down.</xs:documentation></xs:annotation></xs:attribute></xs:complexType></xs:element>
Trials are selected according to the sequenceparameter. A trial can contain multiple stimuli. If the parameter tobe adapted is fixed, a stimulus is selected from this list accordingto the target value of the parameter of the procedure. If more thanone stimulus has the same fixed parameter value, a random stimulusis selected out of this subset. If no exact match for the fixedparameter is found, the closest match is used. If the parameter tobe adapted is variable, the value of the parameter is set rightbefore stimulus output.
<xs:element name="trials" type="apex:trialsType"><xs:annotation><xs:documentation>Trials are selected according to the sequence parameter. A trial can contain multiple stimuli. If the parameter to be adapted is fixed, a stimulus is selected from this list according to the target value of the parameter of the procedure. If more than one stimulus has the same fixed parameter value, a random stimulus is selected out of this subset. If no exact match for the fixed parameter is found, the closest match is used. If the parameter to be adapted is variable, the value of the parameter is set right before stimulus output.</xs:documentation></xs:annotation></xs:element>
<xs:element name="answer" minOccurs="0"><xs:annotation><xs:documentation>The correct answer for this trial. Can be the name of a screen element, a string, a number or mixed xml data.</xs:documentation></xs:annotation><xs:complexType mixed="true"><xs:choice maxOccurs="unbounded" minOccurs="0"><xs:element name="key" type="xs:string" minOccurs="0" maxOccurs="unbounded"><xs:annotation><xs:documentation>Keyword, to be used by the corrector</xs:documentation></xs:annotation></xs:element><xs:element name="skey" type="xs:string" minOccurs="0" maxOccurs="unbounded"><xs:annotation><xs:documentation>Part of a split keyword, to be used by the corrector.</xs:documentation></xs:annotation></xs:element></xs:choice></xs:complexType></xs:element>
<xs:element name="key" type="xs:string" minOccurs="0" maxOccurs="unbounded"><xs:annotation><xs:documentation>Keyword, to be used by the corrector</xs:documentation></xs:annotation></xs:element>
Part of a split keyword, to be used by thecorrector.
Diagram
Type
xs:string
Properties
content
simple
minOccurs
0
maxOccurs
unbounded
Source
<xs:element name="skey" type="xs:string" minOccurs="0" maxOccurs="unbounded"><xs:annotation><xs:documentation>Part of a split keyword, to be used by the corrector.</xs:documentation></xs:annotation></xs:element>
Screen element that contains the user input to be used by thecorrector.
Diagram
Type
xs:IDREF
Properties
content
simple
minOccurs
0
Source
<xs:element name="answer_element" type="xs:IDREF" minOccurs="0"><xs:annotation><xs:documentation>Screen element that contains the user input to be used by the corrector.</xs:documentation></xs:annotation></xs:element>
<xs:element name="screen" type="apex:screenRefType"><xs:annotation><xs:documentation>Screen to be shown</xs:documentation></xs:annotation></xs:element>
One or more stimuli. An adaptive procedure using a fixedparameter will select one of these stimuli. Other procedures select a randomstimulus if more than one is present. Notice that it is not guaranteed thatall stimuli will be presented an equal number of times, in the case a randomstimulus is selected here.
<xs:element name="stimulus" type="apex:stimulusRefType" minOccurs="0" maxOccurs="unbounded"><xs:annotation><xs:documentation>One or more stimuli. An adaptive procedure using a fixed parameter will select one of these stimuli. Other procedures select a random stimulus if more than one is present. Notice that it is not guaranteed that all stimuli will be presented an equal number of times, in the case a random stimulus is selected here.</xs:documentation></xs:annotation></xs:element>
The standard to be used when procedure/choices>1. The standardwill be presented on every time-slot except for one when the stimulus ispresented. If more than one standard is defined, a random standard will beselected for each presentation. If e.g. 3 standards are defined andchoices=4, a possible sequence would be standard1 stimulus1 standard2standard1
<xs:element name="standard" type="apex:stimulusRefType" minOccurs="0" maxOccurs="unbounded"><xs:annotation><xs:documentation>The standard to be used when procedure/choices>1. The standard will be presented on every time-slot except for one when the stimulus is presented. If more than one standard is defined, a random standard will be selected for each presentation. If e.g. 3 standards are defined and choices=4, a possible sequence would be standard1 stimulus1 standard2 standard1</xs:documentation></xs:annotation></xs:element>
<xs:element name="trials" type="apex:trialsType"><xs:annotation><xs:documentation>If a trial contains more than one stimulus, a random one will be selected.</xs:documentation></xs:annotation></xs:element>
Present the procedures one by one: only start thenext procedure if the previous one is finished
Source
<xs:element name="order"><xs:annotation><xs:documentation>Order of interleaving the child procedures.</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="random"/><xs:enumeration value="sequential"/><xs:enumeration value="onebyone"><xs:annotation><xs:documentation>Present the procedures one by one: only start the next procedure if the previous one is finished</xs:documentation></xs:annotation></xs:enumeration></xs:restriction></xs:simpleType></xs:element>
The ID is optional, except for child procedures of amultiprocedure. IDs are reported in the results file.
Source
<xs:element name="procedure" type="apex:procedureType" minOccurs="1" maxOccurs="unbounded"><xs:annotation><xs:documentation>All child procedures MUST have an ID</xs:documentation></xs:annotation></xs:element>
Name of the script to be used as plugin procedureTODO
Diagram
Properties
minOccurs
1
Source
<xs:element name="script" minOccurs="1"><xs:annotation><xs:documentation>Name of the script to be used as plugin procedure TODO</xs:documentation></xs:annotation></xs:element>
If true, a JavaScript debugger will be shown upon errors, or when the "debugger" statement is encountered in the script
Diagram
Type
xs:boolean
Properties
content
simple
minOccurs
0
Source
<xs:element name="debugger" minOccurs="0" type="xs:boolean"><xs:annotation><xs:documentation>If true, a JavaScript debugger will be shown upon errors, or when the "debugger" statement is encountered in the script</xs:documentation></xs:annotation></xs:element>
<xs:element name="adjust_parameter" type="xs:IDREF" minOccurs="0"><xs:annotation><xs:documentation>Parameter to be modified by the procedure</xs:documentation></xs:annotation></xs:element>
ASIO is a proprietary windows/mac-only audioframework by Steinberg. Use it if low latency/more then2 channels is required.
enumeration
coreaudio
CoreAudio is MacOsX' audio framework.
enumeration
jack
Jack is a cross-platform audioframework. A jack connection will be made to the "drivername" specified in the main config file.
Source
<xs:element name="driver" minOccurs="0"><xs:annotation><xs:documentation>Driver architecture to be used for sound output</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="dummy"><xs:annotation><xs:documentation>Dummy soundcard</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="portaudio"><xs:annotation><xs:documentation>Portaudio is a cross-platform audio framework</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="qtaudio"><xs:annotation><xs:documentation>Qt Multimedia framework</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="asio"><xs:annotation><xs:documentation>ASIO is a proprietary windows/mac-only audio framework by Steinberg. Use it if low latency/more then 2 channels is required.</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="coreaudio"><xs:annotation><xs:documentation>CoreAudio is MacOsX' audio framework.</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="jack"><xs:annotation><xs:documentation>Jack is a cross-platform audio framework. A jack connection will be made to the "drivername" specified in the main config file.</xs:documentation></xs:annotation></xs:enumeration></xs:restriction></xs:simpleType></xs:element>
Name of the soundcard to be used. Cards are defined inthe main config file. Every soundcard in the system can beenumerated in the main configfile. Use the ID defined there.Otherwise the "default" card can be used.
Diagram
Type
xs:string
Properties
content
simple
minOccurs
0
Source
<xs:element name="card" type="xs:string" minOccurs="0"><xs:annotation><xs:documentation>Name of the soundcard to be used. Cards are defined in the main config file. Every soundcard in the system can be enumerated in the main configfile. Use the ID defined there. Otherwise the "default" card can be used.</xs:documentation></xs:annotation></xs:element>
Number of output channels to be used. This isrestricted by the selected driver, with a maximum of 2 forportaudio.
Diagram
Type
xs:positiveInteger
Properties
content
simple
Source
<xs:element name="channels" type="xs:positiveInteger"><xs:annotation><xs:documentation>Number of output channels to be used. This is restricted by the selected driver, with a maximum of 2 for portaudio.</xs:documentation></xs:annotation></xs:element>
Used to specify a single channel to apply gain to,instead of applying it to all channels at once.For example, for an amplifier having two channels, these are set independently by using <gain id="ch0" channel="0">-3.00</gain><gain id="ch1" channel="1">-6.00</gain> Channels are zero based, ie the first channel is 0, thesecond 1 and so on.
<xs:element name="gain" type="apex:channelGainType" minOccurs="0" maxOccurs="unbounded"><xs:annotation><xs:documentation>Final gain of the device, implemented with a software mixer.</xs:documentation></xs:annotation></xs:element>
Sample rate of the device. Warning: not all samplerates are supported by all devices and some drivers automaticallyconvert to other sample rates. Check your sound carddocumentation.
Diagram
Type
restriction of xs:string
Properties
content
simple
Facets
enumeration
16000
enumeration
44100
enumeration
96000
enumeration
32000
enumeration
48000
enumeration
8000
enumeration
22050
enumeration
72000
Source
<xs:element name="samplerate"><xs:annotation><xs:documentation>Sample rate of the device. Warning: not all sample rates are supported by all devices and some drivers automatically convert to other sample rates. Check your sound card documentation.</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="16000"/><xs:enumeration value="44100"/><xs:enumeration value="96000"/><xs:enumeration value="32000"/><xs:enumeration value="48000"/><xs:enumeration value="8000"/><xs:enumeration value="22050"/><xs:enumeration value="72000"/></xs:restriction></xs:simpleType></xs:element>
Applies to the soundcard buffer size, not the internal apex buffer size.Larger sizes aremore efficient, smaller sizes have smaller latencies.Some notes: for asio, latency is always ( 2 * buffersize + overhead ) / samplerate.The overhead is very small, eg 16 samples for an Rme Multiface.Portaudio however always uses a number of internal buffers, mostly 4. Hence, actual latencyis ( 2 * 4 * buffersize + overhead ) / samplerate.For asio/jack: must be set to the system buffer size.
Diagram
Type
xs:positiveInteger
Properties
content
simple
minOccurs
0
Source
<xs:element name="buffersize" minOccurs="0" type="xs:positiveInteger"><xs:annotation><xs:documentation>Applies to the soundcard buffer size, not the internal apex buffer size. Larger sizes are more efficient, smaller sizes have smaller latencies. Some notes: for asio, latency is always ( 2 * buffersize + overhead ) / samplerate. The overhead is very small, eg 16 samples for an Rme Multiface. Portaudio however always uses a number of internal buffers, mostly 4. Hence, actual latency is ( 2 * 4 * buffersize + overhead ) / samplerate. For asio/jack: must be set to the system buffer size.</xs:documentation></xs:annotation></xs:element>
Applies to the block size that is used in the internal apex audio streams (for filters etc.).Larger sizes are more efficient, smaller sizes have smaller latencies. If not defined, the soundcard buffersize will be used.
Diagram
Type
xs:positiveInteger
Properties
content
simple
minOccurs
0
Source
<xs:element name="blocksize" minOccurs="0" type="xs:positiveInteger"><xs:annotation><xs:documentation>Applies to the block size that is used in the internal apex audio streams (for filters etc.). Larger sizes are more efficient, smaller sizes have smaller latencies. If not defined, the soundcard buffersize will be used.</xs:documentation></xs:annotation></xs:element>
Size of internal apex sound buffer in seconds. This buffer ensures that no bufferunderruns occur. The default value is 1s. If continuous filters are used, the system will needthis amount of seconds before the next stimulus can be output.Note that the value in seconds is rounded down to the nearest multiple of 8192 samples(the buffersize used to fill the buffer):so using 1 second here, with a samplerate of 44100, the actual amount of time will be40960 samples / 44100 samples/sec = 0.9 seconds. If a buffersize smaller than 16384 samples is specified, a buffer of 16384 samples will be used.
Diagram
Type
restriction of xs:decimal
Properties
content
simple
minOccurs
0
Facets
maxInclusive
60
minExclusive
0
Source
<xs:element name="buffersize_apex" minOccurs="0"><xs:annotation><xs:documentation>Size of internal apex sound buffer in seconds. This buffer ensures that no buffer underruns occur. The default value is 1s. If continuous filters are used, the system will need this amount of seconds before the next stimulus can be output. Note that the value in seconds is rounded down to the nearest multiple of 8192 samples (the buffersize used to fill the buffer): so using 1 second here, with a samplerate of 44100, the actual amount of time will be 40960 samples / 44100 samples/sec = 0.9 seconds. If a buffersize smaller than 16384 samples is specified, a buffer of 16384 samples will be used.</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:decimal"><xs:minExclusive value="0"/><xs:maxInclusive value="60"/></xs:restriction></xs:simpleType><!--xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="0.5"/>
<xs:enumeration value="1"/>
<xs:enumeration value="1.5"/>
<xs:enumeration value="2"/>
<xs:enumeration value="3"/>
<xs:enumeration value="4"/>
<xs:enumeration value="5"/>
<xs:enumeration value="10"/>
</xs:restriction>
</xs:simpleType--></xs:element>
If smaller than 16: add padzero*8196 samples to the end of each stream. If larger than 16: add padzero samples to the end of each stream. This avoids dropping of the last N frames on some soundcards (notoriously LynxOne and FirefaceUC)
Diagram
Type
xs:nonNegativeInteger
Properties
content
simple
minOccurs
0
Source
<xs:element name="padzero" type="xs:nonNegativeInteger" minOccurs="0"><xs:annotation><xs:documentation>If smaller than 16: add padzero*8196 samples to the end of each stream. If larger than 16: add padzero samples to the end of each stream. This avoids dropping of the last N frames on some soundcards (notoriously LynxOne and FirefaceUC)</xs:documentation></xs:annotation></xs:element>
<xs:element name="cisim" type="apex:cisimType" minOccurs="0"><xs:annotation><xs:documentation>Parameters for automatic CI simulation</xs:documentation></xs:annotation></xs:element>
Device identifier. For NIC 2, this identifier consists of three parts: the device type (e.g. l34) , the implant type (e.g. cic3, cic4) and the device number (e.g. 1, ordered according to the assigned COM port, device 0 is a simulated device).
Diagram
Type
xs:string
Properties
content
simple
Source
<xs:element name="device" type="xs:string"><xs:annotation><xs:documentation>Device identifier. For NIC 2, this identifier consists of three parts: the device type (e.g. l34) , the implant type (e.g. cic3, cic4) and the device number (e.g. 1, ordered according to the assigned COM port, device 0 is a simulated device).</xs:documentation></xs:annotation></xs:element>
Generate or use a trigger from the audio port.Currently the trigger button status is not checked (nicv2 doesn'tallow this yet)
Diagram
Type
restriction of xs:string
Properties
content
simple
Facets
enumeration
in
enumeration
out
enumeration
none
Source
<xs:element name="trigger"><xs:annotation><xs:documentation>Generate or use a trigger from the audio port. Currently the trigger button status is not checked (nicv2 doesn't allow this yet)</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="in"/><xs:enumeration value="out"/><xs:enumeration value="none"/></xs:restriction></xs:simpleType></xs:element>
Number of powerup pulses to send.No powerup pulses will be sent if this is setto 0.
Diagram
Type
xs:nonNegativeInteger
Properties
content
simple
minOccurs
0
default
4000
Source
<xs:element name="powerup_count" minOccurs="0" default="4000" type="xs:nonNegativeInteger"><xs:annotation><xs:documentation>Number of powerup pulses to send. No powerup pulses will be sent if this is set to 0.</xs:documentation></xs:annotation></xs:element>
<xs:element name="volume" minOccurs="0"><xs:complexType><xs:annotation><xs:documentation>Volume parameter for Cochlear device. The current level (in clinical units) is calculated according the following formula: round(t + (c-t) * volume/100 * mag) Where: t=treshold level c=comfort level volume=current value of volume parameter mag=magnitude [0,1]</xs:documentation></xs:annotation><xs:simpleContent><xs:extension base="apex:volumeParam"><xs:attributeGroup ref="apex:filterParam"/></xs:extension></xs:simpleContent></xs:complexType></xs:element>
<xs:element name="defaultmap"><xs:annotation><xs:documentation>Defines the default subject map to be used</xs:documentation></xs:annotation><xs:complexType><xs:choice><xs:element name="inline" type="apex:CohMap"><xs:annotation><xs:documentation>The map is defined below</xs:documentation></xs:annotation></xs:element><xs:element name="from_r126"><xs:annotation><xs:documentation>The user can select the map from the R126 wizard. R126 is the clinical fitting software.</xs:documentation></xs:annotation></xs:element></xs:choice></xs:complexType></xs:element>
When using a Freedom processor, the maximum phasewidth is 429.8usWhen using an L34 processor, the maximum phasewidth is 434.4us
Diagram
Type
restriction of xs:double
Properties
content
simple
Facets
maxInclusive
434.4
minInclusive
25
Source
<xs:element name="pulsewidth"><xs:annotation><xs:documentation>When using a Freedom processor, the maximum phasewidth is 429.8us When using an L34 processor, the maximum phasewidth is 434.4us</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:double"><xs:minInclusive value="25"/><xs:maxInclusive value="434.4"/></xs:restriction></xs:simpleType></xs:element>
When using a Freedom processor, the maximum phase gap is 57usWhen using an L34 processor, the maximum phase gap is 58usWhen using a cic3 implant, the minimum phase gap is 8usWhen using a cic4 implant, the minimum phase gap is 7us
Diagram
Type
restriction of xs:double
Properties
content
simple
Facets
maxInclusive
58
minInclusive
7
Source
<xs:element name="pulsegap"><xs:annotation><xs:documentation>When using a Freedom processor, the maximum phase gap is 57us When using an L34 processor, the maximum phase gap is 58us When using a cic3 implant, the minimum phase gap is 8us When using a cic4 implant, the minimum phase gap is 7us</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:double"><xs:minInclusive value="7"/><xs:maxInclusive value="58"/></xs:restriction></xs:simpleType></xs:element>
When using a Freedom processor, the maximum period is 13078usWhen using an L34 processor, the maximum period is 13107usWhen using a cic3 implant, the minimum period is 70usWhen using a cic4 implant, the minimum period is 64.6us
Diagram
Type
restriction of xs:double
Properties
content
simple
Facets
maxInclusive
13107
minInclusive
64.6
Source
<xs:element name="period"><xs:annotation><xs:documentation>When using a Freedom processor, the maximum period is 13078us When using an L34 processor, the maximum period is 13107us When using a cic3 implant, the minimum period is 70us When using a cic4 implant, the minimum period is 64.6us</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:double"><xs:minInclusive value="64.6"/><xs:maxInclusive value="13107"/></xs:restriction></xs:simpleType></xs:element>
"all" will result in all pulses having triggers. "none" will result in no pulses having triggers."first" will result in the first pulses that needs mapping to have a trigger, the ones afterward will have no trigger.
Diagram
Type
restriction of xs:string
Properties
content
simple
minOccurs
0
default
none
Facets
enumeration
all
enumeration
none
enumeration
first
Source
<xs:element name="trigger" minOccurs="0" default="none"><xs:annotation><xs:documentation>"all" will result in all pulses having triggers. "none" will result in no pulses having triggers. "first" will result in the first pulses that needs mapping to have a trigger, the ones afterward will have no trigger.</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="all"/><xs:enumeration value="none"/><xs:enumeration value="first"/></xs:restriction></xs:simpleType></xs:element>
The user can select the map from the R126 wizard. R126 is the clinical fittingsoftware.
Diagram
Source
<xs:element name="from_r126"><xs:annotation><xs:documentation>The user can select the map from the R126 wizard. R126 is the clinical fitting software.</xs:documentation></xs:annotation></xs:element>
Single pulse with peak amplitude = totalgain. The polarity is set using the "polarity"parameter.
Source
<xs:element name="type"><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="noise"><xs:annotation><xs:documentation>White noise (this is NOT gaussian noise)</xs:documentation></xs:annotation></xs:enumeration><!--xs:enumeration value="square">
<xs:annotation>
<xs:documentation>Square wave with peak amplitude = total
gain</xs:documentation>
</xs:annotation>
</xs:enumeration--><xs:enumeration value="sinus"><xs:annotation><xs:documentation>Sinus with peak amplitude = total gain</xs:documentation></xs:annotation></xs:enumeration><!--xs:enumeration value="triangle">
<xs:annotation>
<xs:documentation>Triangle with peak amplitude = total
gain</xs:documentation>
</xs:annotation>
</xs:enumeration--><xs:enumeration value="singlepulse"><xs:annotation><xs:documentation>Single pulse with peak amplitude = total gain. The polarity is set using the "polarity" parameter.</xs:documentation></xs:annotation></xs:enumeration></xs:restriction></xs:simpleType></xs:element>
The total gain is basegain+gain. Basegain is usefulfor amplitude normalization between differentblocks
Diagram
Type
xs:double
Properties
content
simple
minOccurs
0
default
0
Source
<xs:element name="basegain" type="xs:double" default="0" minOccurs="0"><xs:annotation><xs:documentation>The total gain is basegain+gain. Basegain is useful for amplitude normalization between different blocks</xs:documentation></xs:annotation></xs:element>
Inverts the gain of the block (but not the basegain).Invertgain is useful for the attenuation of noise depending on an SNR
Diagram
Type
xs:boolean
Properties
content
simple
minOccurs
0
default
false
Source
<xs:element name="invertgain" type="xs:boolean" default="false" minOccurs="0"><xs:annotation><xs:documentation>Inverts the gain of the block (but not the basegain). Invertgain is useful for the attenuation of noise depending on an SNR</xs:documentation></xs:annotation></xs:element>
<xs:element name="gain" default="0" type="apex:gainparam"><xs:annotation><xs:documentation>The total gain is basegain+gain. Gain is a parameter that can be changed by other modules</xs:documentation></xs:annotation></xs:element>
<xs:element name="frequency" default="1000"><xs:annotation><xs:documentation>Frequency: only makes sense for sinus, square and triangle</xs:documentation></xs:annotation><xs:complexType><xs:simpleContent><xs:extension base="xs:nonNegativeInteger"><xs:attributeGroup ref="apex:filterParam"/></xs:extension></xs:simpleContent></xs:complexType></xs:element>
<xs:element name="phase" default="0"><xs:annotation><xs:documentation>Phase (rad): only makes sense for sinus, square and triangle</xs:documentation></xs:annotation><xs:complexType><xs:simpleContent><xs:extension base="xs:double"><xs:attributeGroup ref="apex:filterParam"/></xs:extension></xs:simpleContent></xs:complexType></xs:element>
Pulse width in samples. Currently only used for single pulse generator
Diagram
Type
xs:positiveInteger
Properties
content
simple
minOccurs
0
default
1
Source
<xs:element name="pulsewidth" default="1" type="xs:positiveInteger" minOccurs="0"><xs:annotation><xs:documentation>Pulse width in samples. Currently only used for single pulse generator</xs:documentation></xs:annotation></xs:element>
<xs:element name="basegain" type="apex:gainparam" default="0" minOccurs="0"><xs:annotation><xs:documentation>The total gain is basegain+gain. Basegain is useful for amplitude normalization between different blocks</xs:documentation></xs:annotation></xs:element>
Inverts the gain of the block (but not the basegain).Invertgain is useful for the attenuation of noise depending on an SNR
Diagram
Type
xs:boolean
Properties
content
simple
minOccurs
0
default
false
Source
<xs:element name="invertgain" type="xs:boolean" default="false" minOccurs="0"><xs:annotation><xs:documentation>Inverts the gain of the block (but not the basegain). Invertgain is useful for the attenuation of noise depending on an SNR</xs:documentation></xs:annotation></xs:element>
Used to specify a single channel to apply gain to,instead of applying it to all channels at once.For example, for an amplifier having two channels, these are set independently by using <gain id="ch0" channel="0">-3.00</gain><gain id="ch1" channel="1">-6.00</gain> Channels are zero based, ie the first channel is 0, thesecond 1 and so on.
Fader direction: fadein (beginning of stimulus) orfadeout(end of stimulus)
Diagram
Type
restriction of xs:string
Properties
content
simple
default
in
Facets
enumeration
in
enumeration
out
Source
<xs:element name="direction" default="in"><xs:annotation><xs:documentation>Fader direction: fadein (beginning of stimulus) or fadeout(end of stimulus)</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="in"/><xs:enumeration value="out"/></xs:restriction></xs:simpleType></xs:element>
The total gain is basegain+gain. Basegain is usefulfor amplitude normalization between differentblocks
Diagram
Type
xs:double
Properties
content
simple
minOccurs
0
default
0
Source
<xs:element name="basegain" type="xs:double" default="0" minOccurs="0"><xs:annotation><xs:documentation>The total gain is basegain+gain. Basegain is useful for amplitude normalization between different blocks</xs:documentation></xs:annotation></xs:element>
Inverts the gain of the block (but not the basegain).Invertgain is useful for the attenuation of noise depending on an SNR
Diagram
Type
xs:boolean
Properties
content
simple
minOccurs
0
default
false
Source
<xs:element name="invertgain" type="xs:boolean" default="false" minOccurs="0"><xs:annotation><xs:documentation>Inverts the gain of the block (but not the basegain). Invertgain is useful for the attenuation of noise depending on an SNR</xs:documentation></xs:annotation></xs:element>
Jump to a random place in the datablock uponstart. Only functional if randomjump=false
Diagram
Type
xs:boolean
Properties
content
simple
minOccurs
0
default
false
Source
<xs:element name="randomjump" type="xs:boolean" default="false" minOccurs="0"><xs:annotation><xs:documentation>Jump to a random place in the datablock upon start. Only functional if randomjump=false</xs:documentation></xs:annotation></xs:element>
Jump to a fixed place in the datablock when the generator is started. The place is specified in seconds. Take care that you do not jump further than the length of the wave file.
Diagram
Type
xs:double
Properties
content
simple
minOccurs
0
default
0
Source
<xs:element name="jump" type="xs:double" default="0" minOccurs="0"><xs:annotation><xs:documentation>Jump to a fixed place in the datablock when the generator is started. The place is specified in seconds. Take care that you do not jump further than the length of the wave file.</xs:documentation></xs:annotation></xs:element>
The ID is optional, except for child procedures of amultiprocedure. IDs are reported in the results file.
Source
<xs:complexType name="procedureType" abstract="true"><xs:sequence></xs:sequence><xs:attribute name="id" type="xs:ID" use="optional"><xs:annotation><xs:documentation>The ID is optional, except for child procedures of a multiprocedure. IDs are reported in the results file.</xs:documentation></xs:annotation></xs:attribute></xs:complexType>
<xs:complexType name="screensType"><xs:sequence><xs:element name="prefix" type="apex:prefixType" minOccurs="0" maxOccurs="1"><xs:annotation><xs:documentation>Defines a prefix for the filenames of media files used in the screens below. The prefix is concatenated in the front of the filenames given below before trying to open any file.</xs:documentation></xs:annotation></xs:element><xs:element name="general" type="apex:screenGeneralType" minOccurs="0"><xs:annotation><xs:documentation>Some general properties of the entire Apex window are set in this section. They are applied for each particular screen defined below.</xs:documentation></xs:annotation></xs:element><xs:element name="reinforcement" type="apex:reinforcementType" minOccurs="0"><xs:annotation><xs:documentation>Defines what kind of feedback about the procedure and correctness of answers is shown to the user. This is valid for the whole experiment.</xs:documentation></xs:annotation></xs:element><xs:element name="style_apex" type="apex:stylesheetType" minOccurs="0"><xs:annotation><xs:documentation>Style that is to be applied to the whole of apex</xs:documentation></xs:annotation></xs:element><xs:element name="style" type="apex:stylesheetType" minOccurs="0"><xs:annotation><xs:documentation>Style that is to be applied to all screens</xs:documentation></xs:annotation></xs:element><xs:element name="childmode" type="apex:childmodeType" minOccurs="0"><xs:annotation><xs:documentation>Defines the elements used in child mode.</xs:documentation></xs:annotation></xs:element><xs:element name="defaultFont" type="xs:string" minOccurs="0" maxOccurs="1"><xs:annotation><xs:documentation>Name of the default font to be used for all elements of every screen. Possible names: any font found by QFontDialog</xs:documentation></xs:annotation></xs:element><xs:element name="defaultFontsize" type="xs:positiveInteger" minOccurs="0" maxOccurs="1"><xs:annotation><xs:documentation>Size of the default font to be used for all elements of every screen. Unit: points as defined by the system</xs:documentation></xs:annotation></xs:element><xs:element name="screen" type="apex:screenType" minOccurs="0" maxOccurs="unbounded"><xs:annotation><xs:documentation>Every single screen defines a screen with a certain ID to be used elsewhere in the experiment file.</xs:documentation></xs:annotation><!-- As the following does not work, it it implemented per layout
--><!--xs:unique name="screenIDs">
<xs:selector xpath="./*[not(name()='buttongroup')]//*"></xs:selector>
<xs:field xpath="@id"></xs:field>
</xs:unique--></xs:element><xs:element name="pluginscreens" type="apex:pluginScreenType" minOccurs="0" maxOccurs="unbounded"/></xs:sequence></xs:complexType>
A prefix can be specified inline (ie: here) or by specifying the ID of a prefix in the main configfile. Example:Absolute: c:/program files/blaRelative: ../stimuli
<xs:complexType name="prefixType"><xs:annotation><xs:documentation>A prefix can be specified inline (ie: here) or by specifying the ID of a prefix in the main configfile. Example: Absolute: c:/program files/bla Relative: ../stimuli</xs:documentation></xs:annotation><xs:simpleContent><xs:extension base="xs:string"><xs:attribute name="source" default="inline"><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="inline"><xs:annotation><xs:documentation>The prefix will be specified in this element</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="apexconfig"><xs:annotation><xs:documentation>The prefix will be loaded from the apexconfig.xml file</xs:documentation></xs:annotation></xs:enumeration></xs:restriction></xs:simpleType></xs:attribute></xs:extension></xs:simpleContent></xs:complexType>
<xs:complexType name="screenGeneralType"><xs:sequence><xs:element name="stopbutton" type="xs:boolean" minOccurs="0"><xs:annotation><xs:documentation>Show a red panic button that immediately stops all output when clicked.</xs:documentation></xs:annotation></xs:element><xs:element name="repeatbutton" type="xs:boolean" minOccurs="0"><xs:annotation><xs:documentation>Show a repeat button that will repeat the last stimulus.</xs:documentation></xs:annotation></xs:element><xs:element name="statuspicture" type="xs:boolean" minOccurs="0"><xs:annotation><xs:documentation>Show a status picture that indicates whether the user should be listening or giving an answer</xs:documentation></xs:annotation></xs:element><xs:element name="showpanel" type="xs:boolean" minOccurs="0"><xs:annotation><xs:documentation>Show the panel; in case of childmode: a movie if defined</xs:documentation></xs:annotation></xs:element><xs:element name="showmenu" type="xs:boolean" minOccurs="0" default="true"><xs:annotation><xs:documentation>Determined whether the apex main menu (containing File, Calibration, etc.) is shown</xs:documentation></xs:annotation></xs:element><xs:element name="fullscreen" type="xs:boolean" minOccurs="0" default="false"><xs:annotation><xs:documentation>If true, the main apex window will be shown full-screen, without window title or taskbar or whatever</xs:documentation></xs:annotation></xs:element><xs:element name="intertrialscreen" minOccurs="0" maxOccurs="1"><xs:annotation><xs:documentation>A screen to show in between trials (after feedback that is)</xs:documentation></xs:annotation><xs:complexType><xs:simpleContent><xs:extension base="xs:IDREF"><xs:attribute name="length" type="xs:positiveInteger"><xs:annotation><xs:documentation>The period to show the screen</xs:documentation></xs:annotation></xs:attribute></xs:extension></xs:simpleContent></xs:complexType></xs:element></xs:sequence></xs:complexType>
<xs:complexType name="reinforcementType"><xs:sequence><xs:element name="progressbar" type="xs:boolean"><xs:annotation><xs:documentation>Show a progress bar in the right hand panel, indicating the experiment progress. Not functional for multiprocedure or trainingprocedure.</xs:documentation></xs:annotation></xs:element><xs:element name="feedback"><xs:annotation><xs:documentation>Show visual feedback according to the correctness of the last answer. Feedback is shown using an upward or downward pointing thumb in the right hand panel.</xs:documentation></xs:annotation><xs:complexType><xs:simpleContent><xs:extension base="xs:boolean"><xs:attribute name="length" type="xs:nonNegativeInteger" default="1000"><xs:annotation><xs:documentation>Length of the feedback in ms. If feedback is false but a length is present, the specified time will be the time between two trials.</xs:documentation></xs:annotation></xs:attribute></xs:extension></xs:simpleContent></xs:complexType></xs:element><xs:element name="feedback_on" minOccurs="0" default="correct"><xs:annotation><xs:documentation>If feedback is shown, it is shown as a picture in the panel, but a screen element can also be highlighted.</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="none"><xs:annotation><xs:documentation>Do not highlight any screenelement</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="correct"><xs:annotation><xs:documentation>Highlight the correct screenelement</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="clicked"><xs:annotation><xs:documentation>Highlight the clicked screenelement (the subject answer)</xs:documentation></xs:annotation></xs:enumeration></xs:restriction></xs:simpleType></xs:element><xs:element name="feedback_picture_positive" type="xs:string" minOccurs="0"><xs:annotation><xs:documentation>Picture to be shown in the panel on positive feedback.</xs:documentation></xs:annotation></xs:element><xs:element name="feedback_picture_negative" type="xs:string" minOccurs="0"><xs:annotation><xs:documentation>Picture to be shown in the panel on negateive feedback.</xs:documentation></xs:annotation></xs:element><xs:element name="showcurrent" type="xs:boolean" minOccurs="0"><xs:annotation><xs:documentation>Show a border around the screen element corresponding to the currently playing stimulus.</xs:documentation></xs:annotation></xs:element><xs:element name="feedbackplugin" minOccurs="0" maxOccurs="unbounded"><xs:annotation><xs:documentation></xs:documentation></xs:annotation><xs:complexType><xs:sequence><xs:element name="parameter" default="" minOccurs="0" maxOccurs="unbounded"><xs:annotation><xs:documentation>Parameter to be passed to the plugin</xs:documentation></xs:annotation><xs:complexType><xs:simpleContent><xs:extension base="xs:string"><xs:attribute name="name" type="xs:Name" use="required"/></xs:extension></xs:simpleContent></xs:complexType></xs:element></xs:sequence><xs:attribute name="name" type="xs:string" use="required"><xs:annotation><xs:documentation>Name of the plugin to be loaded</xs:documentation></xs:annotation></xs:attribute></xs:complexType></xs:element></xs:sequence></xs:complexType>
Any stylesheet supoprted by Qt (google for "qt style sheet")Warning: if you request changed not supported by the native style engine, we switch to the Qt style engine, possibly resulting in other changes in layout.
<xs:simpleType name="stylesheetType"><xs:annotation><xs:documentation>Any stylesheet supoprted by Qt (google for "qt style sheet") Warning: if you request changed not supported by the native style engine, we switch to the Qt style engine, possibly resulting in other changes in layout.</xs:documentation></xs:annotation><xs:restriction base="xs:string"/></xs:simpleType>
<xs:complexType name="childmodeType"><xs:sequence><xs:element name="intro" minOccurs="0" maxOccurs="1"><xs:annotation><xs:documentation>The screen to show as intro before the experiment starts</xs:documentation></xs:annotation><xs:complexType><xs:simpleContent><xs:extension base="xs:IDREF"><xs:attribute name="length" type="xs:nonNegativeInteger"><xs:annotation><xs:documentation>Length of the movie in ms, if not specified, the system will wait for the movie to end and then continue.</xs:documentation></xs:annotation></xs:attribute></xs:extension></xs:simpleContent></xs:complexType></xs:element><xs:element name="outro" minOccurs="0" maxOccurs="1"><xs:annotation><xs:documentation>The screen to show as outro after the experiment has finished</xs:documentation></xs:annotation><xs:complexType><xs:simpleContent><xs:extension base="xs:IDREF"><xs:attribute name="length" type="xs:nonNegativeInteger"><xs:annotation><xs:documentation>Length of the movie in ms</xs:documentation></xs:annotation></xs:attribute></xs:extension></xs:simpleContent></xs:complexType></xs:element><xs:element name="panel" type="xs:anyURI" minOccurs="0" maxOccurs="1"><xs:annotation><xs:documentation>The panel reinforcement movie to use</xs:documentation></xs:annotation></xs:element></xs:sequence></xs:complexType>
<xs:complexType name="screenType"><xs:sequence><xs:choice maxOccurs="1"><xs:element name="hLayout" type="apex:hScreenLayoutType" minOccurs="0"><xs:annotation><xs:documentation>Horizontal layout: places elements next to each other</xs:documentation></xs:annotation><xs:unique name="screenId_hLayout"><xs:selector xpath="./*"/><xs:field xpath="@id"/></xs:unique></xs:element><xs:element name="vLayout" type="apex:vScreenLayoutType" minOccurs="0"><xs:annotation><xs:documentation>Vertical layout: places elements above each other</xs:documentation></xs:annotation><xs:unique name="screenId_vLayout"><xs:selector xpath="./*"/><xs:field xpath="@id"/></xs:unique></xs:element><xs:element name="gridLayout" type="apex:gridScreenLayoutType" minOccurs="0"><xs:annotation><xs:documentation>Gridlayout: places elements in an (irregular) grid.</xs:documentation></xs:annotation><xs:unique name="screenId_gridLayout"><xs:selector xpath="./*"/><xs:field xpath="@id"/></xs:unique></xs:element><xs:element name="twoPartLayout" type="apex:twoPartLayoutType" minOccurs="0"><xs:annotation><xs:documentation>Layout with a small upper part and larger lower part</xs:documentation></xs:annotation><xs:unique name="screenId_twoPartLayout"><xs:selector xpath="./*"/><xs:field xpath="@id"/></xs:unique></xs:element><xs:element name="arcLayout" type="apex:arcScreenLayoutType" minOccurs="0"><xs:annotation><xs:documentation>Arc layout: places elements in a semi-circle. Useful for localization experiments.</xs:documentation></xs:annotation><xs:unique name="screenId_arcLayout"><xs:selector xpath="./*"/><xs:field xpath="@id"/></xs:unique></xs:element></xs:choice><xs:element name="buttongroup" type="apex:buttonGroupType" minOccurs="0" maxOccurs="1"/><xs:element name="default_answer_element" type="xs:Name" minOccurs="0" maxOccurs="1"><xs:annotation><xs:documentation>Default element for getting the user input to send to the corrector.</xs:documentation></xs:annotation></xs:element></xs:sequence><xs:attribute name="id" type="xs:ID" use="required"/><xs:attribute name="description" type="xs:string" use="optional"><xs:annotation><xs:documentation>Description of the screen - for your own reference</xs:documentation></xs:annotation></xs:attribute></xs:complexType>
<xs:complexType name="hScreenLayoutType"><xs:annotation><xs:documentation>Horizontal layout: places elements next to each other</xs:documentation></xs:annotation><xs:complexContent><xs:extension base="apex:screenLayoutType"><xs:attribute name="width" type="xs:int" use="required"></xs:attribute><!--xs:attribute name="id" type="xs:Name" use="optional"></xs:attribute--><xs:attributeGroup ref="apex:gridElementAttributes"/></xs:extension></xs:complexContent></xs:complexType>
<xs:complexType name="screenLayoutType" abstract="true"><xs:annotation><xs:documentation>Base type for all layout types</xs:documentation></xs:annotation><xs:choice maxOccurs="unbounded"><xs:group ref="apex:layoutElementGroup"></xs:group><xs:group ref="apex:screenElementGroup"></xs:group></xs:choice><xs:attribute name="id" type="xs:Name" use="optional"/></xs:complexType>
<xs:complexType name="screenButtonType"><xs:annotation><xs:documentation>Button element. Can be clicked. If button is clicked, the subject is assumed to have responded to the trial.</xs:documentation></xs:annotation><xs:complexContent><xs:extension base="apex:screenElementType"><xs:sequence><xs:element name="text" type="xs:string"><xs:annotation><xs:documentation>Text to be printed on the button</xs:documentation></xs:annotation></xs:element></xs:sequence></xs:extension></xs:complexContent></xs:complexType>
<xs:complexType name="screenElementType" abstract="true"><xs:annotation><xs:documentation>Base element for all screen elements</xs:documentation></xs:annotation><xs:sequence><xs:element name="style" type="apex:stylesheetType" minOccurs="0"/><xs:element name="width" type="xs:nonNegativeInteger" minOccurs="0"><xs:annotation><xs:documentation>TODO: units?</xs:documentation></xs:annotation></xs:element><xs:element name="height" type="xs:nonNegativeInteger" minOccurs="0"/><xs:element name="shortcut" type="apex:shortcutType" minOccurs="0" maxOccurs="unbounded"/><xs:element name="font" type="xs:string" minOccurs="0"><xs:annotation><xs:documentation>TODO: how is the font specified?</xs:documentation></xs:annotation></xs:element><xs:element name="fontsize" type="xs:positiveInteger" minOccurs="0" maxOccurs="1"><xs:annotation><xs:documentation>Text font size, in points as defined by the system</xs:documentation></xs:annotation></xs:element><xs:element name="bgcolor" type="apex:colorType" minOccurs="0"/><xs:element name="fgcolor" type="apex:colorType" minOccurs="0"/><xs:element name="floating" type="xs:boolean" minOccurs="0"><xs:annotation><xs:documentation>Put the element in it's own window instead of embedding it in the current layout</xs:documentation></xs:annotation></xs:element><xs:element name="disabled" type="xs:boolean" minOccurs="0"><xs:annotation><xs:documentation>If set to true, the element will always be disabled (can be used to "guide the eye")</xs:documentation></xs:annotation></xs:element></xs:sequence><xs:attributeGroup ref="apex:gridElementAttributes"/><xs:attributeGroup ref="apex:screenIdAttribute"/></xs:complexType>
<xs:complexType name="shortcutType"><xs:annotation><xs:documentation>Defines a keyboard key combination to be used as a shortcut</xs:documentation></xs:annotation><xs:simpleContent><xs:extension base="apex:shortcutBaseType"><xs:attribute name="action" use="optional" default="click"><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="click"><xs:annotation><xs:documentation>Has the same effect as clicking the widget</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="up"><xs:annotation><xs:documentation>Has the same effect as clicking the up-button</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="down"><xs:annotation><xs:documentation>Has the same effect as clicking the up-button</xs:documentation></xs:annotation></xs:enumeration></xs:restriction></xs:simpleType></xs:attribute><xs:attribute name="modifier"><xs:annotation><xs:documentation>Dead key to be used together with the shortcut</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="Ctrl"/><xs:enumeration value="Alt"/><xs:enumeration value="Shift"/></xs:restriction></xs:simpleType></xs:attribute><xs:attribute name="hex" type="xs:boolean"><xs:annotation><xs:documentation>If true, parses the shortcut as a hexadecimal number. See the Key enum in qtnamespace.h for known values</xs:documentation></xs:annotation></xs:attribute></xs:extension></xs:simpleContent></xs:complexType>
Define a color as accepted by Qt colorstring, can be:* #RGB (each of R, G, and B is a single hex digit)* #RRGGBB* #RRRGGGBBB* #RRRRGGGGBBBB* a color name http://www.w3.org/TR/SVG/types.html#ColorKeywords* transparent
<xs:simpleType name="colorType"><xs:annotation><xs:documentation>Define a color as accepted by Qt colorstring, can be: * #RGB (each of R, G, and B is a single hex digit) * #RRGGBB * #RRRGGGBBB * #RRRRGGGGBBBB * a color name http://www.w3.org/TR/SVG/types.html#ColorKeywords * transparent</xs:documentation></xs:annotation><xs:restriction base="xs:string"/></xs:simpleType>
<xs:complexType name="screenLabelType"><xs:annotation><xs:documentation>Label element: simple text on the screen. Cannot be used for user input.</xs:documentation></xs:annotation><xs:complexContent><xs:extension base="apex:screenElementType"><xs:sequence><xs:element name="text" type="xs:string"/></xs:sequence></xs:extension></xs:complexContent></xs:complexType>
<xs:complexType name="screenAnswerLabelType"><xs:annotation><xs:documentation>Label containing the correct answer for the current trial.</xs:documentation></xs:annotation><xs:complexContent><xs:extension base="apex:screenElementType"><xs:sequence><!--xs:element name="fontsize" type="xs:positiveInteger" minOccurs="0" maxOccurs="1"/--></xs:sequence></xs:extension></xs:complexContent><!--xs:attributeGroup ref="apex:gridElementAttributes"/>
<xs:attributeGroup ref="apex:idAttribute"/--></xs:complexType>
<xs:complexType name="screenParameterLabelType"><xs:annotation><xs:documentation>Label containing the value of a parameter.</xs:documentation></xs:annotation><xs:complexContent><xs:extension base="apex:screenElementType"><xs:sequence><!--xs:element name="fontsize" type="xs:positiveInteger" minOccurs="0" maxOccurs="1"/--><xs:element name="parameter" type="apex:showparameterType" minOccurs="1" maxOccurs="1"/></xs:sequence></xs:extension></xs:complexContent><!--xs:attributeGroup ref="apex:gridElementAttributes"/>
<xs:attributeGroup ref="apex:idAttribute"/--></xs:complexType>
<xs:complexType name="showparameterType"><xs:simpleContent><xs:extension base="xs:Name"><xs:attribute name="name"><xs:annotation><xs:documentation>Parameter name to show in the list</xs:documentation></xs:annotation></xs:attribute><xs:attribute name="expression" type="apex:mathexpression"><xs:annotation><xs:documentation>Expression to be evaluated. Expressions must be in the format a*x+b, where x is the parameter value and a and b are floats</xs:documentation></xs:annotation></xs:attribute></xs:extension></xs:simpleContent></xs:complexType>
<xs:simpleType name="mathexpression"><xs:annotation><xs:documentation>Simple math expression of the format a*x+b</xs:documentation></xs:annotation><xs:restriction base="xs:string"><xs:pattern value="(\-?\d*\.?\d*)\s*\*\s*x\s*([+-])\s*(\d+\.?\d*)"/></xs:restriction></xs:simpleType>
<xs:complexType name="screenTextEditType"><xs:annotation><xs:documentation>Text box to be filled in by the user</xs:documentation></xs:annotation><xs:complexContent><xs:extension base="apex:screenElementType"><xs:sequence><xs:element name="text" type="xs:string" minOccurs="0" maxOccurs="1"/><xs:element name="inputmask" type="xs:string" minOccurs="0" maxOccurs="1"><xs:annotation><xs:documentation>Input mask to restrict what can be typed in the textbox. Defined in the Qt documentation. If inputmask=="numbers", only numeric input will be allowed. If inputmask starts with a / (slash), the remainder will be used as a regular expression for QRegExpValidator.</xs:documentation></xs:annotation></xs:element></xs:sequence></xs:extension></xs:complexContent></xs:complexType>
<xs:complexType name="screenPictureType"><xs:annotation><xs:documentation>Picture to be put on the screen.</xs:documentation></xs:annotation><xs:complexContent><xs:extension base="apex:screenElementType"><xs:sequence><xs:element name="file"><xs:annotation><xs:documentation>Filename of the picture. The format can be any of: PNG, BMP, XBM, XPM, JPEG, MNG, GIF, PBM (P1 or P4), PGM (P2 or P5), and PPM (P3 or P6). If path is relative, it will be prefixed with the prefix given above.</xs:documentation></xs:annotation><xs:complexType><xs:simpleContent><xs:extension base="xs:string"><xs:attribute name="id" type="xs:ID"/></xs:extension></xs:simpleContent></xs:complexType></xs:element><xs:element name="feedback" type="apex:feedbackPathsType" minOccurs="0" maxOccurs="1"><xs:annotation><xs:documentation>If used, overrides the normal feedback (using coloured borders) by drawing a different picture on screen.</xs:documentation></xs:annotation></xs:element></xs:sequence></xs:extension></xs:complexContent></xs:complexType>
A screen element able to display different media depending on the state uses this to define the media.The paths are absolute or relative, eventually prefixed by the prefix.highlight = shown during stimulus play when 'showcurrent' is true.positive = shown as positive feedback when feedback is true.negative = shown as negative feedback when feedback is true.
<xs:complexType name="feedbackPathsType"><xs:annotation><xs:documentation>A screen element able to display different media depending on the state uses this to define the media. The paths are absolute or relative, eventually prefixed by the prefix. highlight = shown during stimulus play when 'showcurrent' is true. positive = shown as positive feedback when feedback is true. negative = shown as negative feedback when feedback is true.</xs:documentation></xs:annotation><xs:sequence><xs:element name="highlight" type="xs:anyURI" minOccurs="0"/><xs:element name="positive" type="xs:anyURI" minOccurs="0"/><xs:element name="negative" type="xs:anyURI" minOccurs="0"/><xs:element name="disabled" type="xs:anyURI" minOccurs="0"/></xs:sequence></xs:complexType>
<xs:complexType name="screenFlashType"><xs:complexContent><xs:extension base="apex:screenElementType"><xs:sequence><xs:element name="file" type="xs:string"><xs:annotation><xs:documentation>Flash movie to be put on the screen.</xs:documentation></xs:annotation></xs:element><xs:element name="feedback" type="apex:feedbackPathsType" minOccurs="0" maxOccurs="1"><xs:annotation><xs:documentation>If used, overrides the normal feedback (using coloured borders) by putting a different movie on screen.</xs:documentation></xs:annotation></xs:element></xs:sequence></xs:extension></xs:complexContent></xs:complexType>
<xs:complexType name="screenParameterlistType"><xs:annotation><xs:documentation>A parameterlist shows the current value of several parameters (fixed or variable)</xs:documentation></xs:annotation><xs:complexContent><xs:extension base="apex:screenElementType"><xs:sequence><xs:element name="parameter" type="apex:showparameterType" maxOccurs="unbounded"/></xs:sequence></xs:extension></xs:complexContent></xs:complexType>
<xs:complexType name="screenPictureLabelType"><xs:annotation><xs:documentation>Label element with a picture on it. Cannot be used for user input.</xs:documentation></xs:annotation><xs:complexContent><xs:extension base="apex:screenElementType"><xs:sequence><xs:element name="file" type="xs:anyURI"><xs:annotation><xs:documentation>Filename of the picture. The format can be any of: PNG, BMP, XBM, XPM, JPEG, MNG, GIF, PBM (P1 or P4), PGM (P2 or P5), and PPM (P3 or P6). If path is relative, it will be prefixed with the prefix given above.</xs:documentation></xs:annotation></xs:element><xs:element name="disabledfile" type="xs:string" minOccurs="0"><xs:annotation><xs:documentation>Picture to be used if the element is disabled</xs:documentation></xs:annotation></xs:element></xs:sequence></xs:extension></xs:complexContent></xs:complexType>
<xs:complexType name="screenSpinBoxType"><xs:annotation><xs:documentation>Spin box. Can set a parameter.</xs:documentation></xs:annotation><xs:complexContent><xs:extension base="apex:screenElementType"><xs:sequence><xs:element name="value" type="xs:integer" minOccurs="0"><xs:annotation><xs:documentation>Default value</xs:documentation></xs:annotation></xs:element><xs:element name="min" type="xs:integer" minOccurs="0"><xs:annotation><xs:documentation>Minimum value</xs:documentation></xs:annotation></xs:element><xs:element name="max" type="xs:integer" minOccurs="0"><xs:annotation><xs:documentation>Maximum value</xs:documentation></xs:annotation></xs:element><xs:element name="step" type="xs:integer" minOccurs="0"><xs:annotation><xs:documentation>Stepsize</xs:documentation></xs:annotation></xs:element><xs:element name="parameter" type="xs:IDREF" minOccurs="0"><xs:annotation><xs:documentation>Parameter to be set to the value of the spinbox. This parameter will be set the NEXT trial.</xs:documentation></xs:annotation></xs:element><xs:element name="reset" type="xs:boolean" default="false" minOccurs="0"><xs:annotation><xs:documentation>Reset the value for every new trial</xs:documentation></xs:annotation></xs:element></xs:sequence></xs:extension></xs:complexContent></xs:complexType>
<xs:complexType name="screenCheckBoxType"><xs:annotation><xs:documentation>CheckBox element. Can be checked. If checkbox is clicked, the subject is assumed to have responded to the trial.</xs:documentation></xs:annotation><xs:complexContent><xs:extension base="apex:screenElementType"><xs:sequence><xs:element name="text" type="xs:string"><xs:annotation><xs:documentation>Text to be printed right to the checkbox</xs:documentation></xs:annotation></xs:element><xs:element name="isChecked" type="xs:integer" minOccurs="0"><xs:annotation><xs:documentation>Determines whether checkbox is checked by default</xs:documentation></xs:annotation></xs:element></xs:sequence></xs:extension></xs:complexContent></xs:complexType>
<xs:complexType name="screenSliderType"><xs:annotation><xs:documentation>Slider element.</xs:documentation></xs:annotation><xs:complexContent><xs:extension base="apex:screenElementType"><xs:sequence><xs:element name="orientation" minOccurs="0"><xs:annotation><xs:documentation>Orientation of slider</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="horizontal"/><xs:enumeration value="vertical"/></xs:restriction></xs:simpleType></xs:element><xs:element name="min" type="xs:integer" minOccurs="0"><xs:annotation><xs:documentation>Minimum value of slider</xs:documentation></xs:annotation></xs:element><xs:element name="max" type="xs:integer" minOccurs="0"><xs:annotation><xs:documentation>Maximum value of slider</xs:documentation></xs:annotation></xs:element><xs:element name="value" type="xs:integer" minOccurs="0"><xs:annotation><xs:documentation>Default value of slider</xs:documentation></xs:annotation></xs:element><xs:element name="tickinterval" type="xs:integer" minOccurs="0"><xs:annotation><xs:documentation>Interval between slider ticks</xs:documentation></xs:annotation></xs:element><xs:element name="stepsize" type="xs:integer" minOccurs="0"><xs:annotation><xs:documentation>Step size on single arrow key press</xs:documentation></xs:annotation></xs:element><xs:element name="pagesize" type="xs:integer" minOccurs="0"><xs:annotation><xs:documentation>Step size of pageUp pageDown key press</xs:documentation></xs:annotation></xs:element></xs:sequence></xs:extension></xs:complexContent></xs:complexType>
<xs:complexType name="screenMatrixType"><xs:annotation><xs:documentation>Matrix of buttons of which one in each column can be selected.</xs:documentation></xs:annotation><xs:complexContent><xs:extension base="apex:screenElementType"><xs:sequence><xs:element name="autocontinue" type="xs:boolean" default="true" minOccurs="0"><xs:annotation><xs:documentation>Automatically end the trial when all columns are completed</xs:documentation></xs:annotation></xs:element><xs:element name="element" minOccurs="1" maxOccurs="unbounded"><xs:complexType><xs:sequence><xs:element name="name" type="xs:string"><xs:annotation><xs:documentation>Name of the element. Will be reported in the results. Will also be used as text if no text is given.</xs:documentation></xs:annotation></xs:element><xs:element name="text" type="xs:string" minOccurs="0"><xs:annotation><xs:documentation>Text to be shown on the button</xs:documentation></xs:annotation></xs:element></xs:sequence><xs:attribute name="row" type="xs:positiveInteger" use="required"><xs:annotation><xs:documentation>Row in the matrix</xs:documentation></xs:annotation></xs:attribute><xs:attribute name="col" type="xs:positiveInteger" use="required"><xs:annotation><xs:documentation>Column in the matrix</xs:documentation></xs:annotation></xs:attribute></xs:complexType></xs:element></xs:sequence></xs:extension></xs:complexContent></xs:complexType>
<xs:complexType name="screenHtmlType"><xs:annotation><xs:documentation>Show HTML document</xs:documentation></xs:annotation><xs:complexContent><xs:extension base="apex:screenElementType"><xs:sequence><xs:element name="page" type="xs:anyURI"><xs:annotation><xs:documentation>Filename of the HTML document.</xs:documentation></xs:annotation></xs:element></xs:sequence></xs:extension></xs:complexContent></xs:complexType>
Stretch factor for the columns: a list of integers separated by comma's. If specified, there should be as much integers as columns. The width of the columns will be proportional to the numbers. E.g. if width=2 and columnstretch="1,2", the second column will be twice as wide as the first. columnstretch="2,4" would have the same effect.
Stretch factor for the rows: a list of integers separated by comma's. If specified, there should be as much integers as rows. The width of the rows will be proportional to the numbers. E.g. if height=3 and rowstretch="1,2,1", the second row will be twice as wide as the first and thirs. rowstretch="2,4,2" would have the same effect.
<xs:complexType name="gridScreenLayoutType"><xs:annotation><xs:documentation>Gridlayout: places elements in an (irregular) grid.</xs:documentation></xs:annotation><xs:complexContent><xs:extension base="apex:screenLayoutType"><xs:attribute name="width" type="xs:int" use="required"></xs:attribute><xs:attribute name="height" type="xs:int" use="required"></xs:attribute><xs:attribute name="columnstretch" type="apex:stretchregexp" use="optional"><xs:annotation><xs:documentation>Stretch factor for the columns: a list of integers separated by comma's. If specified, there should be as much integers as columns. The width of the columns will be proportional to the numbers. E.g. if width=2 and columnstretch="1,2", the second column will be twice as wide as the first. columnstretch="2,4" would have the same effect.</xs:documentation></xs:annotation></xs:attribute><xs:attribute name="rowstretch" type="apex:stretchregexp" use="optional"><xs:annotation><xs:documentation>Stretch factor for the rows: a list of integers separated by comma's. If specified, there should be as much integers as rows. The width of the rows will be proportional to the numbers. E.g. if height=3 and rowstretch="1,2,1", the second row will be twice as wide as the first and thirs. rowstretch="2,4,2" would have the same effect.</xs:documentation></xs:annotation></xs:attribute><!--xs:attribute name="id" type="xs:ID" use="optional"> </xs:attribute--><xs:attributeGroup ref="apex:gridElementAttributes"/></xs:extension></xs:complexContent></xs:complexType>
TwoPartLayout: divides the screen in two parts with a proportion given by the ratio parameter.The position of the child elements is determined by the y coördinate.
<xs:complexType name="twoPartLayoutType"><xs:annotation><xs:documentation>TwoPartLayout: divides the screen in two parts with a proportion given by the ratio parameter. The position of the child elements is determined by the y coördinate.</xs:documentation></xs:annotation><xs:complexContent><xs:extension base="apex:screenLayoutType"><xs:attribute name="ratio" type="xs:float" use="required"></xs:attribute><xs:attribute name="direction" type="apex:horivertType" use="required"></xs:attribute><xs:attributeGroup ref="apex:gridElementAttributes"/></xs:extension></xs:complexContent></xs:complexType>
<xs:complexType name="buttonGroupType"><xs:annotation><xs:documentation>Buttons can be grouped together using a buttongroup to form a single answer element.</xs:documentation></xs:annotation><xs:sequence><xs:element name="button" minOccurs="1" maxOccurs="unbounded"><xs:complexType><!--xs:attribute name="id" type="xs:IDREF" use="required"/--><xs:attribute name="id" type="xs:Name" use="required"/><!-- FIXME --></xs:complexType></xs:element></xs:sequence><!--xs:attribute name="id" type="xs:ID"/--><xs:attributeGroup ref="apex:screenIdAttribute"/></xs:complexType>
<xs:complexType name="xmlGeneratingPluginType"><xs:sequence><xs:element name="script" minOccurs="0"><xs:complexType><xs:simpleContent><xs:extension base="xs:string"><xs:attribute name="source" use="required"><xs:simpleType><xs:annotation><xs:documentation>If inline, the ECMAScript function must be defined inside this element, if file, the filename must be given</xs:documentation></xs:annotation><xs:restriction base="xs:string"><xs:enumeration value="inline"/><xs:enumeration value="file"/></xs:restriction></xs:simpleType></xs:attribute></xs:extension></xs:simpleContent></xs:complexType></xs:element><xs:element name="parameter" default="" minOccurs="0" maxOccurs="unbounded"><xs:complexType><xs:simpleContent><xs:extension base="xs:string"><xs:attribute name="name" type="xs:Name" use="required"/></xs:extension></xs:simpleContent></xs:complexType></xs:element></xs:sequence><!--xs:attribute name="id" type="xs:ID" use="required"/--></xs:complexType>
<xs:complexType name="datablockstype"><xs:sequence><xs:element name="prefix" type="apex:prefixType" minOccurs="0"><xs:annotation><xs:documentation>The prefix for every filename used below. Only used if a filename is a relative path. This prefix is relative to the path of this experiment file.</xs:documentation></xs:annotation></xs:element><xs:element name="datablock" type="apex:datablockType" maxOccurs="unbounded" minOccurs="0"></xs:element><xs:element name="plugindatablocks" type="apex:pluginDatablocksType" minOccurs="0" maxOccurs="unbounded"/></xs:sequence></xs:complexType>
<xs:complexType name="datablockType"><xs:sequence><xs:element name="device" minOccurs="0"><xs:annotation><xs:documentation>The device used to play the datablock. If no device is specified, and there is only one device in the experiment file, it will be used. Otherwise an error message will be shown.</xs:documentation></xs:annotation><xs:complexType><xs:simpleContent><xs:extension base="xs:IDREF"><!--xs:attribute name="channel1" type="xs:nonNegativeInteger" default="0" use="optional"/>
<xs:attribute name="channel2" type="xs:nonNegativeInteger" default="1" use="optional"/--></xs:extension></xs:simpleContent></xs:complexType></xs:element><xs:element name="description" type="xs:string" minOccurs="0"><xs:annotation><xs:documentation>Text description, for your own reference</xs:documentation></xs:annotation></xs:element><xs:choice><xs:element name="file" type="xs:string"><xs:annotation><xs:documentation>Filename of the corresponding datafile. If it is a relative path, it will be prefixed with the prefix defined above.</xs:documentation></xs:annotation></xs:element><xs:element name="data"><xs:annotation><xs:documentation>Direct data. If the data consists of XML code, it can be included directly inside this tag. Currently only works with L34 CI stimuli</xs:documentation></xs:annotation><xs:complexType mixed="true"><xs:sequence minOccurs="0"><xs:any processContents="skip"/></xs:sequence></xs:complexType></xs:element></xs:choice><xs:element name="channels" type="xs:positiveInteger" minOccurs="0"><xs:annotation><xs:documentation>Number of channels: defaults to the number of channels in a wav-file or to 1 in all other cases.</xs:documentation></xs:annotation></xs:element><xs:element name="loop" type="xs:positiveInteger" minOccurs="0" maxOccurs="1"><xs:annotation><xs:documentation>Number of times the datablock should be looped</xs:documentation></xs:annotation></xs:element></xs:sequence><xs:attribute name="id" type="xs:ID" use="required"/></xs:complexType>
<xs:complexType name="devicesType"><xs:sequence><xs:element name="master" type="xs:IDREF" minOccurs="0" maxOccurs="1"><xs:annotation><xs:documentation>The master device is that last one to be started after all stimuli are loaded for all devices. This feature can be used when using triggers to synchronize devices.</xs:documentation></xs:annotation></xs:element><xs:element name="device" type="apex:deviceType" minOccurs="0" maxOccurs="unbounded"><xs:annotation><xs:documentation>All real devices derive from this base.</xs:documentation></xs:annotation></xs:element></xs:sequence></xs:complexType>
<xs:complexType name="deviceType"><xs:annotation><xs:documentation>Base type for all devices</xs:documentation></xs:annotation><xs:attribute name="id" type="xs:ID" use="required"/><!--xs:attribute name="mode" type="apex:deviceModesEnum" use="optional">
<xs:annotation>
<xs:documentation>Processing mode of this device. Impacts all associated
filters.</xs:documentation>
</xs:annotation>
</xs:attribute--></xs:complexType>
<xs:complexType name="filtersType"><xs:sequence><xs:element name="filter" minOccurs="0" maxOccurs="unbounded" type="apex:filterType"><xs:annotation><xs:documentation>Every filter/generator derives from this base type. All filters to be used are defined here.</xs:documentation></xs:annotation></xs:element></xs:sequence></xs:complexType>
<xs:complexType name="filterType"><xs:annotation><xs:documentation>Base type for all filters</xs:documentation></xs:annotation><xs:sequence><xs:element name="device" type="xs:IDREF"><xs:annotation><xs:documentation>ID of the device to which this filter belongs. The mode of the filter (online or offline) is determined by the device.</xs:documentation></xs:annotation></xs:element><xs:element name="channels" type="xs:positiveInteger"><xs:annotation><xs:documentation>Number of channels</xs:documentation></xs:annotation></xs:element><xs:element name="continuous" type="xs:boolean" minOccurs="0"><xs:annotation><xs:documentation>If continuous==true, the filter/generator keeps on running between trials (ie while the user is entering input). Only makes sense for generators.</xs:documentation><!-- FIXME: move to generator --></xs:annotation></xs:element></xs:sequence><xs:attribute name="id" type="xs:ID" use="required"/></xs:complexType>
<xs:complexType name="stimuliType"><xs:sequence><xs:element name="fixed_parameters" minOccurs="0"><xs:annotation><xs:documentation>Fixed parameters describe fixed properties of every stimulus. They can be used by procedures to select a certain stimulus, they can be presented on the screen or can be used for the users own reference. They have no influence whatever on the actual sound/stimulation that is sent to the device when a particular stimulus is to be output. Every fixed stimulus that is used in any stimulus should be defined here. All fixed parameters defined here, should be present in all stimuli.</xs:documentation></xs:annotation><xs:complexType><xs:sequence><xs:element name="parameter" minOccurs="0" maxOccurs="unbounded"><xs:complexType><xs:attribute name="id" type="xs:ID" use="required"/><xs:attribute name="useforresults" type="xs:boolean" use="optional" default="false"/></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element><xs:element name="stimulus" type="apex:stimulusType" maxOccurs="unbounded" minOccurs="0"/><xs:element name="pluginstimuli" type="apex:pluginStimuliType" minOccurs="0" maxOccurs="unbounded"/></xs:sequence></xs:complexType>
<xs:complexType name="stimulusType"><xs:sequence><xs:element name="description" type="xs:string" minOccurs="0"><xs:annotation><xs:documentation>Text description, for your own reference</xs:documentation></xs:annotation></xs:element><xs:element name="datablocks" type="apex:datablocksType"><xs:annotation><xs:documentation>Combination of datablocks to be output</xs:documentation></xs:annotation></xs:element><xs:element name="variableParameters" minOccurs="0"><xs:annotation><xs:documentation>These parameters will be set just before the stimulus is output</xs:documentation></xs:annotation><xs:complexType><xs:sequence><xs:element name="parameter" minOccurs="0" maxOccurs="unbounded"><xs:complexType><xs:simpleContent><xs:extension base="xs:string"><xs:attribute name="id" type="xs:IDREF" use="required"></xs:attribute></xs:extension></xs:simpleContent></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element><xs:element name="fixedParameters" minOccurs="0"><xs:annotation><xs:documentation>Fixed parameters are properties of a stimulus that can be displayed or used to select a stimulus from a list based on a certain criterion.</xs:documentation></xs:annotation><xs:complexType><xs:sequence><xs:element name="parameter" minOccurs="0" maxOccurs="unbounded"><xs:complexType mixed="true"><xs:choice maxOccurs="unbounded" minOccurs="0"><xs:element name="b" type="xs:string" minOccurs="0" maxOccurs="unbounded"/><xs:element name="i" type="xs:string" minOccurs="0" maxOccurs="unbounded"/><xs:element name="u" type="xs:string" minOccurs="0" maxOccurs="unbounded"/></xs:choice><xs:attribute name="id" type="xs:IDREF" use="required"/></xs:complexType><!--xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="id" type="xs:IDREF" use="required"/>
</xs:extension>
</xs:simpleContent--></xs:element></xs:sequence></xs:complexType></xs:element></xs:sequence><xs:attribute name="id" type="xs:ID" use="required"/></xs:complexType>
<xs:complexType name="datablocksType"><xs:annotation><xs:documentation>Specifies how a number of datablocks are to be combined. Datablocks can be sequential or simultaneous. All tags can be nested infinitely.</xs:documentation></xs:annotation><xs:choice minOccurs="0" maxOccurs="1"><xs:element name="datablock"><xs:complexType><xs:attribute name="id" type="xs:Name" use="required"></xs:attribute></xs:complexType></xs:element><xs:element name="sequential" type="apex:datablocksSequentialType"><xs:annotation><xs:documentation>Present all child datablocks or child combinations of datablocks sequentially. The result is guaranteed gap-less when using a single device for all children.</xs:documentation></xs:annotation></xs:element><xs:element name="simultaneous" type="apex:datablocksSimultaneouslType"><xs:annotation><xs:documentation>Present all child datablocks or child combinations of datablocks simultaneously. The total length of this block is the length of the longest child block. Zero's or null stimulation will be added to shorter children if necessary (this is not guaranteed!).</xs:documentation></xs:annotation></xs:element></xs:choice></xs:complexType>
<xs:complexType name="connectionsType"><xs:sequence><xs:element name="connection" minOccurs="0" maxOccurs="unbounded"><xs:complexType><xs:sequence><xs:element name="from" type="apex:connectFromType"><xs:annotation><xs:documentation>The channel of the filter/datablock where the connection is started from.</xs:documentation></xs:annotation></xs:element><xs:element name="to" type="apex:connectToType"><xs:annotation><xs:documentation>The channel of the device/filter where the connection ends.</xs:documentation></xs:annotation></xs:element></xs:sequence></xs:complexType></xs:element></xs:sequence><!--xs:attribute name="device" type="xs:IDREF" use="required"/--></xs:complexType>
<xs:complexType name="connectFromType"><xs:sequence><!--xs:element name="id" type="xs:IDREF"/--><xs:element name="id"><xs:complexType><xs:simpleContent><xs:extension base="apex:idOrAll"><xs:attribute name="mode" default="name"><xs:annotation><xs:documentation>Method of matching the given id.</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="name"><xs:annotation><xs:documentation>Exactly match the given ID</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="regexp"><xs:annotation><xs:documentation>Use regular expression to match an ID</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="wildcard"><xs:annotation><xs:documentation>Use wildcards (*,?,[]) to match an ID</xs:documentation></xs:annotation></xs:enumeration></xs:restriction></xs:simpleType></xs:attribute></xs:extension></xs:simpleContent></xs:complexType></xs:element><xs:element name="channel"><xs:annotation><xs:documentation>The channel to be used. Channels are zero based, ie the first channel is 0, the second 1, etc. This parameter can have an ID for later referral.</xs:documentation></xs:annotation><xs:complexType><xs:simpleContent><xs:extension base="xs:unsignedInt"><xs:attributeGroup ref="apex:filterParam"></xs:attributeGroup></xs:extension></xs:simpleContent></xs:complexType></xs:element></xs:sequence><xs:attributeGroup ref="apex:filterParam"/></xs:complexType>
<xs:simpleType name="idOrAll"><xs:union memberTypes="apex:all xs:IDREF xs:string"><xs:annotation><xs:documentation>A connection can start from any ID defined elsewhere or from all datablocks. All datablocks can be specified using the _ALL_ in this element.</xs:documentation></xs:annotation></xs:union></xs:simpleType>
<xs:complexType name="connectToType"><xs:sequence><!--xs:element name="id" type="xs:IDREF"/--><xs:element name="id" type="xs:IDREF"></xs:element><xs:element name="channel"><xs:annotation><xs:documentation>The channel to be used. Channels are zero based, ie the first channel is 0, the second 1, etc. This parameter can have an ID for later referral. Channel -1 means mute.</xs:documentation></xs:annotation><xs:complexType><xs:simpleContent><xs:extension base="apex:unsignedPlus-1"><xs:attributeGroup ref="apex:filterParam"></xs:attributeGroup></xs:extension></xs:simpleContent></xs:complexType></xs:element></xs:sequence><xs:attributeGroup ref="apex:filterParam"/></xs:complexType>
<xs:complexType name="randomgenerator" abstract="true"><xs:annotation><xs:documentation>Base class for all randomgenerators</xs:documentation></xs:annotation><xs:sequence><xs:element name="min" type="xs:double"><xs:annotation><xs:documentation>Minimum value of the random numbers (inclusive)</xs:documentation></xs:annotation></xs:element><xs:element name="max" type="xs:double"><xs:annotation><xs:documentation>Maximum value of the random numbers (exclusive)</xs:documentation></xs:annotation></xs:element><xs:element name="type"><xs:annotation><xs:documentation>Data type</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="double"><xs:annotation><xs:documentation>Fractional number</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="int"><xs:annotation><xs:documentation>Whole number</xs:documentation></xs:annotation></xs:enumeration></xs:restriction></xs:simpleType></xs:element><xs:element name="parameter" type="xs:IDREF"><xs:annotation><xs:documentation>Parameter to be set to the random value</xs:documentation></xs:annotation></xs:element></xs:sequence><xs:attribute name="id" type="xs:ID" use="required"/></xs:complexType>
Calibration settings are stored in a calibration profile. Everyexperiment file can have one profile. A profile contains certain parameter settingsthat are supposed to impose a fixed relation between digital signal levels andacoustical signal levels.
<xs:complexType name="calibrationType"><xs:annotation><xs:documentation>Calibration settings are stored in a calibration profile. Every experiment file can have one profile. A profile contains certain parameter settings that are supposed to impose a fixed relation between digital signal levels and acoustical signal levels.</xs:documentation></xs:annotation><xs:sequence><xs:element name="soundlevelmeter" minOccurs="0"><xs:annotation><xs:documentation>Information necessary for automatic calibration using an interface to a sound level meter.</xs:documentation></xs:annotation><xs:complexType><xs:sequence><xs:element name="plugin" type="xs:anyURI"><xs:annotation><xs:documentation>Filename of the souind level meter plugin to be used</xs:documentation></xs:annotation></xs:element><xs:element name="transducer" type="xs:string" minOccurs="0"><xs:annotation><xs:documentation>Name of the transducer (microphone, ...) to be used by the SLM. Will only be set if your SLM supports it.</xs:documentation></xs:annotation></xs:element><xs:element name="frequency_weighting" default="Z"><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="Z"><xs:annotation><xs:documentation>No weighting: SPL</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="A"/><xs:enumeration value="C"/></xs:restriction></xs:simpleType></xs:element><xs:element name="time_weighting" default="S"><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="S"/><xs:enumeration value="F"/><xs:enumeration value="I"/></xs:restriction></xs:simpleType></xs:element><xs:element name="type" default="RMS"><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="RMS"/><xs:enumeration value="peak"/></xs:restriction></xs:simpleType></xs:element><xs:element name="percentile" type="xs:double" minOccurs="0" default="0"><xs:annotation><xs:documentation>Percentile of statistics on measurement. If 0 an instantaneous measurement will be made.</xs:documentation></xs:annotation></xs:element><xs:element name="time" type="xs:double" minOccurs="0"><xs:annotation><xs:documentation>Measurement time in seconds. If percentile is defined, time should be >0</xs:documentation></xs:annotation></xs:element><xs:element name="accuracy" type="xs:double" minOccurs="0" default="0.5"><xs:annotation><xs:documentation>Automatic calibration is repeated until the measured value is within the accuracy defined here of the target value</xs:documentation></xs:annotation></xs:element><xs:element name="maxiterations" type="xs:positiveInteger" default="3" minOccurs="0"><xs:annotation><xs:documentation>Maximal number of iterations that can be done to reach the requested accuracy. If the requested accuracy is not reached after this number of iterations, the calibration fails</xs:documentation></xs:annotation></xs:element></xs:sequence></xs:complexType></xs:element><xs:element name="stimuli"><xs:annotation><xs:documentation>Stimuli that are used for calibration. These can be, and in some cases should be stimuli that are used in the actual experiment.</xs:documentation></xs:annotation><xs:complexType><xs:sequence><xs:element name="stimulus" minOccurs="1" maxOccurs="unbounded"><xs:complexType><xs:attribute name="id" type="xs:IDREF" use="required"/></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element><xs:element name="parameters"><xs:annotation><xs:documentation>Parameters that are used to calibrate the system. Generally some output gain parameters of the last stage (eg the wavdevice) are used.</xs:documentation></xs:annotation><xs:complexType><xs:sequence><xs:element name="parameter" minOccurs="1" maxOccurs="unbounded"><xs:complexType><xs:sequence><xs:element name="targetamplitude" type="xs:double"><xs:annotation><xs:documentation>Target acoustical measurement of the stimuli defined above during the experiment. Generally in dBSPL.</xs:documentation></xs:annotation></xs:element><xs:element name="calibrationamplitude" type="xs:double" minOccurs="0"><xs:annotation><xs:documentation>Value to calibrate at. Generally in dBSPL and higher than targetamplitude. Can be changed during calibration.</xs:documentation></xs:annotation></xs:element><xs:element name="mute" type="xs:double" default="-150"><xs:annotation><xs:documentation>Value to be used for the other parameters while calibrating this parameter. Has no effect on the actual calibration. Useful for eg muting the other channel of a headphone.</xs:documentation></xs:annotation></xs:element><xs:element name="min" type="xs:double" default="-50" minOccurs="0"><xs:annotation><xs:documentation>Minimum parameter value that can be set by the calibrator.</xs:documentation></xs:annotation></xs:element><xs:element name="max" type="xs:double" default="10" minOccurs="0"><xs:annotation><xs:documentation>Maximum parameter value that can be set by the calibrator.</xs:documentation></xs:annotation></xs:element></xs:sequence><xs:attribute name="id" type="xs:IDREF" use="required"/></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element></xs:sequence><xs:attribute name="profile" type="xs:Name" use="required"/></xs:complexType>
<xs:complexType name="resultsType"><xs:sequence><xs:element name="page" type="xs:anyURI" minOccurs="1" default="apexresults.html"><xs:annotation><xs:documentation>URL of the HTML page to be shown in the results window. The page should have the appropriate javascript methods embedded.</xs:documentation></xs:annotation></xs:element><xs:element name="resultparameters" minOccurs="0"><xs:annotation><xs:documentation>Parameters to be passed to the results page. Each parameter will be set in hash params.</xs:documentation></xs:annotation><xs:complexType><xs:sequence><xs:element name="parameter" minOccurs="0" maxOccurs="unbounded"><xs:complexType><xs:simpleContent><xs:extension base="xs:string"><xs:attribute name="name" type="xs:string"/></xs:extension></xs:simpleContent></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element><xs:element name="resultscript" type="xs:string" minOccurs="0" default=""><xs:annotation><xs:documentation>Javascript, which will be executed after loading the results page, in the context of the results page.</xs:documentation></xs:annotation></xs:element><xs:element name="showduringexperiment" type="xs:boolean" minOccurs="0" default="true"><xs:annotation><xs:documentation>If true, an extra window will be created which will show the results of the current experiment while the experiment is being executed. Javascript embedded in the page will be executed upon each new trial.</xs:documentation></xs:annotation></xs:element><xs:element name="showafterexperiment" type="xs:boolean" minOccurs="0" default="false"><xs:annotation><xs:documentation>If true a new window will be opened and the results will be shown when the experiment is finished. Confirmation might still be needed (see 'confirmshowresults').</xs:documentation></xs:annotation></xs:element><xs:element name="confirmshowresults" type="xs:boolean" minOccurs="0" default="true"><xs:annotation><xs:documentation>If true a dialog will ask for confirmation whether results should be shown.</xs:documentation></xs:annotation></xs:element><xs:element name="matlabscript" type="xs:string" minOccurs="0"><xs:annotation><xs:documentation>Matlab script to be used for processing results. Will be added as an XML processing tag to the results file</xs:documentation></xs:annotation></xs:element><xs:element name="subject" type="xs:string" minOccurs="0"><xs:annotation><xs:documentation>Name of the test subject. Will be appended to the suggested results file name. Is typically modified at the beginning of an experiment using an interactive entry.</xs:documentation></xs:annotation></xs:element></xs:sequence></xs:complexType>
<xs:complexType name="interactiveType"><xs:sequence><xs:element name="entry" maxOccurs="unbounded"><xs:complexType><xs:attribute name="expression" type="xs:string" use="optional"><xs:annotation><xs:documentation>XPath expression defining the element to be modified. The user will be alerted if the expression yields no results. If the expression yields more than one result, every element found will be modified. The modification takes place before validation, so the resulting document will not be used unless valid. Modifications will be reported in the results file. If expression is not present, the user input will be saved to the results file, but nothing will be modified.</xs:documentation></xs:annotation></xs:attribute><xs:attribute name="type" use="required"><xs:annotation><xs:documentation>Data type of the element to be modified. It impacts the dialog box presented to the user and prevents input of data of the wrong data type.</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="int"><xs:annotation><xs:documentation>An integer number</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="double"><xs:annotation><xs:documentation>A number</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="string"><xs:annotation><xs:documentation>Some text</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="bool"><xs:annotation><xs:documentation>Boolean value "true" or "false"</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="combo"><xs:annotation><xs:documentation>Value from list. The list of options should be specified in default, separated by |</xs:documentation></xs:annotation></xs:enumeration></xs:restriction></xs:simpleType></xs:attribute><xs:attribute name="description" type="xs:string" use="required"><xs:annotation><xs:documentation>Description of this entry, will be shown to the user.</xs:documentation></xs:annotation></xs:attribute><xs:attribute name="default" type="xs:string" use="required"><xs:annotation><xs:documentation>Default value for the replacement.</xs:documentation></xs:annotation></xs:attribute><xs:attribute name="constraint" type="xs:string"><xs:annotation><xs:documentation>Regex against which the value should match.</xs:documentation></xs:annotation></xs:attribute></xs:complexType></xs:element></xs:sequence></xs:complexType>
<xs:complexType name="generalType"><xs:sequence><xs:element name="exitafter" type="xs:boolean" minOccurs="0"><xs:annotation><xs:documentation>Exit immediately after the experiment was finished. The "save results" dialog box is always shown.</xs:documentation></xs:annotation></xs:element><xs:element name="autosave" type="xs:boolean" minOccurs="0" default="false"><xs:annotation><xs:documentation>If defined, apex will automatically select a filename and only present the user with a messagebox asking wheter to save the results yes or no</xs:documentation></xs:annotation></xs:element><xs:element name="waitforstart" type="xs:boolean" minOccurs="0"><xs:annotation><xs:documentation>If true, the next trial is only presented after clicking the Start button, selecting Start from the Experiment menu or pressing F5.</xs:documentation></xs:annotation></xs:element><xs:element name="allowskip" type="xs:boolean" minOccurs="0" default="true"><xs:annotation><xs:documentation>If true, the F7 key can be used to skip anything that takes a certain amount of time, eg intro/outro/iti</xs:documentation></xs:annotation></xs:element><xs:element name="runoutputtest" type="xs:boolean" minOccurs="0" maxOccurs="1"><xs:annotation><xs:documentation>Run test to compare output with input files. Only works for WavDevice, and the apex executable must be compiled with WRITEWAVOUTPUT defined. If set, the data send to the soundcard is also written to a file, and afterwards compared with the input. This allows to check if the entire processing/buffering works properly. If the input below is not specified, the test assumes all available datablocks were played sequential. Filters and connections are not taken into account. (eg if two datablocks are defined, the test just checks if the output is identical to the two wavefiles played right after each other). To allow testing filter/loop/connections functionality, create a wavefile that mimics all the processing, and specify the path below, and the test will use it to compare against the output. See the example tests for more info.</xs:documentation></xs:annotation></xs:element><xs:element name="outputtestinput" type="xs:anyURI" minOccurs="0" maxOccurs="1"><xs:annotation><xs:documentation>Optional: path to a file to compare the output with.</xs:documentation></xs:annotation></xs:element><xs:element name="scriptlibrary" type="xs:anyURI" minOccurs="0"><xs:annotation><xs:documentation>Library of ECMAScript functions. Functions defined in this library can be used from any other script for the experiment.</xs:documentation></xs:annotation></xs:element><xs:element name="scriptparameters" minOccurs="0"><xs:complexType><xs:annotation><xs:documentation>Scriptparameters will be made available to all modules that use ECMAScript, such as plugin datablocks, stimuli, trials and procedures.</xs:documentation></xs:annotation><xs:sequence><xs:element name="parameter" default="" minOccurs="1" maxOccurs="unbounded"><xs:complexType><xs:simpleContent><xs:extension base="xs:string"><xs:attribute name="name" type="xs:Name" use="required"/></xs:extension></xs:simpleContent></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element></xs:sequence></xs:complexType>
<xs:complexType name="calibstimType"><xs:sequence><xs:element name="parameter" minOccurs="1" maxOccurs="unbounded"><xs:annotation><xs:documentation>Parameter to be calibrated using this stimulus.</xs:documentation></xs:annotation><xs:complexType><xs:simpleContent><xs:extension base="xs:IDREF"><xs:attribute name="targetloudness" type="xs:double" use="required"><xs:annotation><xs:documentation>Target loudness value for calibration of this parameter using this stimulus. Mostly in dBSPL. The aim of the calibration is that this stimulus is presented at this loudness in dBSPL to the subject.</xs:documentation></xs:annotation></xs:attribute></xs:extension></xs:simpleContent></xs:complexType></xs:element></xs:sequence><xs:attribute name="id" type="xs:IDREF" use="required"/></xs:complexType>
<xs:complexType name="uniform"><xs:annotation><xs:documentation>Uniform random generator</xs:documentation></xs:annotation><xs:complexContent><xs:extension base="apex:randomgenerator"></xs:extension></xs:complexContent></xs:complexType>
<xs:complexType name="gaussian"><xs:annotation><xs:documentation>Gaussian random generator. NOT IMPLEMENTED</xs:documentation></xs:annotation><xs:complexContent><xs:extension base="apex:randomgenerator"></xs:extension></xs:complexContent></xs:complexType>
The ID is optional, except for child procedures of amultiprocedure. IDs are reported in the results file.
Source
<xs:complexType name="adaptiveProcedure"><xs:annotation><xs:documentation>Adaptive procedure according to Levitt (1978) Adapts a certain parameter according to the correctness of the last answer.</xs:documentation></xs:annotation><xs:complexContent><xs:extension base="apex:procedureType"><xs:sequence><xs:element name="parameters" type="apex:adaptiveProcedureParametersType"/><xs:element name="trials" type="apex:trialsType"><xs:annotation><xs:documentation>Trials are selected according to the sequence parameter. A trial can contain multiple stimuli. If the parameter to be adapted is fixed, a stimulus is selected from this list according to the target value of the parameter of the procedure. If more than one stimulus has the same fixed parameter value, a random stimulus is selected out of this subset. If no exact match for the fixed parameter is found, the closest match is used. If the parameter to be adapted is variable, the value of the parameter is set right before stimulus output.</xs:documentation></xs:annotation></xs:element></xs:sequence></xs:extension></xs:complexContent></xs:complexType>
<xs:complexType name="adaptiveProcedureParametersType"><xs:complexContent><xs:extension base="apex:procedureParametersType"><xs:sequence><xs:element name="nUp" type="xs:positiveInteger"><xs:annotation><xs:documentation>Number of times the user has to give a wrong answer before the parameter is adapted</xs:documentation></xs:annotation></xs:element><xs:element name="nDown" type="xs:positiveInteger"><xs:annotation><xs:documentation>Number of times the user has to give a correct answer before the parameter is adapted</xs:documentation></xs:annotation></xs:element><xs:element name="adapt_parameter" type="xs:IDREF" minOccurs="1" maxOccurs="unbounded"><xs:annotation><xs:documentation>Parameter to be adapted. Can be a fixed or variable parameter. If more than one parameter is specified, all parameters will be set to the same value. Only the first parameter given can be a fixed parameter. Fixed parameters are properties of stimuli, so when a fixed parameter is specified, the adaptive procedure will select the stimulus that has the most appropriate fixed parameter.</xs:documentation></xs:annotation></xs:element><xs:element name="start_value" type="xs:string"><xs:annotation><xs:documentation>Start value of the parameter</xs:documentation></xs:annotation></xs:element><xs:element name="stop_after_type"><xs:annotation><xs:documentation>Criterion to be used to stop the procedure. The procedure will be stopped after stop_after instances of this event.</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="reversals"><xs:annotation><xs:documentation>Total number of reversals in the staircase</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="trials"><xs:annotation><xs:documentation>Total number of trials to be presented</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="presentations"><xs:annotation><xs:documentation>Corresponding to the above presentations tag. Warning: the number of presentations as specified in the presentations element will be used! Every stimulus will be played the number of times specified in the presentations element.</xs:documentation></xs:annotation></xs:enumeration><!-- stop after the parameters above are used --></xs:restriction></xs:simpleType></xs:element><xs:element name="stop_after" type="xs:positiveInteger"><xs:annotation><xs:documentation>The procedure ends after stop_after events of type stop_after_type</xs:documentation></xs:annotation></xs:element><xs:element name="min_value" type="xs:double" minOccurs="0"><xs:annotation><xs:documentation>Minimal value of the parameter. If the procedure tries to go below this value, the parameter is saturated and saturation is reported on screen and in the results file.</xs:documentation></xs:annotation></xs:element><xs:element name="max_value" type="xs:double" minOccurs="0"><xs:annotation><xs:documentation>Maximal value of the parameter. If the procedure tries to go above this value, the parameter is saturated and saturation is reported on screen and in the results file.</xs:documentation></xs:annotation></xs:element><!--xs:element name="rev_for_mean" type="xs:positiveInteger" minOccurs="0">
<xs:annotation>
<xs:documentation>Number of reversals to be taken for mean value.
Currently only used in xslt scripts to convert/analyse the resuls
file.</xs:documentation>
</xs:annotation>
</xs:element--><xs:element name="larger_is_easier" type="xs:boolean" default="true"><xs:annotation><xs:documentation>Larger values of the parameter are easier than smaller values</xs:documentation></xs:annotation></xs:element><xs:element name="repeat_first_until_correct" type="xs:boolean" minOccurs="0"><xs:annotation><xs:documentation>Repeat the first trial untill the answer is correct.</xs:documentation></xs:annotation></xs:element><xs:element name="stepsizes"><xs:annotation><xs:documentation>Defines the stepsizes to be used to adapt the parameter</xs:documentation></xs:annotation><xs:complexType><xs:sequence><xs:element name="change_after" minOccurs="0"><xs:annotation><xs:documentation>Change the stepsize after a certain number of trials or a certain number of reversals</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="trials"/><xs:enumeration value="reversals"/></xs:restriction></xs:simpleType></xs:element><xs:element name="stepsize" maxOccurs="unbounded" minOccurs="1"><xs:annotation><xs:documentation>The procedure uses a step of size "size" after "begin" events of type "change_after" have occured</xs:documentation></xs:annotation><xs:complexType><xs:attribute name="begin" type="xs:nonNegativeInteger" use="required"/><xs:attribute name="size" type="xs:double" use="required"/><xs:attribute name="direction" type="apex:direction" use="optional"><xs:annotation><xs:documentation>If this attribute is specified, this stepsize will only be used then adapting in the up/down direction. When specifying direction for a certain begin value, it needs to be specified for both up and down.</xs:documentation></xs:annotation></xs:attribute></xs:complexType></xs:element></xs:sequence></xs:complexType><xs:unique name="uniqueBeginStepsize"><xs:selector xpath="stepsize"/><xs:field xpath="@begin"/><xs:field xpath="@direction"/></xs:unique></xs:element></xs:sequence></xs:extension></xs:complexContent></xs:complexType>
<xs:complexType name="procedureParametersType"><xs:sequence><xs:element name="presentations" type="xs:positiveInteger" default="1"><xs:annotation><xs:documentation>Number of times every trial will be presented.</xs:documentation></xs:annotation></xs:element><xs:element name="skip" type="xs:integer" default="0" minOccurs="0"><xs:annotation><xs:documentation>Number of trials that will be presented before the actual presentations start. Eg if skip=2 and presentations=3 then first 2 trials will be presented and then 3*#trials. If the order is sequential, the skipped trials will be the first skip trials from the trial list, repeated if necessary. If the order is random, the skipped trials will be picked from the trial list without replacement, repeating this procedure if necessary (if skip>nTrials). Trials that are to be skipped in the results analysis are marked with the skip tag in the results file. Warning: this has not been thorougly checked for other procedures than constant.</xs:documentation></xs:annotation></xs:element><xs:element name="order"><xs:annotation><xs:documentation>The order in which to present the trials.</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="random"><xs:annotation><xs:documentation>Random is realized by creating a list of trials before the experiment starts and shuffling this list</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="sequential"><xs:annotation><xs:documentation>Trials are presented in order of appearance in the experiment file</xs:documentation></xs:annotation></xs:enumeration></xs:restriction></xs:simpleType></xs:element><xs:element name="defaultstandard" minOccurs="0" maxOccurs="1" type="xs:Name"><xs:annotation><xs:documentation>The default standard: only relevant if choices>1 This standard will be used if no standard is defined in a certain trial.</xs:documentation></xs:annotation></xs:element><xs:element name="uniquestandard" minOccurs="0" maxOccurs="1" default="false" type="xs:boolean"><xs:annotation><xs:documentation>If uniquestandard is true and multiple standards are defined per trial, Apex will try to present another standard in each interval of the trial.</xs:documentation></xs:annotation></xs:element><!--xs:element name="choices" minOccurs="0" default="1">
<xs:annotation>
<xs:documentation>Number of choices: choices stimuli are presented, one of which
is the stimulus. The others are the current standard (defined in the trial
or the default standard). To be combined with an "alternatives"
corrector.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:positiveInteger">
<xs:attribute name="select" type="apex:selectChoicesType">
<xs:annotation>
<xs:documentation>If select is defined, the stimulus will only
be presented in the intervals enumerated in the select
attribute. e.g.: if select="2,3", the stimulus will never
occur in interval 1, but only in 2 and 3</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element--><xs:choice><xs:element name="intervals" minOccurs="0"><xs:annotation><xs:documentation>Associate intervals with screen elements. Only useful if count>1, otherwise you can use a corrector.</xs:documentation></xs:annotation><xs:complexType><xs:sequence><xs:element name="interval" maxOccurs="unbounded" minOccurs="2"><xs:complexType><xs:attribute name="number" type="xs:positiveInteger" use="required"><xs:annotation><xs:documentation>Time slot of the stimulus</xs:documentation></xs:annotation></xs:attribute><xs:attribute name="element" type="xs:string" use="required"><xs:annotation><xs:documentation>Name of the screen element corresponding to the time slot</xs:documentation></xs:annotation></xs:attribute></xs:complexType></xs:element></xs:sequence><xs:attribute name="count" type="apex:intervalsCountType" use="required"><xs:annotation><xs:documentation>Number of intervals</xs:documentation></xs:annotation></xs:attribute><xs:attribute name="select" type="apex:selectChoicesType"><xs:annotation><xs:documentation>If select is defined, the stimulus will only be presented in the intervals enumerated in the select attribute. e.g.: if select="2,3", the stimulus will never occur in interval 1, but only in 2 and 3</xs:documentation></xs:annotation></xs:attribute></xs:complexType></xs:element><xs:element name="corrector" type="apex:correctorType" minOccurs="0"><xs:annotation><xs:documentation>Describes the corrector to be used. The corrector compares the user input and the correct answer for a certain trail. Real correctors are derived from apex:correctorType</xs:documentation></xs:annotation></xs:element></xs:choice><xs:element name="pause_between_stimuli" minOccurs="0" type="xs:nonNegativeInteger" default="0"><xs:annotation><xs:documentation>If specified, a pause of n milliseconds will be introduced between successive stimulus/standard presentations</xs:documentation></xs:annotation></xs:element><xs:element name="time_before_first_trial" minOccurs="0" type="xs:double" default="0"><xs:annotation><xs:documentation>If specified, apex will wait for the given number of seconds before starting the first stimulus of the first trial when the procedure is started.</xs:documentation></xs:annotation></xs:element><xs:element name="input_during_stimulus" type="xs:boolean" minOccurs="0" default="false"/></xs:sequence></xs:complexType>
<xs:complexType name="correctorType" abstract="true"><xs:annotation><xs:documentation>Base type for all correctors</xs:documentation></xs:annotation><xs:sequence></xs:sequence></xs:complexType>
<xs:complexType name="trialType"><xs:sequence><xs:element name="answer" minOccurs="0"><xs:annotation><xs:documentation>The correct answer for this trial. Can be the name of a screen element, a string, a number or mixed xml data.</xs:documentation></xs:annotation><xs:complexType mixed="true"><xs:choice maxOccurs="unbounded" minOccurs="0"><xs:element name="key" type="xs:string" minOccurs="0" maxOccurs="unbounded"><xs:annotation><xs:documentation>Keyword, to be used by the corrector</xs:documentation></xs:annotation></xs:element><xs:element name="skey" type="xs:string" minOccurs="0" maxOccurs="unbounded"><xs:annotation><xs:documentation>Part of a split keyword, to be used by the corrector.</xs:documentation></xs:annotation></xs:element></xs:choice></xs:complexType></xs:element><xs:element name="answer_element" type="xs:IDREF" minOccurs="0"><xs:annotation><xs:documentation>Screen element that contains the user input to be used by the corrector.</xs:documentation></xs:annotation></xs:element><xs:element name="screen" type="apex:screenRefType"><xs:annotation><xs:documentation>Screen to be shown</xs:documentation></xs:annotation></xs:element><xs:element name="stimulus" type="apex:stimulusRefType" minOccurs="0" maxOccurs="unbounded"><xs:annotation><xs:documentation>One or more stimuli. An adaptive procedure using a fixed parameter will select one of these stimuli. Other procedures select a random stimulus if more than one is present. Notice that it is not guaranteed that all stimuli will be presented an equal number of times, in the case a random stimulus is selected here.</xs:documentation></xs:annotation></xs:element><xs:element name="standard" type="apex:stimulusRefType" minOccurs="0" maxOccurs="unbounded"><xs:annotation><xs:documentation>The standard to be used when procedure/choices>1. The standard will be presented on every time-slot except for one when the stimulus is presented. If more than one standard is defined, a random standard will be selected for each presentation. If e.g. 3 standards are defined and choices=4, a possible sequence would be standard1 stimulus1 standard2 standard1</xs:documentation></xs:annotation></xs:element></xs:sequence><xs:attribute name="id" type="xs:ID" use="required"/></xs:complexType>
The ID is optional, except for child procedures of amultiprocedure. IDs are reported in the results file.
Source
<xs:complexType name="constantProcedure"><xs:annotation><xs:documentation>Every trial is presented a specified number of times.</xs:documentation></xs:annotation><xs:complexContent><xs:extension base="apex:procedureType"><xs:sequence><xs:element name="parameters" type="apex:constantProcedureParametersType"/><xs:element name="trials" type="apex:trialsType"><xs:annotation><xs:documentation>If a trial contains more than one stimulus, a random one will be selected.</xs:documentation></xs:annotation></xs:element></xs:sequence></xs:extension></xs:complexContent></xs:complexType>
The training procedure is the reverse of the constant procedure: astimulus is presented AFTER the uses gives input. The trial to be presented isdetermined according to the user input. If no corresponding trial is found, an errordialog box is shown. This procedure is designed to be used as a drop-in instead ofthe constant procedure to let subjects perform training before starting the actualexperiment.
The ID is optional, except for child procedures of amultiprocedure. IDs are reported in the results file.
Source
<xs:complexType name="trainingProcedure"><xs:annotation><xs:documentation>The training procedure is the reverse of the constant procedure: a stimulus is presented AFTER the uses gives input. The trial to be presented is determined according to the user input. If no corresponding trial is found, an error dialog box is shown. This procedure is designed to be used as a drop-in instead of the constant procedure to let subjects perform training before starting the actual experiment.</xs:documentation></xs:annotation><xs:complexContent><xs:extension base="apex:procedureType"><xs:sequence><xs:element name="parameters" type="apex:trainingProcedureParametersType"/><xs:element name="trials" type="apex:trialsType"/></xs:sequence></xs:extension></xs:complexContent></xs:complexType>
The ID is optional, except for child procedures of amultiprocedure. IDs are reported in the results file.
Source
<xs:complexType name="multiProcedure"><xs:annotation><xs:documentation>The multiprocedure contains several child procedures and selects between them. This procedure ends when all child procedures have ended.</xs:documentation></xs:annotation><xs:complexContent><xs:extension base="apex:procedureType"><xs:sequence><xs:element name="parameters" type="apex:multiProcedureParametersType"/><xs:element name="procedure" type="apex:procedureType" minOccurs="1" maxOccurs="unbounded"><xs:annotation><xs:documentation>All child procedures MUST have an ID</xs:documentation></xs:annotation></xs:element></xs:sequence></xs:extension></xs:complexContent></xs:complexType>
<xs:complexType name="multiProcedureParametersType"><xs:sequence><xs:element name="order"><xs:annotation><xs:documentation>Order of interleaving the child procedures.</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="random"/><xs:enumeration value="sequential"/><xs:enumeration value="onebyone"><xs:annotation><xs:documentation>Present the procedures one by one: only start the next procedure if the previous one is finished</xs:documentation></xs:annotation></xs:enumeration></xs:restriction></xs:simpleType></xs:element></xs:sequence></xs:complexType>
<xs:complexType name="pluginProcedureParametersType"><xs:complexContent><xs:extension base="apex:procedureParametersType"><xs:sequence><xs:element name="script" minOccurs="1"><xs:annotation><xs:documentation>Name of the script to be used as plugin procedure TODO</xs:documentation></xs:annotation></xs:element><xs:element name="debugger" minOccurs="0" type="xs:boolean"><xs:annotation><xs:documentation>If true, a JavaScript debugger will be shown upon errors, or when the "debugger" statement is encountered in the script</xs:documentation></xs:annotation></xs:element><xs:element name="adjust_parameter" type="xs:IDREF" minOccurs="0"><xs:annotation><xs:documentation>Parameter to be modified by the procedure</xs:documentation></xs:annotation></xs:element><xs:element name="parameter" minOccurs="0" maxOccurs="unbounded"><xs:complexType><xs:simpleContent><xs:extension base="xs:string"><xs:attribute name="name" type="xs:Name" use="required"/></xs:extension></xs:simpleContent></xs:complexType></xs:element></xs:sequence></xs:extension></xs:complexContent></xs:complexType>
<xs:complexType name="variableParametersType"><xs:annotation><xs:documentation>Parameters defined in this section will be set before the stimulus is played</xs:documentation></xs:annotation><xs:sequence><xs:element name="parameter" type="apex:hasIdParameterType" minOccurs="0" maxOccurs="unbounded"/></xs:sequence></xs:complexType>
<xs:complexType name="parameterType"><xs:annotation><xs:documentation>base type for all kinds of parameters</xs:documentation></xs:annotation><xs:simpleContent><xs:extension base="xs:string"><xs:attribute name="type" type="xs:string" use="required"/></xs:extension></xs:simpleContent></xs:complexType>
<xs:complexType name="fixedParametersType"><xs:annotation><xs:documentation>Fixed parameters are properties of a stimulus</xs:documentation></xs:annotation><xs:sequence><xs:element name="parameter" type="apex:maybeIdParameterType" minOccurs="0" maxOccurs="unbounded"/></xs:sequence></xs:complexType>
<xs:complexType name="isequal"><xs:annotation><xs:documentation>Corrector that checks whether the inputs are exactly equal. Useful for checking buttongroups or exact string matching.</xs:documentation></xs:annotation><xs:complexContent><xs:extension base="apex:correctorType"/></xs:complexContent></xs:complexType>
<xs:simpleType name="shortcutRegExp"><xs:restriction base="xs:string"><!--xs:pattern value="Key_[A-Z0-9]"> </xs:pattern--><xs:pattern value="."/><!--Any Character is ok--><xs:length value="1"/></xs:restriction></xs:simpleType>
<xs:complexType name="wavDeviceType"><xs:complexContent><xs:extension base="apex:deviceType"><xs:sequence><xs:element name="driver" minOccurs="0"><xs:annotation><xs:documentation>Driver architecture to be used for sound output</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="dummy"><xs:annotation><xs:documentation>Dummy soundcard</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="portaudio"><xs:annotation><xs:documentation>Portaudio is a cross-platform audio framework</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="qtaudio"><xs:annotation><xs:documentation>Qt Multimedia framework</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="asio"><xs:annotation><xs:documentation>ASIO is a proprietary windows/mac-only audio framework by Steinberg. Use it if low latency/more then 2 channels is required.</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="coreaudio"><xs:annotation><xs:documentation>CoreAudio is MacOsX' audio framework.</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="jack"><xs:annotation><xs:documentation>Jack is a cross-platform audio framework. A jack connection will be made to the "drivername" specified in the main config file.</xs:documentation></xs:annotation></xs:enumeration></xs:restriction></xs:simpleType></xs:element><xs:element name="card" type="xs:string" minOccurs="0"><xs:annotation><xs:documentation>Name of the soundcard to be used. Cards are defined in the main config file. Every soundcard in the system can be enumerated in the main configfile. Use the ID defined there. Otherwise the "default" card can be used.</xs:documentation></xs:annotation></xs:element><xs:element name="channels" type="xs:positiveInteger"><xs:annotation><xs:documentation>Number of output channels to be used. This is restricted by the selected driver, with a maximum of 2 for portaudio.</xs:documentation></xs:annotation></xs:element><xs:element name="gain" type="apex:channelGainType" minOccurs="0" maxOccurs="unbounded"><xs:annotation><xs:documentation>Final gain of the device, implemented with a software mixer.</xs:documentation></xs:annotation></xs:element><xs:element name="samplerate"><xs:annotation><xs:documentation>Sample rate of the device. Warning: not all sample rates are supported by all devices and some drivers automatically convert to other sample rates. Check your sound card documentation.</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="16000"/><xs:enumeration value="44100"/><xs:enumeration value="96000"/><xs:enumeration value="32000"/><xs:enumeration value="48000"/><xs:enumeration value="8000"/><xs:enumeration value="22050"/><xs:enumeration value="72000"/></xs:restriction></xs:simpleType></xs:element><xs:element name="buffersize" minOccurs="0" type="xs:positiveInteger"><xs:annotation><xs:documentation>Applies to the soundcard buffer size, not the internal apex buffer size. Larger sizes are more efficient, smaller sizes have smaller latencies. Some notes: for asio, latency is always ( 2 * buffersize + overhead ) / samplerate. The overhead is very small, eg 16 samples for an Rme Multiface. Portaudio however always uses a number of internal buffers, mostly 4. Hence, actual latency is ( 2 * 4 * buffersize + overhead ) / samplerate. For asio/jack: must be set to the system buffer size.</xs:documentation></xs:annotation></xs:element><xs:element name="blocksize" minOccurs="0" type="xs:positiveInteger"><xs:annotation><xs:documentation>Applies to the block size that is used in the internal apex audio streams (for filters etc.). Larger sizes are more efficient, smaller sizes have smaller latencies. If not defined, the soundcard buffersize will be used.</xs:documentation></xs:annotation></xs:element><xs:element name="buffersize_apex" minOccurs="0"><xs:annotation><xs:documentation>Size of internal apex sound buffer in seconds. This buffer ensures that no buffer underruns occur. The default value is 1s. If continuous filters are used, the system will need this amount of seconds before the next stimulus can be output. Note that the value in seconds is rounded down to the nearest multiple of 8192 samples (the buffersize used to fill the buffer): so using 1 second here, with a samplerate of 44100, the actual amount of time will be 40960 samples / 44100 samples/sec = 0.9 seconds. If a buffersize smaller than 16384 samples is specified, a buffer of 16384 samples will be used.</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:decimal"><xs:minExclusive value="0"/><xs:maxInclusive value="60"/></xs:restriction></xs:simpleType><!--xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="0.5"/>
<xs:enumeration value="1"/>
<xs:enumeration value="1.5"/>
<xs:enumeration value="2"/>
<xs:enumeration value="3"/>
<xs:enumeration value="4"/>
<xs:enumeration value="5"/>
<xs:enumeration value="10"/>
</xs:restriction>
</xs:simpleType--></xs:element><xs:element name="padzero" type="xs:nonNegativeInteger" minOccurs="0"><xs:annotation><xs:documentation>If smaller than 16: add padzero*8196 samples to the end of each stream. If larger than 16: add padzero samples to the end of each stream. This avoids dropping of the last N frames on some soundcards (notoriously LynxOne and FirefaceUC)</xs:documentation></xs:annotation></xs:element><xs:element name="cisim" type="apex:cisimType" minOccurs="0"><xs:annotation><xs:documentation>Parameters for automatic CI simulation</xs:documentation></xs:annotation></xs:element></xs:sequence></xs:extension></xs:complexContent></xs:complexType>
Used to specify a single channel to apply gain to,instead of applying it to all channels at once.For example, for an amplifier having two channels, these are set independently by using <gain id="ch0" channel="0">-3.00</gain><gain id="ch1" channel="1">-6.00</gain> Channels are zero based, ie the first channel is 0, thesecond 1 and so on.
<xs:complexType name="channelGainType"><xs:simpleContent><xs:extension base="apex:gainparam"><xs:attribute name="channel" type="xs:nonNegativeInteger"><xs:annotation><xs:documentation>Used to specify a single channel to apply gain to, instead of applying it to all channels at once. For example, for an amplifier having two channels, these are set independently by using<gain id="ch0" channel="0">-3.00</gain><gain id="ch1" channel="1">-6.00</gain>Channels are zero based, ie the first channel is 0, the second 1 and so on.</xs:documentation></xs:annotation></xs:attribute></xs:extension></xs:simpleContent></xs:complexType>
<xs:complexType name="dummyDeviceType"><xs:annotation><xs:documentation>Dummy device that does nothing. Useful to temporarily suppress output of a certain device. Allows anything as parameters.</xs:documentation></xs:annotation><xs:complexContent><xs:extension base="apex:deviceType"><xs:sequence><xs:any processContents="skip" minOccurs="0" maxOccurs="unbounded"/></xs:sequence></xs:extension></xs:complexContent></xs:complexType>
<xs:complexType name="CohDeviceType"><xs:annotation><xs:documentation>Cochlear stimulation device device</xs:documentation></xs:annotation><xs:complexContent><xs:extension base="apex:deviceType"><xs:sequence><xs:element name="device" type="xs:string"><xs:annotation><xs:documentation>Device identifier. For NIC 2, this identifier consists of three parts: the device type (e.g. l34) , the implant type (e.g. cic3, cic4) and the device number (e.g. 1, ordered according to the assigned COM port, device 0 is a simulated device).</xs:documentation></xs:annotation></xs:element><xs:element name="trigger"><xs:annotation><xs:documentation>Generate or use a trigger from the audio port. Currently the trigger button status is not checked (nicv2 doesn't allow this yet)</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="in"/><xs:enumeration value="out"/><xs:enumeration value="none"/></xs:restriction></xs:simpleType></xs:element><!--xs:element name="volume" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:double">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="100"/>
</xs:restriction>
</xs:simpleType>
</xs:element --><xs:element name="powerup_count" minOccurs="0" default="4000" type="xs:nonNegativeInteger"><xs:annotation><xs:documentation>Number of powerup pulses to send. No powerup pulses will be sent if this is set to 0.</xs:documentation></xs:annotation></xs:element><xs:element name="volume" minOccurs="0"><xs:complexType><xs:annotation><xs:documentation>Volume parameter for Cochlear device. The current level (in clinical units) is calculated according the following formula: round(t + (c-t) * volume/100 * mag) Where: t=treshold level c=comfort level volume=current value of volume parameter mag=magnitude [0,1]</xs:documentation></xs:annotation><xs:simpleContent><xs:extension base="apex:volumeParam"><xs:attributeGroup ref="apex:filterParam"/></xs:extension></xs:simpleContent></xs:complexType></xs:element><xs:element name="defaultmap"><xs:annotation><xs:documentation>Defines the default subject map to be used</xs:documentation></xs:annotation><xs:complexType><xs:choice><xs:element name="inline" type="apex:CohMap"><xs:annotation><xs:documentation>The map is defined below</xs:documentation></xs:annotation></xs:element><xs:element name="from_r126"><xs:annotation><xs:documentation>The user can select the map from the R126 wizard. R126 is the clinical fitting software.</xs:documentation></xs:annotation></xs:element></xs:choice></xs:complexType></xs:element></xs:sequence></xs:extension></xs:complexContent></xs:complexType>
<xs:complexType name="CohMap"><xs:sequence><xs:element name="number_electrodes"><xs:simpleType><xs:restriction base="xs:positiveInteger"><xs:maxInclusive value="22"/></xs:restriction></xs:simpleType></xs:element><xs:element name="mode" type="apex:CohModeEnum"><xs:annotation><xs:documentation>Stimulation mode; bipolar modes use a lower, reverse bipolar modes a higher reference electrode.</xs:documentation></xs:annotation></xs:element><xs:element name="pulsewidth"><xs:annotation><xs:documentation>When using a Freedom processor, the maximum phasewidth is 429.8us When using an L34 processor, the maximum phasewidth is 434.4us</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:double"><xs:minInclusive value="25"/><xs:maxInclusive value="434.4"/></xs:restriction></xs:simpleType></xs:element><xs:element name="pulsegap"><xs:annotation><xs:documentation>When using a Freedom processor, the maximum phase gap is 57us When using an L34 processor, the maximum phase gap is 58us When using a cic3 implant, the minimum phase gap is 8us When using a cic4 implant, the minimum phase gap is 7us</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:double"><xs:minInclusive value="7"/><xs:maxInclusive value="58"/></xs:restriction></xs:simpleType></xs:element><xs:element name="period"><xs:annotation><xs:documentation>When using a Freedom processor, the maximum period is 13078us When using an L34 processor, the maximum period is 13107us When using a cic3 implant, the minimum period is 70us When using a cic4 implant, the minimum period is 64.6us</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:double"><xs:minInclusive value="64.6"/><xs:maxInclusive value="13107"/></xs:restriction></xs:simpleType></xs:element><xs:element name="trigger" minOccurs="0" default="none"><xs:annotation><xs:documentation>"all" will result in all pulses having triggers. "none" will result in no pulses having triggers. "first" will result in the first pulses that needs mapping to have a trigger, the ones afterward will have no trigger.</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="all"/><xs:enumeration value="none"/><xs:enumeration value="first"/></xs:restriction></xs:simpleType></xs:element><xs:element name="channel" minOccurs="1" maxOccurs="22"><xs:complexType><xs:attribute name="number" use="required"><xs:simpleType><xs:restriction base="xs:positiveInteger"><xs:maxInclusive value="22"/></xs:restriction></xs:simpleType></xs:attribute><xs:attribute name="electrode" use="required"><xs:simpleType><xs:restriction base="xs:positiveInteger"><xs:maxInclusive value="22"/></xs:restriction></xs:simpleType></xs:attribute><xs:attribute name="threshold" use="required"><xs:simpleType><xs:restriction base="xs:nonNegativeInteger"><xs:maxInclusive value="255"/></xs:restriction></xs:simpleType></xs:attribute><xs:attribute name="comfort" use="required"><xs:simpleType><xs:restriction base="xs:nonNegativeInteger"><xs:maxInclusive value="255"/></xs:restriction></xs:simpleType></xs:attribute></xs:complexType></xs:element></xs:sequence><xs:attribute name="id" type="xs:ID"/></xs:complexType>
All processing (mixing, filtering, ...) is done in real timewhile sending output
Source
<xs:simpleType name="deviceModesEnum"><xs:restriction base="xs:string"><xs:enumeration value="online"><xs:annotation><xs:documentation>All processing (mixing, filtering, ...) is done in real time while sending output</xs:documentation></xs:annotation></xs:enumeration><!--xs:enumeration value="offline">
<xs:annotation>
<xs:documentation>All processing is done beforehand and the resulting output
data is stored in memory. Not all devices support this
mode.</xs:documentation>
</xs:annotation>
</xs:enumeration--></xs:restriction></xs:simpleType>
<xs:complexType name="generator"><xs:annotation><xs:documentation>A generator is a filter without any input.</xs:documentation></xs:annotation><xs:complexContent><xs:extension base="apex:filterType"><xs:sequence><xs:element name="type"><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="noise"><xs:annotation><xs:documentation>White noise (this is NOT gaussian noise)</xs:documentation></xs:annotation></xs:enumeration><!--xs:enumeration value="square">
<xs:annotation>
<xs:documentation>Square wave with peak amplitude = total
gain</xs:documentation>
</xs:annotation>
</xs:enumeration--><xs:enumeration value="sinus"><xs:annotation><xs:documentation>Sinus with peak amplitude = total gain</xs:documentation></xs:annotation></xs:enumeration><!--xs:enumeration value="triangle">
<xs:annotation>
<xs:documentation>Triangle with peak amplitude = total
gain</xs:documentation>
</xs:annotation>
</xs:enumeration--><xs:enumeration value="singlepulse"><xs:annotation><xs:documentation>Single pulse with peak amplitude = total gain. The polarity is set using the "polarity" parameter.</xs:documentation></xs:annotation></xs:enumeration></xs:restriction></xs:simpleType></xs:element><xs:element name="basegain" type="xs:double" default="0" minOccurs="0"><xs:annotation><xs:documentation>The total gain is basegain+gain. Basegain is useful for amplitude normalization between different blocks</xs:documentation></xs:annotation></xs:element><xs:element name="invertgain" type="xs:boolean" default="false" minOccurs="0"><xs:annotation><xs:documentation>Inverts the gain of the block (but not the basegain). Invertgain is useful for the attenuation of noise depending on an SNR</xs:documentation></xs:annotation></xs:element><xs:element name="gain" default="0" type="apex:gainparam"><xs:annotation><xs:documentation>The total gain is basegain+gain. Gain is a parameter that can be changed by other modules</xs:documentation></xs:annotation></xs:element><xs:element name="frequency" default="1000"><xs:annotation><xs:documentation>Frequency: only makes sense for sinus, square and triangle</xs:documentation></xs:annotation><xs:complexType><xs:simpleContent><xs:extension base="xs:nonNegativeInteger"><xs:attributeGroup ref="apex:filterParam"/></xs:extension></xs:simpleContent></xs:complexType></xs:element><xs:element name="phase" default="0"><xs:annotation><xs:documentation>Phase (rad): only makes sense for sinus, square and triangle</xs:documentation></xs:annotation><xs:complexType><xs:simpleContent><xs:extension base="xs:double"><xs:attributeGroup ref="apex:filterParam"/></xs:extension></xs:simpleContent></xs:complexType></xs:element><xs:element name="pulsewidth" default="1" type="xs:positiveInteger" minOccurs="0"><xs:annotation><xs:documentation>Pulse width in samples. Currently only used for single pulse generator</xs:documentation></xs:annotation></xs:element><xs:element name="polarity" minOccurs="0" default="positive"><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="positive"/><xs:enumeration value="negative"/></xs:restriction></xs:simpleType></xs:element></xs:sequence></xs:extension></xs:complexContent></xs:complexType>
<xs:complexType name="amplifier"><xs:complexContent><xs:extension base="apex:filterType"><xs:sequence><xs:element name="basegain" type="apex:gainparam" default="0" minOccurs="0"><xs:annotation><xs:documentation>The total gain is basegain+gain. Basegain is useful for amplitude normalization between different blocks</xs:documentation></xs:annotation></xs:element><xs:element name="invertgain" type="xs:boolean" default="false" minOccurs="0"><xs:annotation><xs:documentation>Inverts the gain of the block (but not the basegain). Invertgain is useful for the attenuation of noise depending on an SNR</xs:documentation></xs:annotation></xs:element><xs:element name="gain" minOccurs="1" maxOccurs="unbounded" type="apex:channelGainType"></xs:element></xs:sequence></xs:extension></xs:complexContent></xs:complexType>
<xs:complexType name="dataloop"><xs:annotation><xs:documentation>Loops a datablock forever.</xs:documentation></xs:annotation><xs:complexContent><xs:extension base="apex:filterType"><xs:sequence><xs:element name="datablock" type="xs:IDREF"/><xs:element name="basegain" type="xs:double" default="0" minOccurs="0"><xs:annotation><xs:documentation>The total gain is basegain+gain. Basegain is useful for amplitude normalization between different blocks</xs:documentation></xs:annotation></xs:element><xs:element name="invertgain" type="xs:boolean" default="false" minOccurs="0"><xs:annotation><xs:documentation>Inverts the gain of the block (but not the basegain). Invertgain is useful for the attenuation of noise depending on an SNR</xs:documentation></xs:annotation></xs:element><xs:element name="gain" type="apex:gainparam"/><xs:element name="randomjump" type="xs:boolean" default="false" minOccurs="0"><xs:annotation><xs:documentation>Jump to a random place in the datablock upon start. Only functional if randomjump=false</xs:documentation></xs:annotation></xs:element><xs:element name="jump" type="xs:double" default="0" minOccurs="0"><xs:annotation><xs:documentation>Jump to a fixed place in the datablock when the generator is started. The place is specified in seconds. Take care that you do not jump further than the length of the wave file.</xs:documentation></xs:annotation></xs:element></xs:sequence></xs:extension></xs:complexContent></xs:complexType>
<xs:attribute name="id" type="xs:ID" use="optional"><xs:annotation><xs:documentation>The ID is optional, except for child procedures of a multiprocedure. IDs are reported in the results file.</xs:documentation></xs:annotation></xs:attribute>
<xs:attribute name="source" default="inline"><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="inline"><xs:annotation><xs:documentation>The prefix will be specified in this element</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="apexconfig"><xs:annotation><xs:documentation>The prefix will be loaded from the apexconfig.xml file</xs:documentation></xs:annotation></xs:enumeration></xs:restriction></xs:simpleType></xs:attribute>
<xs:attribute name="length" type="xs:positiveInteger"><xs:annotation><xs:documentation>The period to show the screen</xs:documentation></xs:annotation></xs:attribute>
<xs:attribute name="length" type="xs:nonNegativeInteger" default="1000"><xs:annotation><xs:documentation>Length of the feedback in ms. If feedback is false but a length is present, the specified time will be the time between two trials.</xs:documentation></xs:annotation></xs:attribute>
<xs:attribute name="name" type="xs:string" use="required"><xs:annotation><xs:documentation>Name of the plugin to be loaded</xs:documentation></xs:annotation></xs:attribute>
<xs:attribute name="length" type="xs:nonNegativeInteger"><xs:annotation><xs:documentation>Length of the movie in ms, if not specified, the system will wait for the movie to end and then continue.</xs:documentation></xs:annotation></xs:attribute>
<xs:attribute name="length" type="xs:nonNegativeInteger"><xs:annotation><xs:documentation>Length of the movie in ms</xs:documentation></xs:annotation></xs:attribute>
<xs:attribute name="action" use="optional" default="click"><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="click"><xs:annotation><xs:documentation>Has the same effect as clicking the widget</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="up"><xs:annotation><xs:documentation>Has the same effect as clicking the up-button</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="down"><xs:annotation><xs:documentation>Has the same effect as clicking the up-button</xs:documentation></xs:annotation></xs:enumeration></xs:restriction></xs:simpleType></xs:attribute>
<xs:attribute name="modifier"><xs:annotation><xs:documentation>Dead key to be used together with the shortcut</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="Ctrl"/><xs:enumeration value="Alt"/><xs:enumeration value="Shift"/></xs:restriction></xs:simpleType></xs:attribute>
<xs:attribute name="hex" type="xs:boolean"><xs:annotation><xs:documentation>If true, parses the shortcut as a hexadecimal number. See the Key enum in qtnamespace.h for known values</xs:documentation></xs:annotation></xs:attribute>
<xs:attribute name="row" type="xs:int"><xs:annotation><xs:documentation>Row in the grid. Is the same as y, but should not be used together with y</xs:documentation></xs:annotation></xs:attribute>
<xs:attribute name="col" type="xs:positiveInteger"><xs:annotation><xs:documentation>Column in the grid. Is the same as x, but should not be used together with x</xs:documentation></xs:annotation></xs:attribute>
<xs:attribute name="expression" type="apex:mathexpression"><xs:annotation><xs:documentation>Expression to be evaluated. Expressions must be in the format a*x+b, where x is the parameter value and a and b are floats</xs:documentation></xs:annotation></xs:attribute>
<xs:attribute name="row" type="xs:positiveInteger" use="required"><xs:annotation><xs:documentation>Row in the matrix</xs:documentation></xs:annotation></xs:attribute>
<xs:attribute name="col" type="xs:positiveInteger" use="required"><xs:annotation><xs:documentation>Column in the matrix</xs:documentation></xs:annotation></xs:attribute>
Stretch factor for the columns: a list of integers separated by comma's. If specified, there should be as much integers as columns. The width of the columns will be proportional to the numbers. E.g. if width=2 and columnstretch="1,2", the second column will be twice as wide as the first. columnstretch="2,4" would have the same effect.
<xs:attribute name="columnstretch" type="apex:stretchregexp" use="optional"><xs:annotation><xs:documentation>Stretch factor for the columns: a list of integers separated by comma's. If specified, there should be as much integers as columns. The width of the columns will be proportional to the numbers. E.g. if width=2 and columnstretch="1,2", the second column will be twice as wide as the first. columnstretch="2,4" would have the same effect.</xs:documentation></xs:annotation></xs:attribute>
Stretch factor for the rows: a list of integers separated by comma's. If specified, there should be as much integers as rows. The width of the rows will be proportional to the numbers. E.g. if height=3 and rowstretch="1,2,1", the second row will be twice as wide as the first and thirs. rowstretch="2,4,2" would have the same effect.
<xs:attribute name="rowstretch" type="apex:stretchregexp" use="optional"><xs:annotation><xs:documentation>Stretch factor for the rows: a list of integers separated by comma's. If specified, there should be as much integers as rows. The width of the rows will be proportional to the numbers. E.g. if height=3 and rowstretch="1,2,1", the second row will be twice as wide as the first and thirs. rowstretch="2,4,2" would have the same effect.</xs:documentation></xs:annotation></xs:attribute>
<xs:attribute name="description" type="xs:string" use="optional"><xs:annotation><xs:documentation>Description of the screen - for your own reference</xs:documentation></xs:annotation></xs:attribute>
<xs:attribute name="source" use="required"><xs:simpleType><xs:annotation><xs:documentation>If inline, the ECMAScript function must be defined inside this element, if file, the filename must be given</xs:documentation></xs:annotation><xs:restriction base="xs:string"><xs:enumeration value="inline"/><xs:enumeration value="file"/></xs:restriction></xs:simpleType></xs:attribute>
<xs:attribute name="mode" default="name"><xs:annotation><xs:documentation>Method of matching the given id.</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="name"><xs:annotation><xs:documentation>Exactly match the given ID</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="regexp"><xs:annotation><xs:documentation>Use regular expression to match an ID</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="wildcard"><xs:annotation><xs:documentation>Use wildcards (*,?,[]) to match an ID</xs:documentation></xs:annotation></xs:enumeration></xs:restriction></xs:simpleType></xs:attribute>
XPath expression defining the elementto be modified. The user will be alerted if theexpression yields no results. If the expressionyields more than one result, every element foundwill be modified. The modification takes placebefore validation, so the resulting document willnot be used unless valid. Modifications will bereported in the results file.If expression is not present, the user input will be saved to the results file, butnothing will be modified.
<xs:attribute name="expression" type="xs:string" use="optional"><xs:annotation><xs:documentation>XPath expression defining the element to be modified. The user will be alerted if the expression yields no results. If the expression yields more than one result, every element found will be modified. The modification takes place before validation, so the resulting document will not be used unless valid. Modifications will be reported in the results file. If expression is not present, the user input will be saved to the results file, but nothing will be modified.</xs:documentation></xs:annotation></xs:attribute>
<xs:attribute name="type" use="required"><xs:annotation><xs:documentation>Data type of the element to be modified. It impacts the dialog box presented to the user and prevents input of data of the wrong data type.</xs:documentation></xs:annotation><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="int"><xs:annotation><xs:documentation>An integer number</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="double"><xs:annotation><xs:documentation>A number</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="string"><xs:annotation><xs:documentation>Some text</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="bool"><xs:annotation><xs:documentation>Boolean value "true" or "false"</xs:documentation></xs:annotation></xs:enumeration><xs:enumeration value="combo"><xs:annotation><xs:documentation>Value from list. The list of options should be specified in default, separated by |</xs:documentation></xs:annotation></xs:enumeration></xs:restriction></xs:simpleType></xs:attribute>
<xs:attribute name="description" type="xs:string" use="required"><xs:annotation><xs:documentation>Description of this entry, will be shown to the user.</xs:documentation></xs:annotation></xs:attribute>
<xs:attribute name="default" type="xs:string" use="required"><xs:annotation><xs:documentation>Default value for the replacement.</xs:documentation></xs:annotation></xs:attribute>
<xs:attribute name="constraint" type="xs:string"><xs:annotation><xs:documentation>Regex against which the value should match.</xs:documentation></xs:annotation></xs:attribute>
<xs:attribute name="version" use="optional" type="xs:positiveInteger"><xs:annotation><xs:documentation>Apex will only load experiment files with the correct version attribute. Conversion scripts will be provided to convert to newer versions.</xs:documentation></xs:annotation></xs:attribute>
Target loudness value for calibration of thisparameter using this stimulus. Mostly in dBSPL. The aim ofthe calibration is that this stimulus is presented at thisloudness in dBSPL to the subject.
<xs:attribute name="targetloudness" type="xs:double" use="required"><xs:annotation><xs:documentation>Target loudness value for calibration of this parameter using this stimulus. Mostly in dBSPL. The aim of the calibration is that this stimulus is presented at this loudness in dBSPL to the subject.</xs:documentation></xs:annotation></xs:attribute>
<xs:attribute name="number" type="xs:positiveInteger" use="required"><xs:annotation><xs:documentation>Time slot of the stimulus</xs:documentation></xs:annotation></xs:attribute>
<xs:attribute name="element" type="xs:string" use="required"><xs:annotation><xs:documentation>Name of the screen element corresponding to the time slot</xs:documentation></xs:annotation></xs:attribute>
If select is defined, the stimulus will onlybe presented in the intervals enumerated in the selectattribute. e.g.: if select="2,3", the stimulus will neveroccur in interval 1, but only in 2 and 3
<xs:attribute name="select" type="apex:selectChoicesType"><xs:annotation><xs:documentation>If select is defined, the stimulus will only be presented in the intervals enumerated in the select attribute. e.g.: if select="2,3", the stimulus will never occur in interval 1, but only in 2 and 3</xs:documentation></xs:annotation></xs:attribute>
If this attribute is specified, this stepsize will only be used then adapting in the up/down direction.When specifying direction for a certain begin value, it needs to be specified for both up and down.
<xs:attribute name="direction" type="apex:direction" use="optional"><xs:annotation><xs:documentation>If this attribute is specified, this stepsize will only be used then adapting in the up/down direction. When specifying direction for a certain begin value, it needs to be specified for both up and down.</xs:documentation></xs:annotation></xs:attribute>
Used to specify a single channel to apply gain to,instead of applying it to all channels at once.For example, for an amplifier having two channels, these are set independently by using <gain id="ch0" channel="0">-3.00</gain><gain id="ch1" channel="1">-6.00</gain> Channels are zero based, ie the first channel is 0, thesecond 1 and so on.
<xs:attribute name="channel" type="xs:nonNegativeInteger"><xs:annotation><xs:documentation>Used to specify a single channel to apply gain to, instead of applying it to all channels at once. For example, for an amplifier having two channels, these are set independently by using<gain id="ch0" channel="0">-3.00</gain><gain id="ch1" channel="1">-6.00</gain>Channels are zero based, ie the first channel is 0, the second 1 and so on.</xs:documentation></xs:annotation></xs:attribute>
<xs:attributeGroup name="gridElementAttributes"><xs:attribute name="x" type="xs:int"/><xs:attribute name="y" type="xs:positiveInteger"/><xs:attribute name="row" type="xs:int"><xs:annotation><xs:documentation>Row in the grid. Is the same as y, but should not be used together with y</xs:documentation></xs:annotation></xs:attribute><xs:attribute name="col" type="xs:positiveInteger"><xs:annotation><xs:documentation>Column in the grid. Is the same as x, but should not be used together with x</xs:documentation></xs:annotation></xs:attribute></xs:attributeGroup>