Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com), Millisecond
Last Modified: December 03, 2025 by K. Borchert (katjab@millisecond.com), Millisecond
Script Copyright © Millisecond Software, LLC
This script implements the Rapid Visual Information Processing Task (RVIP), a measures of processing speed and performance. The implemented procedure is based on Wesnes & Wartburton (1984) and adapted to run as part of the Cognitive Demand Battery (CDB) (Kennedy et al, 2008).
5 minutes.
A participant is presented with a series of digits (1-9) on a computer screen. The presentation time is 100 digits/min (or 1digit/600ms). The participant's task is to press a response key (here: Spacebar) as soon as they detect a series of three consecutive odd or three consecutive even digits. By default, the task runs for 5 minutes and generates a unique sequence of digits with roughly 8% targets and target distances from 5-20.
(1) Test:
This customized script calculates the number of digits for the test sequence based on
parameters.totalTaskDurationMin.
If parameters.UseExistingSequence = false:
The script attempts to generate a unique digit sequence for the test.
The targetProportion is set around 0.8 and the distances btw. targets is btw. 5-20
(more information about the algorithm see below)
If parameters.UseExistingSequence = true:
The script cut the original RVIP test sequence according to the calculated number of digits
TrialSequence:
A new digit is presented every 600ms.
The response to the last digit of a target sequence is scored as a Hit if the participant reacts
within 1500ms (target response window described in Wesnes & Wartburton (1984), can be changed by
experimenter in this script) of onset of the last digit of a target sequence.
Any response that occurs later is scored as a False Alarm.
to edit instructions, go to section Editable Instructions
File Name: cdb_rvip_summary*.iqdat
| Name | Description |
|---|---|
| inquisit.version | Inquisit version number |
| computer.platform | Device platform: win | mac |ios | android |
| startdate | Date script was run |
| startTime | Time the session was run |
| subjectId | Participant ID |
| groupId | Group number |
| sessionId | Session number |
| elapsedTime | Session duration in ms |
| completed | 0 = Test was not completed 1 = Test was completed |
Parameter |
|
| taskDurationMin | The set task duration in minutes |
| propCorrect | Proportion correct target detection (test) |
| sumTargets | Counts how many targets have been presented (test) |
| sumHit | Counts the number of Hits (test) |
| sumFA | Counts the number of False Alarms (test) |
| meanRTHit | Determines the mean hit RT (in ms) - measured from onset of last target digit (test only) |
| stdHit | Determines standard deviation of hit RTs (test only) |
| medianRTHit | Determines the median hit RT (in ms) - measured from onset of last target digit (test only) |
Test Digit Sequence Information |
|
| flag | 0 = a unique sequence could be generated 1 = a unique sequence could NOT be generated within 500 attempts and an emergency sequence from an existing pool was used instead (for totalTaskDurations_inmin = 3, 6 or 9 with targetProp = 0.08 and presentationtime = 600ms) 2 = a unique sequence could NOT be generated within 500 attempts and the original RVIP sequence (see list.digitsequence in this script) was shortened for the requested totalTaskDurations_inmin. NA = no unique sequence was requested |
| sequenceLength | The length of the test digit sequence |
| propTargets | Proportion of targets in target sequence as calculated by (number of targets/number of digits) |
| meanTargetDistance | The mean digit distances btw. target sequences |
| targetPositions | The target positions in the sequence (target position = position of last digit of the trio) |
| sequence | The digit sequence used for test if the original RVIP sequence was simply shortened, you will find additional "NA" values in your datafile |
File Name: cdb_rvip.iqdat
| Name | Description |
|---|---|
| build | Inquisit version number |
| computer.platform | Device platform: win | mac |ios | android |
| date | Date the session was run |
| time | Time the session was run |
| subject | Participant ID |
| group | Group number |
| session | Session number |
| blockCode | Name of the current block |
| blockNum | Number of the current block |
| trialCode | Name of the current trial |
| trialNum | Number of the current trial |
Parameter |
|
| taskDurationMin | The set task duration in minutes |
| focusDigit3 | The three digits that need to be checked to see if they are all odd or all even focusDigit2 focusDigit1 |
| digit | The digit presented in the current trial |
| btwTargetsCounter | Counts the number of digits between target trials |
| target | 0 = no target presented 1 = target presented (the third digit in a row of either all odd or all even digits) while the current digit may not be a target, the trial might still accept target responses if the previous target is still active |
| targetStartTime | The script elapsed time (in ms) the last target was presented |
| startTrialTime | The script elapsed time the current trial started (in ms) |
| targetResponseWindow | Time window during which a target is active (here: up until 1500ms after onset of a target, consistent with Wesnes & Wartburton (1984)) |
| targetResponseEndTime | Starttrial of a target-trial + interval (in ms) |
| targetActive | 0 = target not active 1 = target still active (even though the currently presented digit itself might not be a target) |
| response | The participant's response (e.g. scancode of response key) 57 = spacebar 0 = no response |
| correct | The correctness of the response (1 = correct; 0 = incorrect) |
| responseTime | The script elapsed time when a spacebar response is made (in ms) |
| rtHit | The response latency (in ms) for the current Hit => calculated as difference between responseTime-targetstarttime => thus measures the time it took to hit spacebar after a target was presented (latency measured from onset of last target) |
| latency | The trial latency (in ms) (for the current trial) measures the response time of hitting the spacebar measured from onset of current digit (if no response, this variable stores the trial duration) |
| hit | 1 = spacebar press was registered during the current trial while a target was still active 0 = no spacebar press was registered during the current trial while a target was still active "" (empty): no active target during the current trial |
| fa | 1 = spacebar press was registered during the current trial while no target was active 0 = no spacebar press was registered during the current trial while no target was active "" (empty): the target was still active during the current trial |
| sumTargets | Counts how many targets have been presented |
| sumHit | Counts the number of Hits |
| sumFA | Counts the number of False Alarms |
Test Digit Sequence Information |
|
| flag | 0 = a unique sequence could be generated 1 = a unique sequence could NOT be generated within 500 attempts and an emergency sequence from an existing pool was used instead (for totalTaskDurations_inmin = 3, 6 or 9 with targetProp = 0.08 and presentationtime = 600ms) 2 = a unique sequence could NOT be generated within 500 attempts and the original RVIP sequence (see list.digitsequence in this script) was shortened for the requested totalTaskDurations_inmin. NA = no unique sequence was requested |
| sequenceLength | The length of the test digit sequence |
| propTargets | Proportion of targets in target sequence as calculated by (number of targets/number of digits) |
| meanTargetDistance | The mean digit distances btw. target sequences |
| targetPositions | The target positions in the sequence (target position = position of last digit of the trio) |
| sequence | The digit sequence used for test if the original RVIP sequence was simply shortened, you will find additional "NA" values in your datafile |
The procedure can be adjusted by setting the following parameters.
| Name | Description | Default |
|---|---|---|
Duration Parameters |
||
| taskDurationMin | The task duration in minutes | 5 |
| getReadyDuration | The duration (in ms) of the get-ready-trial | 2000 |
| targetResponseWindow | The time window (in ms) during which a target is active (here: up until 1500ms after onset of a target, consistent with Wesnes & Wartburton (1984)) | 1500 |
| presentationTime | How long (in ms) a stimulus is presented before the next one replaces it (= frequency of showing a stimulus) (here: 100 digits/ 1min => 600ms per stimulus, consistent with Wesnes & Wartburton (1984).) | 600 |
Sizing Parameters |
||
| digitHeight | Controls the size of the digits (percentage of screen height) | 10% |
Sequence Generation |
||
| useExistingSequence | True = the script uses the current default sequence and simply runs the number of digits calculated to be appropriate for the current set totalTaskDuration false = the script generates a unique sequence with parameters.propTarget | false |
| propTargets | The target targetProportion used when generating a unique sequence ( final sequence should be 0.075 <= propTargets <= 0.085) | 0.08 |
Debugging |
||
| debugmode | True (1): the script is run in debugmode (target alerts are presented on screen) false (0): the script is run in test mode (default) | 0 |