Skip to content

Rapid serial stream

Flash a stream of stimuli in quick succession and collect one judgement once the stream ends.

Use this for RSVP-style paradigms: target detection in fast streams, attentional blink, or any task where items must appear one at a time at a fixed brief duration, back to back. Writing the per-screen timing lists out by hand gets error prone as streams grow, and one missing or mistyped entry silently changes which screens are timed; the repeat syntax keeps the lists exact. Reach for a different recipe when you need a timed response to a single brief stimulus, which is a fixation-plus-stimulus or masked-priming design instead.

typestimFormatstim1stim2stim3stim4stim5stim6presTimeISIkeyboardkey
testwordKTXRMB100*60*5y ny
testwordFJPWSD100*60*5y nn
testwordQXHLNV100*60*5y ny
testwordGCRTMP100*60*5y nn
testwordBDKWXS100*60*5y ny
testwordLHVNFJ100*60*5y nn

ISI creates the stream: 0*5 expands to five breaks of 0 ms, so the six letters in stim1 to stim6 land on six sequential screens that follow each other immediately, with no blank between items. An ISI of 0 is a real break, unlike an empty entry, which would merge the neighbouring stimuli onto one screen.

presTime times each screen: 100*6 expands to six 100 ms durations, a 10 items per second stream. Every screen except the last needs a positive duration or the sequence stops there, and non-numeric entries are dropped without warning, shifting every later duration one screen earlier; the repeat syntax avoids both traps. After the last letter’s 100 ms it is hidden, and because the response window is left at its default, the window opened at the last screen and simply stays open, so the display goes blank and waits for the answer.

That default also means presses during the earlier screens do not count: the window only opens when the final stimulus screen appears. The participant reports whether the target letter X was in the stream with keyboard keys y n, and key scores y on target-present rows and n on target-absent rows.

The stimuli are word format via stimFormat, so each cell is rendered as text; note that word cells render as HTML, so markup in a cell is interpreted rather than displayed.

  • Slow or speed the stream by changing the repeated value: presTime of 150*6 gives a 6.7 items per second stream.
  • Insert a blank between items with ISI set to 50*5; each gap shows nothing unless you add a mask, which then appears during every gap.
  • Accept responses during the stream itself with responseWindow set to allTrial, which opens the window at trial start.
  • Lengthen the stream with more stimN slots; slots up to 12 always work, and the timing lists just need their repeat counts raised to match.