SOA manipulation
Vary the interval between prime onset and target onset across conditions using per-screen presTime lists.
When to use it
Section titled “When to use it”Priming and cueing designs often manipulate stimulus-onset asynchrony (SOA): how long after the prime appears the target follows. Writing a single duration into presTime cannot do this, because it only times one screen and says nothing about when the next stimulus starts. The clean construction is a two-screen trial where the first entry of a per-screen presTime list is the SOA itself. If you also need a visual mask between prime and target, start from the Masked priming recipe instead.
Trial file
Section titled “Trial file”| type | stimFormat | stim1 | stim2 | presTime | ISI | responseWindow | keyboard | key | condition1 | condition2 |
|---|---|---|---|---|---|---|---|---|---|---|
| test | word | DOCTOR | NURSE | 100;500 | 0 | 2000 | f j | f | soa100 | related |
| test | word | TABLE | NURSE | 100;500 | 0 | 2000 | f j | f | soa100 | unrelated |
| test | word | BREAD | BUTTER | 200;500 | 0 | 2000 | f j | j | soa200 | related |
| test | word | CLOUD | BUTTER | 200;500 | 0 | 2000 | f j | j | soa200 | unrelated |
| test | word | KITTEN | DOG | 400;500 | 0 | 2000 | f j | f | soa400 | related |
| test | word | PENCIL | DOG | 400;500 | 0 | 2000 | f j | f | soa400 | unrelated |
type,stimFormat,stim1,stim2,presTime,ISI,responseWindow,keyboard,key,condition1,condition2 test,word,DOCTOR,NURSE,100;500,0,2000,f j,f,soa100,related test,word,TABLE,NURSE,100;500,0,2000,f j,f,soa100,unrelated test,word,BREAD,BUTTER,200;500,0,2000,f j,j,soa200,related test,word,CLOUD,BUTTER,200;500,0,2000,f j,j,soa200,unrelated test,word,KITTEN,DOG,400;500,0,2000,f j,f,soa400,related test,word,PENCIL,DOG,400;500,0,2000,f j,f,soa400,unrelated
Participants judge whether the target (the second word) names a living thing, F for living and J for not.
How it works
Section titled “How it works”ISI set to 0 is what makes this a two-screen trial: stim1 (the prime) takes screen 1, and the single entry pushes stim2 (the target) onto screen 2. A 0 is a real break with a zero-millisecond gap, so the target replaces the prime immediately. That is the whole trick: with no gap, the SOA equals the prime’s display time, and the first entry of the presTime list sets it per row. 100;500 gives a 100 ms SOA, 400;500 a 400 ms one, each tagged in condition1 for analysis; condition1 and condition2 are pure metadata, echoed into every saved results row.
The second presTime entry keeps the target up for 500 ms. The numeric responseWindow of 2000 opens at target onset and closes 2000 ms later, so responses arriving after the target has been hidden still count, and reaction time is measured from target onset, which is exactly where an SOA design wants the clock to start. A trial with no response records timeout.
Two presTime rules keep the file honest. First, entries that are not numbers are dropped silently, shifting every later duration one screen earlier, so a stray typo in the first entry would quietly turn your SOA into the target duration. Second, you do not have to trust the nominal values: display times are quantised to screen refreshes, and test trials record the per-screen times actually shown in the presTime_ms results column, so the realised SOA of every trial can be checked in the results.
Variations
Section titled “Variations”- Put the manipulation in the gap instead: keep
presTimeat100;500and varyISI(0,100,300); the SOA is then the firstpresTimeentry plus theISIgap, with a blank screen between prime and target. - Draw the SOA at random per row with a
presTimefirst entry of100|200|400; the draw happens once per row when the experiment loads, not per presentation. - Tighten or relax the deadline by changing the
responseWindowtimeout; recordedtimeoutresponses show when it is too strict. - For a masked variant, switch to image stimuli and add a
mask; the mask never loads on word trials (see the Masked priming recipe).