Millisecond Forums

Example for Trait Adjective Memory Study

https://forums.millisecond.com/Topic41336.aspx

By Wasabi8888 - 7/11/2025

Hi Dave,

We’re hoping to replicate a study with the following procedure:
Materials
Four lists of trait adjectives were created: three target lists of 24 words each to be presented during the learning phase, and one distractor list of 72 words to be used for recognition testing. Each of the three target lists constituted a block within a continuous 72-item study list, bounded by two primacy and two recency buffers. Words were selected from a pool of normalised personality trait adjectives (Anderson, 1968). Trait words were all moderate to highly meaningful with meaningfulness ratings ranging from 326 to 386 (M358). The three target lists were equated for word length, (i.e., mean number of letters8) and valence, such that each list was composed of half positive and half negative traits. In Ander- son’s (1968) list, words were ordered according to their likeability ratings. In the present study a word was considered positive if it was one of the first 252 words listed in the list and negative if it had a ranking between 253 and 555. The mean ranking for positive words was 97 and the mean ranking for negative words was 391. The distrac- tor list was matched on the same variables to the group of three target lists.
Procedure
Participants were assessed individually, and gave informed consent before participating in experimental procedures. There were two parts to the study, an incidental learning phase and an immediate recognition memory test phase. During the learning phase, the participants’ task was to answer a question about each of the target words. Each list was encoded under one of three condi- tions: SR, semantic, and structural encoding. In the SR encoding task participants judged whether trait adjectives were self-descriptive by answering the question ‘‘Does this word describe you?’’ In the semantic encoding task participants made valence judgements on a semantic dimension, answering the question ‘‘Is the dictionary defini- tion of this word positive?’’ Under the structural encoding task participants were asked, ‘‘Is this word typed in upper case letters?’’
Participants were presented with 72 words, consisting of the three target lists blocked by encoding task. Presentation was blocked by condition for two reasons: First, the constant switching between tasks might adversely affect performance in older people and second, a pilot study suggested that carry-over effects might occur in mixed lists, particularly in older adults. However, order of encoding tasks was counterbalanced so that each task appeared in each ordinal position an equal number of times, and across participants, target lists appeared equally often in each of the three conditions. Word order was randomised within each list, and each participant received a different random order.
Participants were seated in front of a computer where the procedure was explained to them. On each trial one of the questions defining the learning task (e.g. ‘‘Does this word describe you?’’) was presented on the computer screen for 2 s, after which an adjective appeared for 4 s, and partici- pants made a yes/no response by pressing one of two keys on the computer keyboard. A blank screen was then displayed for 1 s and the next trial appeared automatically.
Following the study phase, there was a 2- minute interval in which people engaged in an unrelated distractor task, and then a yesno recognition memory test was given. The recognition test consisted of 144 words, half targets and half distractors, randomly mixed (i.e., not blocked by condition), which were presented one at a time on the computer screen. Participants indicated whether each word was old or new. Each item remained on the screen until participants pressed one of two keys to indicate if they recognised the word as one that had been previously presented.

Would you mind providing a simple example of how this might be implemented?

Thanks very much for your help!

By Dave - 7/11/2025

Wasabi8888 - 7/11/2025
Hi Dave,

We’re hoping to replicate a study with the following procedure:
Materials
Four lists of trait adjectives were created: three target lists of 24 words each to be presented during the learning phase, and one distractor list of 72 words to be used for recognition testing. Each of the three target lists constituted a block within a continuous 72-item study list, bounded by two primacy and two recency buffers. Words were selected from a pool of normalised personality trait adjectives (Anderson, 1968). Trait words were all moderate to highly meaningful with meaningfulness ratings ranging from 326 to 386 (M358). The three target lists were equated for word length, (i.e., mean number of letters8) and valence, such that each list was composed of half positive and half negative traits. In Ander- son’s (1968) list, words were ordered according to their likeability ratings. In the present study a word was considered positive if it was one of the first 252 words listed in the list and negative if it had a ranking between 253 and 555. The mean ranking for positive words was 97 and the mean ranking for negative words was 391. The distrac- tor list was matched on the same variables to the group of three target lists.
Procedure
Participants were assessed individually, and gave informed consent before participating in experimental procedures. There were two parts to the study, an incidental learning phase and an immediate recognition memory test phase. During the learning phase, the participants’ task was to answer a question about each of the target words. Each list was encoded under one of three condi- tions: SR, semantic, and structural encoding. In the SR encoding task participants judged whether trait adjectives were self-descriptive by answering the question ‘‘Does this word describe you?’’ In the semantic encoding task participants made valence judgements on a semantic dimension, answering the question ‘‘Is the dictionary defini- tion of this word positive?’’ Under the structural encoding task participants were asked, ‘‘Is this word typed in upper case letters?’’
Participants were presented with 72 words, consisting of the three target lists blocked by encoding task. Presentation was blocked by condition for two reasons: First, the constant switching between tasks might adversely affect performance in older people and second, a pilot study suggested that carry-over effects might occur in mixed lists, particularly in older adults. However, order of encoding tasks was counterbalanced so that each task appeared in each ordinal position an equal number of times, and across participants, target lists appeared equally often in each of the three conditions. Word order was randomised within each list, and each participant received a different random order.
Participants were seated in front of a computer where the procedure was explained to them. On each trial one of the questions defining the learning task (e.g. ‘‘Does this word describe you?’’) was presented on the computer screen for 2 s, after which an adjective appeared for 4 s, and partici- pants made a yes/no response by pressing one of two keys on the computer keyboard. A blank screen was then displayed for 1 s and the next trial appeared automatically.
Following the study phase, there was a 2- minute interval in which people engaged in an unrelated distractor task, and then a yesno recognition memory test was given. The recognition test consisted of 144 words, half targets and half distractors, randomly mixed (i.e., not blocked by condition), which were presented one at a time on the computer screen. Participants indicated whether each word was old or new. Each item remained on the screen until participants pressed one of two keys to indicate if they recognised the word as one that had been previously presented.

Would you mind providing a simple example of how this might be implemented?

Thanks very much for your help!


Please break down what you don't know how to implement, then I can point you to relevant documentation, etc.

Pasting text from an article broadly describing a procedure is not useful.
By Wasabi8888 - 7/11/2025

Hi Dave,

I have a few questions about implementing the task and would really appreciate your advice:

Random Allocation of Target Lists:
What’s the best way to randomly assign the three target word lists to the different block conditions (SR, semantic, and structural encoding)? 

Primacy and Recency Buffers:
As each of the three target lists should be embedded within a continuous 72-item study list (bounded by two primacy and two recency buffers), how would you recommend assigning these buffers if the block order is randomised? Would it make more sense to have separate scripts that manually decide the order of block conditions, then insert the buffers accordingly?

Trial Setup for Valence Conditions:
Each target list includes both positive and negative adjectives. Do you think I should set up separate positive and negative trials, like in the Emotional Memory Task?

<trial phaseAImagePresentationNegative>
/ onTrialBegin = {
values.valence = "negative";
values.trialCount++;
values.itemNumber = list.negativeImagesPhaseA.nextValue;

values.valence1 = 1;
values.valence2 = 2;
values.valence3 = 3;
values.valence4 = 4;
values.valence5 = 5;
values.valence6 = 6;
values.valence7 = 7;
values.valence8 = 8;
values.valence9 = 9;
values.selectedRsp = 0;

values.rt = "";
values.startTime = "";    
}
/ stimulusFrames = [1 = clearScreen, negative]
/ onTrialEnd = {
    values.startTime = script.elapsedTime;
    values.image = picture.negative.currentItem;
    values.itemNumber = picture.negative.currentIndex;
}    
/ branch = {
    return trial.phaseARating;
}
/ recordData = false
/ trialDuration = parameters.imagePresentationDurationMs
</trial>

Note: trial.phaseA_imagePresentation_neutral
prepares each trial by resetting crucial values and presenting the next neutral picture
<trial phaseAImagePresentationNeutral>
/ onTrialBegin = {
values.valence = "neutral";
values.trialCount++;
values.itemNumber = list.neutralImagesPhaseA.nextValue;
values.selectedRsp = 0;

values.rt = "";
values.startTime = "";    
}
/ stimulusFrames = [1 = clearScreen, neutral]
/ onTrialEnd = {
    values.startTime = script.elapsedTime;
    values.image = picture.neutral.currentItem;
    values.itemNumber = picture.neutral.currentIndex;
}    
/ branch = {
    return trial.phaseARating;
}
/ recordData = false
/ trialDuration = parameters.imagePresentationDurationMs
</trial>

Note: trial.phaseA_imagePresentation_positive
prepares each trial by resetting crucial values and presenting the next positive picture
<trial phaseAImagePresentationPositive>
/ onTrialBegin = {
values.valence = "positive";
values.trialCount++;
values.itemNumber = list.positiveImagesPhaseA.nextValue;

values.valence1 = 1;
values.valence2 = 2;
values.valence3 = 3;
values.valence4 = 4;
values.valence5 = 5;
values.valence6 = 6;
values.valence7 = 7;
values.valence8 = 8;
values.valence9 = 9;
values.selectedRsp = 0;

values.rt = "";
values.startTime = "";    
}
/ stimulusFrames = [1 = clearScreen, positive]
/ onTrialEnd = {
    values.startTime = script.elapsedTime;
    values.image = picture.positive.currentItem;
    values.itemNumber = picture.positive.currentIndex;
}    
/ branch = {
    return trial.phaseARating;
}
/ recordData = false
/ trialDuration = parameters.imagePresentationDurationMs
</trial>

<block phaseA>
/ preInstructions = (phaseAIntro)
/ skip = {
    return (parameters.phaseSetting == 2);
}
/ onBlockBegin = {
    values.phase = "A";
    values.presentationPhase = "A";
    values.trialCount = 0;
    values.corrRsp = "";
}
/ trials = [
    1 = startiti;
    2-46 = noreplace(phaseAImagePresentationNegative, phaseAImagePresentationNeutral, phaseAImagePresentationPositive);
]
</block>
By Dave - 7/11/2025

Wasabi8888 - 7/11/2025
Hi Dave,

I have a few questions about implementing the task and would really appreciate your advice:

Random Allocation of Target Lists:
What’s the best way to randomly assign the three target word lists to the different block conditions (SR, semantic, and structural encoding)? 

Primacy and Recency Buffers:
As each of the three target lists should be embedded within a continuous 72-item study list (bounded by two primacy and two recency buffers), how would you recommend assigning these buffers if the block order is randomised? Would it make more sense to have separate scripts that manually decide the order of block conditions, then insert the buffers accordingly?

Trial Setup for Valence Conditions:
Each target list includes both positive and negative adjectives. Do you think I should set up separate positive and negative trials, like in the Emotional Memory Task?

<trial phaseAImagePresentationNegative>
/ onTrialBegin = {
values.valence = "negative";
values.trialCount++;
values.itemNumber = list.negativeImagesPhaseA.nextValue;

values.valence1 = 1;
values.valence2 = 2;
values.valence3 = 3;
values.valence4 = 4;
values.valence5 = 5;
values.valence6 = 6;
values.valence7 = 7;
values.valence8 = 8;
values.valence9 = 9;
values.selectedRsp = 0;

values.rt = "";
values.startTime = "";    
}
/ stimulusFrames = [1 = clearScreen, negative]
/ onTrialEnd = {
    values.startTime = script.elapsedTime;
    values.image = picture.negative.currentItem;
    values.itemNumber = picture.negative.currentIndex;
}    
/ branch = {
    return trial.phaseARating;
}
/ recordData = false
/ trialDuration = parameters.imagePresentationDurationMs
</trial>

Note: trial.phaseA_imagePresentation_neutral
prepares each trial by resetting crucial values and presenting the next neutral picture
<trial phaseAImagePresentationNeutral>
/ onTrialBegin = {
values.valence = "neutral";
values.trialCount++;
values.itemNumber = list.neutralImagesPhaseA.nextValue;
values.selectedRsp = 0;

values.rt = "";
values.startTime = "";    
}
/ stimulusFrames = [1 = clearScreen, neutral]
/ onTrialEnd = {
    values.startTime = script.elapsedTime;
    values.image = picture.neutral.currentItem;
    values.itemNumber = picture.neutral.currentIndex;
}    
/ branch = {
    return trial.phaseARating;
}
/ recordData = false
/ trialDuration = parameters.imagePresentationDurationMs
</trial>

Note: trial.phaseA_imagePresentation_positive
prepares each trial by resetting crucial values and presenting the next positive picture
<trial phaseAImagePresentationPositive>
/ onTrialBegin = {
values.valence = "positive";
values.trialCount++;
values.itemNumber = list.positiveImagesPhaseA.nextValue;

values.valence1 = 1;
values.valence2 = 2;
values.valence3 = 3;
values.valence4 = 4;
values.valence5 = 5;
values.valence6 = 6;
values.valence7 = 7;
values.valence8 = 8;
values.valence9 = 9;
values.selectedRsp = 0;

values.rt = "";
values.startTime = "";    
}
/ stimulusFrames = [1 = clearScreen, positive]
/ onTrialEnd = {
    values.startTime = script.elapsedTime;
    values.image = picture.positive.currentItem;
    values.itemNumber = picture.positive.currentIndex;
}    
/ branch = {
    return trial.phaseARating;
}
/ recordData = false
/ trialDuration = parameters.imagePresentationDurationMs
</trial>

<block phaseA>
/ preInstructions = (phaseAIntro)
/ skip = {
    return (parameters.phaseSetting == 2);
}
/ onBlockBegin = {
    values.phase = "A";
    values.presentationPhase = "A";
    values.trialCount = 0;
    values.corrRsp = "";
}
/ trials = [
    1 = startiti;
    2-46 = noreplace(phaseAImagePresentationNegative, phaseAImagePresentationNeutral, phaseAImagePresentationPositive);
]
</block>

> What’s the best way to randomly assign the three target word lists to the different block conditions (SR, semantic, and structural encoding)?

There is no one best way. If you want to achieve "across participants, target lists appeared equally often in each of the three conditions" as in the original study, you need to hardcode assignments anyway, not assign lists randomly to encoding condition. Combined with the counterbalancing of encoding conditions (below), that'd result in a large number of conditions then.

> Primacy and Recency Buffers:
> As each of the three target lists should be embedded within a continuous 72-item study list (bounded by two primacy and two recency buffers), how would you recommend assigning these > buffers if the block order is randomised? Would it make more sense to have separate scripts that manually decide the order of block conditions, then insert the buffers accordingly?

There's no explanation what exactly the authors mean by "primacy and recency buffers" and how those functioned in the study, so this question isn't answerable. Also, block order, according to the text you pasted in your original post, wasn't randomized in the original study, but counterbalanced (I assume in a Latin Square type fashion).

> Trial Setup for Valence Conditions:
> Each target list includes both positive and negative adjectives. Do you think I should set up separate positive and negative trials, like in the Emotional Memory Task?

Up to your preference.
By Wasabi8888 - 7/11/2025

Hi Dave,

I was wondering if there’s an easy way to implement the counterbalancing of both the three target lists and the three encoding conditions (using a Latin square design). If so, would you mind providing an example? Or would we need to write separate scripts to manually set the order?

Also, just to clarify, my understanding is that the primacy and recency buffers are extra words added to the start and end of the learning list to absorb position effects, since participants tend to remember the first and last items best. These buffers aren't analyzed, but rather serve to protect the 72 main target items. 
By Dave - 7/11/2025

Wasabi8888 - 7/11/2025
Hi Dave,

I was wondering if there’s an easy way to implement the counterbalancing of both the three target lists and the three encoding conditions (using a Latin square design). If so, would you mind providing an example? Or would we need to write separate scripts to manually set the order?

Also, just to clarify, my understanding is that the primacy and recency buffers are extra words added to the start and end of the learning list to absorb position effects, since participants tend to remember the first and last items best. These buffers aren't analyzed, but rather serve to protect the 72 main target items. 

> I was wondering if there’s an easy way to implement the counterbalancing of both the three target lists and the three encoding conditions (using a Latin square design).

No easy way.

> Also, just to clarify, my understanding is that the primacy and recency buffers are extra words added to the start and end of the learning list to absorb position effects, since participants
> tend to remember the first and last items best. These buffers aren't analyzed, but rather serve to protect the 72 main target items.

Maybe? The description isn't really clear, since throughout only the three 24 item encoding lists (72 items total) are referenced; . In any case, having a two-word block before at the very start (before any of the encoding blocks) and before the recognition phase (after the encoding blocks) is trivial.

By Dave - 7/11/2025

Dave - 7/11/2025
Wasabi8888 - 7/11/2025
Hi Dave,

I was wondering if there’s an easy way to implement the counterbalancing of both the three target lists and the three encoding conditions (using a Latin square design). If so, would you mind providing an example? Or would we need to write separate scripts to manually set the order?

Also, just to clarify, my understanding is that the primacy and recency buffers are extra words added to the start and end of the learning list to absorb position effects, since participants tend to remember the first and last items best. These buffers aren't analyzed, but rather serve to protect the 72 main target items. 

> I was wondering if there’s an easy way to implement the counterbalancing of both the three target lists and the three encoding conditions (using a Latin square design).

No easy way.

> Also, just to clarify, my understanding is that the primacy and recency buffers are extra words added to the start and end of the learning list to absorb position effects, since participants
> tend to remember the first and last items best. These buffers aren't analyzed, but rather serve to protect the 72 main target items.

Maybe? The description isn't really clear, since throughout only the three 24 item encoding lists (72 items total) are referenced; . In any case, having a two-word block before at the very start (before any of the encoding blocks) and before the recognition phase (after the encoding blocks) is trivial.


You have three encoding conditions -- A, B, C -- and three target lists .. 1,2,3. So econding condition A can be paired with either list 1 (A1), list 2 (A2) or list 3 (A3). Same for encoding conditions B and C. Constructing Latin Squares for counterbalancing along the lines of

group 1: A1 B2 C3
group 2: B3 C1 A2
group 3: C2 A3 B1
...


satisfies "order of encoding tasks was counterbalanced so that each task appeared in each ordinal position an equal number of times, and across participants, target lists appeared equally often in each of the three conditions." (I assume the authors constructed and used multiple such squares).
By Wasabi8888 - 7/11/2025

Hi Dave,

Do I need to manually write 9 separate scripts for each group? If possible, would you mind sharing an example script setup for one group? I think that would really help me get started.

Thanks very much!

Group    Block 1    Block 2    Block 3
1    List A – SR    List B – Semantic    List C – Structural
2    List B – SR    List C – Semantic    List A – Structural
3    List C – SR    List A – Semantic    List B – Structural
4    List A – Semantic    List B – Structural    List C – SR
5    List B – Semantic    List C – Structural    List A – SR
6    List C – Semantic    List A – Structural    List B – SR
7    List A – Structural    List B – SR    List C – Semantic
8    List B – Structural    List C – SR    List A – Semantic
9    List C – Structural    List A – SR    List B – Semantic


By Dave - 7/11/2025

Wasabi8888 - 7/11/2025
Hi Dave,

Do I need to manually write 9 separate scripts for each group? If possible, would you mind sharing an example script setup for one group? I think that would really help me get started.

Thanks very much!

Group    Block 1    Block 2    Block 3
1    List A – SR    List B – Semantic    List C – Structural
2    List B – SR    List C – Semantic    List A – Structural
3    List C – SR    List A – Semantic    List B – Structural
4    List A – Semantic    List B – Structural    List C – SR
5    List B – Semantic    List C – Structural    List A – SR
6    List C – Semantic    List A – Structural    List B – SR
7    List A – Structural    List B – SR    List C – Semantic
8    List B – Structural    List C – SR    List A – Semantic
9    List C – Structural    List A – SR    List B – Semantic



You don't need separate scripts at all. If you want separate scripts because you find that easier to handle, by all means, have separate scripts.

And examples you can find plenty already on the forums or in the library. Encoding-recognition or old-new paradigms have been discussed dozens of times. List learning tasks exist in the library.
By Wasabi8888 - 7/11/2025

Hi Dave,

If I don’t need to write separate scripts for each group, how would I implement the Latin Square counterbalancing within a single script?
By Dave - 7/11/2025

Wasabi8888 - 7/11/2025
Hi Dave,

If I don’t need to write separate scripts for each group, how would I implement the Latin Square counterbalancing within a single script?

You need nine blocks:
A1, A2, A3
B1, B2, B3
C1, C2, C3

where A,B,C represent your three encoding conditions, and 1,2,3 represent your three target lists.

Then you just administer the applicable subset of those blocks to each group, as defined by the Latin Square(s).

This is not complicated. Schematically:

<expt a1b2c3>
/ blocks = [1=a1; 2=b2; 3=c3]
/ groups = (1 of 3)
</expt>

<expt b3c1a2>
/ blocks = [1=b3; 2=c1; 3=a2]
/ groups = (2 of 3)
</expt>

<expt c2a3b1>
/ blocks = [1=c2; 2=a3; 3=b1]
/ groups = (3 of 3)
</expt>

<item targetList1>
/ 0 = "List 1 Item 1"
/ 1 = "List 1 Item 2"
/ 2 = "List 1 Item 3"
/ 3 = "List 1 Item 4"
/ 4 = "List 1 Item 5"
/ 5 = "List 1 Item 6"
</item>

<item targetList2>
/ 0 = "List 2 Item 1"
/ 1 = "List 2 Item 2"
/ 2 = "List 2 Item 3"
/ 3 = "List 2 Item 4"
/ 4 = "List 2 Item 5"
/ 5 = "List 2 Item 6"
</item>

<item targetList3>
/ 0 = "List 3 Item 1"
/ 1 = "List 3 Item 2"
/ 2 = "List 3 Item 3"
/ 3 = "List 3 Item 4"
/ 4 = "List 3 Item 5"
/ 5 = "List 3 Item 6"
</item>

<text target1>
/ items = targetList1
</text>

<text target2>
/ items = targetList2
</text>

<text target3>
/ items = targetList3
</text>

// A
<block a1>
/ onBlockBegin = {
    trial.aTrial.resetStimulusFrames();
    trial.aTrial.insertStimulusFrame(text.target1, 1);
}
/ trials = [1-6 = aTrial]
</block>

<block a2>
/ onBlockBegin = {
    trial.aTrial.resetStimulusFrames();
    trial.aTrial.insertStimulusFrame(text.target2, 1);
}
/ trials = [1-6 = aTrial]
</block>

<block a3>
/ onBlockBegin = {
    trial.aTrial.resetStimulusFrames();
    trial.aTrial.insertStimulusFrame(text.target3, 1);
}
/ trials = [1-6 = aTrial]
</block>

<trial aTrial>
/ stimulusFrames = [1=clearScreen, aQuestion]
/ validResponse = (" ")
</trial>

<text aQuestion>
/ items = ("Encoding Condition A?")
/ position = (50%, 25%)
</text>

// B
<block b1>
/ onBlockBegin = {
    trial.bTrial.resetStimulusFrames();
    trial.bTrial.insertStimulusFrame(text.target1, 1);
}
/ trials = [1-6 = bTrial]
</block>

<block b2>
/ onBlockBegin = {
    trial.bTrial.resetStimulusFrames();
    trial.bTrial.insertStimulusFrame(text.target2, 1);
}
/ trials = [1-6 = bTrial]
</block>

<block b3>
/ onBlockBegin = {
    trial.bTrial.resetStimulusFrames();
    trial.bTrial.insertStimulusFrame(text.target3, 1);
}
/ trials = [1-6 = bTrial]
</block>

<trial bTrial>
/ stimulusFrames = [1=clearScreen, bQuestion]
/ validResponse = (" ")
</trial>

<text bQuestion>
/ items = ("Encoding Condition B?")
/ position = (50%, 25%)
</text>

// C
<block c1>
/ onBlockBegin = {
    trial.cTrial.resetStimulusFrames();
    trial.cTrial.insertStimulusFrame(text.target1, 1);
}
/ trials = [1-6 = cTrial]
</block>

<block c2>
/ onBlockBegin = {
    trial.cTrial.resetStimulusFrames();
    trial.cTrial.insertStimulusFrame(text.target2, 1);
}
/ trials = [1-6 = cTrial]
</block>

<block c3>
/ onBlockBegin = {
    trial.cTrial.resetStimulusFrames();
    trial.cTrial.insertStimulusFrame(text.target3, 1);
}
/ trials = [1-6 = cTrial]
</block>

<trial cTrial>
/ stimulusFrames = [1=clearScreen, cQuestion]
/ validResponse = (" ")
</trial>

<text cQuestion>
/ items = ("Encoding Condition C?")
/ position = (50%, 25%)
</text>

By Wasabi8888 - 7/11/2025

Hi Dave,

Thank you so much for your example!

I have one more question—if I’d like to separate positive and negative words (because I want to record word valence), is there a more elegant or efficient way to do it?

For now, I’ve created separate trials for positive and negative items like this:

<expt a1b2c3>
/ blocks = [1=a1; 2=b2; 3=c3]
/ groups = (1 of 3)
</expt>

<expt b3c1a2>
/ blocks = [1=b3; 2=c1; 3=a2]
/ groups = (2 of 3)
</expt>

<expt c2a3b1>
/ blocks = [1=c2; 2=a3; 3=b1]
/ groups = (3 of 3)
</expt>

<item targetList1_positive>
/ 0 = "List 1 Item 1_positive"
/ 1 = "List 1 Item 2_positive"
/ 2 = "List 1 Item 3_positive"
/ 3 = "List 1 Item 4_positive"
/ 4 = "List 1 Item 5_positive"
/ 5 = "List 1 Item 6_positive"
</item>

<item targetList1_negative>
/ 0 = "List 1 Item 1_negative"
/ 1 = "List 1 Item 2_negative"
/ 2 = "List 1 Item 3_negative"
/ 3 = "List 1 Item 4_negative"
/ 4 = "List 1 Item 5_negative"
/ 5 = "List 1 Item 6_negative"
</item>

<item targetList1>
/ 0 = "List 1 Item 1"
/ 1 = "List 1 Item 2"
/ 2 = "List 1 Item 3"
/ 3 = "List 1 Item 4"
/ 4 = "List 1 Item 5"
/ 5 = "List 1 Item 6"
</item>

<item targetList2>
/ 0 = "List 2 Item 1"
/ 1 = "List 2 Item 2"
/ 2 = "List 2 Item 3"
/ 3 = "List 2 Item 4"
/ 4 = "List 2 Item 5"
/ 5 = "List 2 Item 6"
</item>

<item targetList3>
/ 0 = "List 3 Item 1"
/ 1 = "List 3 Item 2"
/ 2 = "List 3 Item 3"
/ 3 = "List 3 Item 4"
/ 4 = "List 3 Item 5"
/ 5 = "List 3 Item 6"
</item>

<text positive1>
/ items = targetList1_positive
</text>

<text negative1>
/ items = targetList1_negative
</text>

<text target1>
/ items = targetList1
</text>

<text target2>
/ items = targetList2
</text>

<text target3>
/ items = targetList3
</text>

// A
<block a1>
/ onBlockBegin = {
}
/ trials = [1-6 = noreplace(aTrial_negative1,aTrial_positive1);]
</block>

<block a2>
/ onBlockBegin = {
  trial.aTrial.resetStimulusFrames();
  trial.aTrial.insertStimulusFrame(text.target2, 1);
}
/ trials = [1-6 = aTrial]
</block>

<block a3>
/ onBlockBegin = {
  trial.aTrial.resetStimulusFrames();
  trial.aTrial.insertStimulusFrame(text.target3, 1);
}
/ trials = [1-6 = aTrial]
</block>

<trial aTrial_negative1>
/ onTrialBegin = {trial.aTrial.resetStimulusFrames();
  trial.aTrial_negative1.insertStimulusFrame(text.negative1, 1);
    
}
/ stimulusFrames = [1=clearScreen, aQuestion]
/ validResponse = (" ")
</trial>

<trial aTrial_positive1>
/ onTrialBegin = {trial.aTrial_positive1.resetStimulusFrames();
  trial.aTrial_positive1.insertStimulusFrame(text.positive1, 1);
    
}
/ stimulusFrames = [1=clearScreen, aQuestion]
/ validResponse = (" ")
</trial>

<trial aTrial>
/ stimulusFrames = [1=clearScreen, aQuestion]
/ validResponse = (" ")
</trial>

<text aQuestion>
/ items = ("Encoding Condition A?")
/ position = (50%, 25%)
</text>

// B
<block b1>
/ onBlockBegin = {
  trial.bTrial.resetStimulusFrames();
  trial.bTrial.insertStimulusFrame(text.target1, 1);
}
/ trials = [1-6 = bTrial]
</block>

<block b2>
/ onBlockBegin = {
  trial.bTrial.resetStimulusFrames();
  trial.bTrial.insertStimulusFrame(text.target2, 1);
}
/ trials = [1-6 = bTrial]
</block>

<block b3>
/ onBlockBegin = {
  trial.bTrial.resetStimulusFrames();
  trial.bTrial.insertStimulusFrame(text.target3, 1);
}
/ trials = [1-6 = bTrial]
</block>

<trial bTrial>
/ stimulusFrames = [1=clearScreen, bQuestion]
/ validResponse = (" ")
</trial>

<text bQuestion>
/ items = ("Encoding Condition B?")
/ position = (50%, 25%)
</text>

// C
<block c1>
/ onBlockBegin = {
  trial.cTrial.resetStimulusFrames();
  trial.cTrial.insertStimulusFrame(text.target1, 1);
}
/ trials = [1-6 = cTrial]
</block>

<block c2>
/ onBlockBegin = {
  trial.cTrial.resetStimulusFrames();
  trial.cTrial.insertStimulusFrame(text.target2, 1);
}
/ trials = [1-6 = cTrial]
</block>

<block c3>
/ onBlockBegin = {
  trial.cTrial.resetStimulusFrames();
  trial.cTrial.insertStimulusFrame(text.target3, 1);
}
/ trials = [1-6 = cTrial]
</block>

<trial cTrial>
/ stimulusFrames = [1=clearScreen, cQuestion]
/ validResponse = (" ")
</trial>

<text cQuestion>
/ items = ("Encoding Condition C?")
/ position = (50%, 25%)
</text>
By Dave - 7/11/2025

Wasabi8888 - 7/11/2025
Hi Dave,

Thank you so much for your example!

I have one more question—if I’d like to separate positive and negative words (because I want to record word valence), is there a more elegant or efficient way to do it?

For now, I’ve created separate trials for positive and negative items like this:

<expt a1b2c3>
/ blocks = [1=a1; 2=b2; 3=c3]
/ groups = (1 of 3)
</expt>

<expt b3c1a2>
/ blocks = [1=b3; 2=c1; 3=a2]
/ groups = (2 of 3)
</expt>

<expt c2a3b1>
/ blocks = [1=c2; 2=a3; 3=b1]
/ groups = (3 of 3)
</expt>

<item targetList1_positive>
/ 0 = "List 1 Item 1_positive"
/ 1 = "List 1 Item 2_positive"
/ 2 = "List 1 Item 3_positive"
/ 3 = "List 1 Item 4_positive"
/ 4 = "List 1 Item 5_positive"
/ 5 = "List 1 Item 6_positive"
</item>

<item targetList1_negative>
/ 0 = "List 1 Item 1_negative"
/ 1 = "List 1 Item 2_negative"
/ 2 = "List 1 Item 3_negative"
/ 3 = "List 1 Item 4_negative"
/ 4 = "List 1 Item 5_negative"
/ 5 = "List 1 Item 6_negative"
</item>

<item targetList1>
/ 0 = "List 1 Item 1"
/ 1 = "List 1 Item 2"
/ 2 = "List 1 Item 3"
/ 3 = "List 1 Item 4"
/ 4 = "List 1 Item 5"
/ 5 = "List 1 Item 6"
</item>

<item targetList2>
/ 0 = "List 2 Item 1"
/ 1 = "List 2 Item 2"
/ 2 = "List 2 Item 3"
/ 3 = "List 2 Item 4"
/ 4 = "List 2 Item 5"
/ 5 = "List 2 Item 6"
</item>

<item targetList3>
/ 0 = "List 3 Item 1"
/ 1 = "List 3 Item 2"
/ 2 = "List 3 Item 3"
/ 3 = "List 3 Item 4"
/ 4 = "List 3 Item 5"
/ 5 = "List 3 Item 6"
</item>

<text positive1>
/ items = targetList1_positive
</text>

<text negative1>
/ items = targetList1_negative
</text>

<text target1>
/ items = targetList1
</text>

<text target2>
/ items = targetList2
</text>

<text target3>
/ items = targetList3
</text>

// A
<block a1>
/ onBlockBegin = {
}
/ trials = [1-6 = noreplace(aTrial_negative1,aTrial_positive1);]
</block>

<block a2>
/ onBlockBegin = {
  trial.aTrial.resetStimulusFrames();
  trial.aTrial.insertStimulusFrame(text.target2, 1);
}
/ trials = [1-6 = aTrial]
</block>

<block a3>
/ onBlockBegin = {
  trial.aTrial.resetStimulusFrames();
  trial.aTrial.insertStimulusFrame(text.target3, 1);
}
/ trials = [1-6 = aTrial]
</block>

<trial aTrial_negative1>
/ onTrialBegin = {trial.aTrial.resetStimulusFrames();
  trial.aTrial_negative1.insertStimulusFrame(text.negative1, 1);
    
}
/ stimulusFrames = [1=clearScreen, aQuestion]
/ validResponse = (" ")
</trial>

<trial aTrial_positive1>
/ onTrialBegin = {trial.aTrial_positive1.resetStimulusFrames();
  trial.aTrial_positive1.insertStimulusFrame(text.positive1, 1);
    
}
/ stimulusFrames = [1=clearScreen, aQuestion]
/ validResponse = (" ")
</trial>

<trial aTrial>
/ stimulusFrames = [1=clearScreen, aQuestion]
/ validResponse = (" ")
</trial>

<text aQuestion>
/ items = ("Encoding Condition A?")
/ position = (50%, 25%)
</text>

// B
<block b1>
/ onBlockBegin = {
  trial.bTrial.resetStimulusFrames();
  trial.bTrial.insertStimulusFrame(text.target1, 1);
}
/ trials = [1-6 = bTrial]
</block>

<block b2>
/ onBlockBegin = {
  trial.bTrial.resetStimulusFrames();
  trial.bTrial.insertStimulusFrame(text.target2, 1);
}
/ trials = [1-6 = bTrial]
</block>

<block b3>
/ onBlockBegin = {
  trial.bTrial.resetStimulusFrames();
  trial.bTrial.insertStimulusFrame(text.target3, 1);
}
/ trials = [1-6 = bTrial]
</block>

<trial bTrial>
/ stimulusFrames = [1=clearScreen, bQuestion]
/ validResponse = (" ")
</trial>

<text bQuestion>
/ items = ("Encoding Condition B?")
/ position = (50%, 25%)
</text>

// C
<block c1>
/ onBlockBegin = {
  trial.cTrial.resetStimulusFrames();
  trial.cTrial.insertStimulusFrame(text.target1, 1);
}
/ trials = [1-6 = cTrial]
</block>

<block c2>
/ onBlockBegin = {
  trial.cTrial.resetStimulusFrames();
  trial.cTrial.insertStimulusFrame(text.target2, 1);
}
/ trials = [1-6 = cTrial]
</block>

<block c3>
/ onBlockBegin = {
  trial.cTrial.resetStimulusFrames();
  trial.cTrial.insertStimulusFrame(text.target3, 1);
}
/ trials = [1-6 = cTrial]
</block>

<trial cTrial>
/ stimulusFrames = [1=clearScreen, cQuestion]
/ validResponse = (" ")
</trial>

<text cQuestion>
/ items = ("Encoding Condition C?")
/ position = (50%, 25%)
</text>

You shouldn't care about elegance or efficiency at this point. You should care about writing code that you, personally, understand. So what if it's not the most efficient or elegant?
By Wasabi8888 - 7/13/2025

Hi Dave,

I was wondering why sometimes only the question (e.g., “Does this word describe you?”) appears on the screen, without the adjective.

What I would like to implement is: on each trial, one of the encoding questions (e.g., “Does this word describe you?”) should be shown for 2 seconds, followed by the adjective displayed for 4 seconds, during which participants make a yes/no response. The adjective should remain on the screen for the full 4 seconds regardless of whether a response is made. Then, a blank screen should be shown for 1 second before the next trial begins.

Would you mind helping me check what might be causing the issue?

<defaults>
/ canvassize = (100%,100%)
/ canvasposition = (50%,50%)
/ canvasAspectRatio = (4,3)
/ minimumVersion = "7.0.0.0"
/ fontStyle = ("Arial", 3%, false, false, false, false, 5, 1)
/ txBGColor = white
/ txColor = black
/ screenColor = white
</defaults>

<values>
/ phase = ""
/ encoding_condition = ""
/ word = ""
/ valence = ""
/ target_list = ""
/ Yes_key = ""
/ No_key = ""
/ res = ""
</values>

<parameters>
//design parameters:
/ phaseSetting = 3                    //1 = learning phase only
                                        //2 = test phase only
                                        //3 = learning phase -> break/delay -> test phase

                                        
                                        
//timing parameters
/ delayDurationMs = 600000                //the duration (in ms) of the break inbetween phaseA and phaseB IF APPLICABLE
                                        //default: 10 minutes
/ questionDuration = 2000
/ wordDuration = 4000    //the duration (in ms) that the images are presented during phaseA and phaseB
/ iti = 1000                                //the intertrial interval (in ms): blank screen before the next word is presented in phaseA and phaseB


</parameters>

<expt a1b2c3>
/ onExptBegin = {
         values.res = 1;
                 if (values.res == "1") {values.Yes_key = "V"; values.No_key = "B"}
      if (values.res == "2") {values.Yes_key = "B"; values.No_key = "V"}
}
/ blocks = [1=encoding_self_list1; 2=encoding_semantic_list2; 3=encoding_structural_list3]
/ groups = (1 of 3)
</expt>

<expt b3c1a2>
/ onExptBegin = {
   values.res = 1;
      if (values.res == "1") {values.Yes_key = "V"; values.No_key = "B"}
  if (values.res == "2") {values.Yes_key = "B"; values.No_key = "V"}
}
/ blocks = [1=encoding_semantic_list3; 2=encoding_structural_list1; 3=encoding_self_list2]
/ groups = (2 of 3)
</expt>

<expt c2a3b1>
/ onExptBegin = {
   values.res = 1;
      if (values.res == "1") {values.Yes_key = "V"; values.No_key = "B"}
  if (values.res == "2") {values.Yes_key = "B"; values.No_key = "V"}
}
/ blocks = [1=encoding_structural_list2; 2=encoding_self_list3; 3=encoding_semantic_list1]
/ groups = (3 of 3)
</expt>

<item self_targetList1_positive>
/ 0 = "prompt"
/ 1 = "punctual"
/ 2 = "bright"
/ 3 = "shrewd"
/ 4 = "attentive"
/ 5 = "cautious"
/ 6 = "outspoken"
/ 7 = "dependable"
/ 8 = "patient"
/ 9 = "admirable"
/ 10 = "relaxed"
/ 11 = "persuasive"
</item>

<item self_targetList1_negative>
/ 0 = "melancholy"
/ 1 = "scolding"
/ 2 = "dominating"
/ 3 = "wasteful"
/ 4 = "skeptical"
/ 5 = "ungraceful"
/ 6 = "foolish"
/ 7 = "unhealthy"
/ 8 = "ordinary"
/ 9 = "sloppy"
/ 10 = "abusive"
/ 11 = "irrational"
</item>

<item self_targetList2_positive>
/ 0 = "consistent"
/ 1 = "prideful"
/ 2 = "forward"
/ 3 = "ingenious"
/ 4 = "skilled"
/ 5 = "amusing"
/ 6 = "nonchalant"
/ 7 = "realist"
/ 8 = "energetic"
/ 9 = "grateful"
/ 10 = "ambitious"
/ 11 = "serious"
</item>

<item self_targetList2_negative>
/ 0 = "headstrong"
/ 1 = "unskilled"
/ 2 = "bashful"
/ 3 = "lifeless"
/ 4 = "unpunctual"
/ 5 = "antisocial"
/ 6 = "demanding"
/ 7 = "jealous"
/ 8 = "annoying"
/ 9 = "changeable"
/ 10 = "nervous"
/ 11 = "worrier"
</item>

<item self_targetList3_positive>
/ 0 = "clever"
/ 1 = "generous"
/ 2 = "observant"
/ 3 = "tactful"
/ 4 = "trustful"
/ 5 = "direct"
/ 6 = "optimistic"
/ 7 = "active"
/ 8 = "precise"
/ 9 = "humorous"
/ 10 = "excitable"
/ 11 = "daring"
</item>

<item self_targetList3_negative>
/ 0 = "inhibited"
/ 1 = "insincere"
/ 2 = "undecided"
/ 3 = "lonely"
/ 4 = "indecisive"
/ 5 = "snobbish"
/ 6 = "unlucky"
/ 7 = "scheming"
/ 8 = "unstudious"
/ 9 = "malicious"
/ 10 = "unpleasant"
/ 11 = "meddlesome"
</item>

<item semantic_targetList1_positive>
/ 0 = "prompt"
/ 1 = "punctual"
/ 2 = "bright"
/ 3 = "shrewd"
/ 4 = "attentive"
/ 5 = "cautious"
/ 6 = "outspoken"
/ 7 = "dependable"
/ 8 = "patient"
/ 9 = "admirable"
/ 10 = "relaxed"
/ 11 = "persuasive"
</item>

<item semantic_targetList1_negative>
/ 0 = "melancholy"
/ 1 = "scolding"
/ 2 = "dominating"
/ 3 = "wasteful"
/ 4 = "skeptical"
/ 5 = "ungraceful"
/ 6 = "foolish"
/ 7 = "unhealthy"
/ 8 = "ordinary"
/ 9 = "sloppy"
/ 10 = "abusive"
/ 11 = "irrational"
</item>

<item semantic_targetList2_positive>
/ 0 = "consistent"
/ 1 = "prideful"
/ 2 = "forward"
/ 3 = "ingenious"
/ 4 = "skilled"
/ 5 = "amusing"
/ 6 = "nonchalant"
/ 7 = "realist"
/ 8 = "energetic"
/ 9 = "grateful"
/ 10 = "ambitious"
/ 11 = "serious"
</item>

<item semantic_targetList2_negative>
/ 0 = "headstrong"
/ 1 = "unskilled"
/ 2 = "bashful"
/ 3 = "lifeless"
/ 4 = "unpunctual"
/ 5 = "antisocial"
/ 6 = "demanding"
/ 7 = "jealous"
/ 8 = "annoying"
/ 9 = "changeable"
/ 10 = "nervous"
/ 11 = "worrier"
</item>

<item semantic_targetList3_positive>
/ 0 = "clever"
/ 1 = "generous"
/ 2 = "observant"
/ 3 = "tactful"
/ 4 = "trustful"
/ 5 = "direct"
/ 6 = "optimistic"
/ 7 = "active"
/ 8 = "precise"
/ 9 = "humorous"
/ 10 = "excitable"
/ 11 = "daring"
</item>

<item semantic_targetList3_negative>
/ 0 = "inhibited"
/ 1 = "insincere"
/ 2 = "undecided"
/ 3 = "lonely"
/ 4 = "indecisive"
/ 5 = "snobbish"
/ 6 = "unlucky"
/ 7 = "scheming"
/ 8 = "unstudious"
/ 9 = "malicious"
/ 10 = "unpleasant"
/ 11 = "meddlesome"
</item>

<item structural_targetList1_positive>
/ 0 = "prompt"
/ 1 = "punctual"
/ 2 = "bright"
/ 3 = "shrewd"
/ 4 = "attentive"
/ 5 = "cautious"
/ 6 = "OUTSPOKEN"
/ 7 = "DEPENDABLE"
/ 8 = "PATIENT"
/ 9 = "ADMIRABLE"
/ 10 = "RELAXED"
/ 11 = "PERSUASIVE"
</item>

<item structural_targetList1_negative>
/ 0 = "melancholy"
/ 1 = "scolding"
/ 2 = "dominating"
/ 3 = "wasteful"
/ 4 = "skeptical"
/ 5 = "ungraceful"
/ 6 = "FOOLISH"
/ 7 = "UNHEALTHY"
/ 8 = "ORDINARY"
/ 9 = "SLOPPY"
/ 10 = "ABUSIVE"
/ 11 = "IRRATIONAL"
</item>

<item structural_targetList2_positive>
/ 0 = "consistent"
/ 1 = "prideful"
/ 2 = "forward"
/ 3 = "ingenious"
/ 4 = "skilled"
/ 5 = "amusing"
/ 6 = "NONCHALANT"
/ 7 = "REALIST"
/ 8 = "ENERGETIC"
/ 9 = "GRATEFUL"
/ 10 = "AMBITIOUS"
/ 11 = "SERIOUS"
</item>

<item structural_targetList2_negative>
/ 0 = "headstrong"
/ 1 = "unskilled"
/ 2 = "bashful"
/ 3 = "lifeless"
/ 4 = "unpunctual"
/ 5 = "antisocial"
/ 6 = "DEMANDING"
/ 7 = "JEALOUS"
/ 8 = "ANNOYING"
/ 9 = "CHANGEABLE"
/ 10 = "NERVOUS"
/ 11 = "WORRIER"
</item>

<item structural_targetList3_positive>
/ 0 = "clever"
/ 1 = "generous"
/ 2 = "observant"
/ 3 = "tactful"
/ 4 = "trustful"
/ 5 = "direct"
/ 6 = "OPTIMISTIC"
/ 7 = "ACTIVE"
/ 8 = "PRECISE"
/ 9 = "HUMOROUS"
/ 10 = "EXCITABLE"
/ 11 = "DARING"
</item>

<item structural_targetList3_negative>
/ 0 = "inhibited"
/ 1 = "insincere"
/ 2 = "undecided"
/ 3 = "lonely"
/ 4 = "indecisive"
/ 5 = "snobbish"
/ 6 = "UNLUCKY"
/ 7 = "SCHEMING"
/ 8 = "UNSTUDIOUS"
/ 9 = "MALICIOUS"
/ 10 = "UNPLEASANT"
/ 11 = "MEDDLESOME"
</item>


<text self_target1_negative>
/ items = self_targetList1_negative
</text>

<text self_target1_positive>
/ items = self_targetList1_positive
</text>

<text self_target2_negative>
/ items = self_targetList2_negative
</text>

<text self_target2_positive>
/ items = self_targetList2_positive
</text>

<text self_target3_negative>
/ items = self_targetList3_negative
</text>

<text self_target3_positive>
/ items = self_targetList3_positive
</text>

<text semantic_target1_negative>
/ items = semantic_targetList1_negative
</text>

<text semantic_target1_positive>
/ items = semantic_targetList1_positive
</text>

<text semantic_target2_negative>
/ items = semantic_targetList2_negative
</text>

<text semantic_target2_positive>
/ items = semantic_targetList2_positive
</text>

<text semantic_target3_negative>
/ items = semantic_targetList3_negative
</text>

<text semantic_target3_positive>
/ items = semantic_targetList3_positive
</text>

<text structural_target1_negative>
/ items = structural_targetList1_negative
</text>

<text structural_target1_positive>
/ items = structural_targetList1_positive
</text>

<text structural_target2_negative>
/ items = structural_targetList2_negative
</text>

<text structural_target2_positive>
/ items = structural_targetList2_positive
</text>

<text structural_target3_negative>
/ items = structural_targetList3_negative
</text>

<text structural_target3_positive>
/ items = structural_targetList3_positive
</text>


// self-referential condition
<block encoding_self_list1>
/ onBlockBegin = {
    values.phase = "Encoding";
    values.encoding_condition ="self-referential";
    values.target_list = "list1";
}
/ trials = [1-24 = noreplace(encoding_self_list1_positive, encoding_self_list1_negative);]
</block>

<block encoding_self_list2>
/ onBlockBegin = {
    values.phase = "Encoding";
    values.encoding_condition ="self-referential";
    values.target_list = "list2";
}
/ trials = [1-24 = noreplace(encoding_self_list2_positive, encoding_self_list2_negative);]
</block>

<block encoding_self_list3>
/ onBlockBegin = {
    values.phase = "Encoding";
    values.encoding_condition ="self-referential";
    values.target_list = "list3";
}
/ trials = [1-24 = noreplace(encoding_self_list3_positive, encoding_self_list3_negative);]
</block>

<trial encoding_self_list1_positive>
/ onTrialBegin = {values.valence = "positive";
    trial.encoding_self_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_self_list1_positive.insertStimulusTime(text.self_target1_positive, parameters.questionDuration);
    trial.encoding_self_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=selfQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_self_list1_positive.resetStimulusFrames();
values.word = text.self_target1_positive.currentItem;
}    
</trial>

<trial encoding_self_list1_negative>
/ onTrialBegin = {values.valence = "negative";
    trial.encoding_self_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_self_list1_positive.insertStimulusTime(text.self_target1_negative, parameters.questionDuration);
    trial.encoding_self_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=selfQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_self_list1_negative.resetStimulusFrames();
values.word = text.self_target1_negative.currentItem;
}    
</trial>

<trial encoding_self_list2_positive>
/ onTrialBegin = {values.valence = "positive";
    trial.encoding_self_list2_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_self_list2_positive.insertStimulusTime(text.self_target2_positive, parameters.questionDuration);
    trial.encoding_self_list2_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=selfQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_self_list2_positive.resetStimulusFrames();
values.word = text.self_target2_positive.currentItem;
}    
</trial>

<trial encoding_self_list2_negative>
/ onTrialBegin = {values.valence = "negative";
    trial.encoding_self_list2_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_self_list2_positive.insertStimulusTime(text.self_target2_negative, parameters.questionDuration);
    trial.encoding_self_list2_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=selfQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_self_list2_negative.resetStimulusFrames();
values.word = text.self_target2_negative.currentItem;
}    
</trial>

<trial encoding_self_list3_positive>
/ onTrialBegin = {values.valence = "positive";
    trial.encoding_self_list3_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_self_list3_positive.insertStimulusTime(text.self_target3_positive, parameters.questionDuration);
    trial.encoding_self_list3_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=selfQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_self_list3_positive.resetStimulusFrames();
values.word = text.self_target3_positive.currentItem;
}    
</trial>

<trial encoding_self_list3_negative>
/ onTrialBegin = {values.valence = "negative";
    trial.encoding_self_list3_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_self_list3_positive.insertStimulusTime(text.self_target3_negative, parameters.questionDuration);
    trial.encoding_self_list3_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=selfQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_self_list3_negative.resetStimulusFrames();
values.word = text.self_target3_negative.currentItem;
}    
</trial>

<text selfQuestion>
/ items = ("Does this word describe you?")
/ position = (50%, 50%)
</text>

// semantic encoding
<block encoding_semantic_list1>
/ onBlockBegin = {
    values.phase = "Encoding";
    values.encoding_condition ="semantic";
    values.target_list = "list1";
}
/ trials = [1-24 = noreplace(encoding_semantic_list1_positive, encoding_semantic_list1_negative);]
</block>

<block encoding_semantic_list2>
/ onBlockBegin = {
    values.phase = "Encoding";
    values.encoding_condition ="semantic";
    values.target_list = "list2";
}
/ trials = [1-24 = noreplace(encoding_semantic_list2_positive, encoding_semantic_list2_negative);]
</block>

<block encoding_semantic_list3>
/ onBlockBegin = {
    values.phase = "Encoding";
    values.encoding_condition ="semantic";
    values.target_list = "list3";
}
/ trials = [1-24 = noreplace(encoding_semantic_list3_positive, encoding_semantic_list3_negative);]
</block>

<trial encoding_semantic_list1_positive>
/ onTrialBegin = {values.valence = "positive";
    trial.encoding_semantic_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_semantic_list1_positive.insertStimulusTime(text.semantic_target1_positive, parameters.questionDuration);
    trial.encoding_semantic_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=semanticQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_semantic_list1_positive.resetStimulusFrames();
values.word = text.semantic_target1_positive.currentItem;
}    
</trial>

<trial encoding_semantic_list1_negative>
/ onTrialBegin = {values.valence = "negative";
    trial.encoding_semantic_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_semantic_list1_positive.insertStimulusTime(text.semantic_target1_negative, parameters.questionDuration);
    trial.encoding_semantic_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=semanticQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_semantic_list1_negative.resetStimulusFrames();
values.word = text.semantic_target1_negative.currentItem;
}    
</trial>

<trial encoding_semantic_list2_positive>
/ onTrialBegin = {values.valence = "positive";
    trial.encoding_semantic_list2_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_semantic_list2_positive.insertStimulusTime(text.semantic_target2_positive, parameters.questionDuration);
    trial.encoding_semantic_list2_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=semanticQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_semantic_list2_positive.resetStimulusFrames();
values.word = text.semantic_target2_positive.currentItem;
}    
</trial>

<trial encoding_semantic_list2_negative>
/ onTrialBegin = {values.valence = "negative";
    trial.encoding_semantic_list2_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_semantic_list2_positive.insertStimulusTime(text.semantic_target2_negative, parameters.questionDuration);
    trial.encoding_semantic_list2_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=semanticQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_semantic_list2_negative.resetStimulusFrames();
values.word = text.semantic_target2_negative.currentItem;
}    
</trial>

<trial encoding_semantic_list3_positive>
/ onTrialBegin = {values.valence = "positive";
    trial.encoding_semantic_list3_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_semantic_list3_positive.insertStimulusTime(text.semantic_target3_positive, parameters.questionDuration);
    trial.encoding_semantic_list3_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=semanticQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_semantic_list3_positive.resetStimulusFrames();
values.word = text.semantic_target3_positive.currentItem;
}    
</trial>

<trial encoding_semantic_list3_negative>
/ onTrialBegin = {values.valence = "negative";
    trial.encoding_semantic_list3_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_semantic_list3_positive.insertStimulusTime(text.semantic_target3_negative, parameters.questionDuration);
    trial.encoding_semantic_list3_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=semanticQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_semantic_list3_negative.resetStimulusFrames();
values.word = text.semantic_target3_negative.currentItem;
}    
</trial>

<text semanticQuestion>
/ items = ("Is the dictionary definition of this word positive?")
/ position = (50%, 50%)
</text>


// structural encoding
<block encoding_structural_list1>
/ onBlockBegin = {
    values.phase = "Encoding";
    values.encoding_condition ="structural";
    values.target_list = "list1";
}
/ trials = [1-24 = noreplace(encoding_structural_list1_positive, encoding_structural_list1_negative);]
</block>

<block encoding_structural_list2>
/ onBlockBegin = {
    values.phase = "Encoding";
    values.encoding_condition ="structural";
    values.target_list = "list2";
}
/ trials = [1-24 = noreplace(encoding_structural_list2_positive, encoding_structural_list2_negative);]
</block>

<block encoding_structural_list3>
/ onBlockBegin = {
    values.phase = "Encoding";
    values.encoding_condition ="structural";
    values.target_list = "list3";
}
/ trials = [1-24 = noreplace(encoding_structural_list3_positive, encoding_structural_list3_negative);]
</block>

<trial encoding_structural_list1_positive>
/ onTrialBegin = {values.valence = "positive";
    trial.encoding_structural_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_structural_list1_positive.insertStimulusTime(text.structural_target1_positive, parameters.questionDuration);
    trial.encoding_structural_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=structuralQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_structural_list1_positive.resetStimulusFrames();
values.word = text.structural_target1_positive.currentItem;
}    
</trial>

<trial encoding_structural_list1_negative>
/ onTrialBegin = {values.valence = "negative";
    trial.encoding_structural_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_structural_list1_positive.insertStimulusTime(text.structural_target1_negative, parameters.questionDuration);
    trial.encoding_structural_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=structuralQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_structural_list1_negative.resetStimulusFrames();
values.word = text.structural_target1_negative.currentItem;
}    
</trial>

<trial encoding_structural_list2_positive>
/ onTrialBegin = {values.valence = "positive";
    trial.encoding_structural_list2_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_structural_list2_positive.insertStimulusTime(text.structural_target2_positive, parameters.questionDuration);
    trial.encoding_structural_list2_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=structuralQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_structural_list2_positive.resetStimulusFrames();
values.word = text.structural_target2_positive.currentItem;
}    
</trial>

<trial encoding_structural_list2_negative>
/ onTrialBegin = {values.valence = "negative";
    trial.encoding_structural_list2_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_structural_list2_positive.insertStimulusTime(text.structural_target2_negative, parameters.questionDuration);
    trial.encoding_structural_list2_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=structuralQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_structural_list2_negative.resetStimulusFrames();
values.word = text.structural_target2_negative.currentItem;
}    
</trial>

<trial encoding_structural_list3_positive>
/ onTrialBegin = {values.valence = "positive";
    trial.encoding_structural_list3_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_structural_list3_positive.insertStimulusTime(text.structural_target3_positive, parameters.questionDuration);
    trial.encoding_structural_list3_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=structuralQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_structural_list3_positive.resetStimulusFrames();
values.word = text.structural_target3_positive.currentItem;
}    
</trial>

<trial encoding_structural_list3_negative>
/ onTrialBegin = {values.valence = "negative";
    trial.encoding_structural_list3_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_structural_list3_positive.insertStimulusTime(text.structural_target3_negative, parameters.questionDuration);
    trial.encoding_structural_list3_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=structuralQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_structural_list3_negative.resetStimulusFrames();
values.word = text.structural_target3_negative.currentItem;
}    
</trial>


<text structuralQuestion>
/ items = ("Is this word typed in upper case letters?")
/ position = (50%, 50%)
</text>
By Dave - 7/13/2025

Wasabi8888 - 7/13/2025
Hi Dave,

I was wondering why sometimes only the question (e.g., “Does this word describe you?”) appears on the screen, without the adjective.

What I would like to implement is: on each trial, one of the encoding questions (e.g., “Does this word describe you?”) should be shown for 2 seconds, followed by the adjective displayed for 4 seconds, during which participants make a yes/no response. The adjective should remain on the screen for the full 4 seconds regardless of whether a response is made. Then, a blank screen should be shown for 1 second before the next trial begins.

Would you mind helping me check what might be causing the issue?

<defaults>
/ canvassize = (100%,100%)
/ canvasposition = (50%,50%)
/ canvasAspectRatio = (4,3)
/ minimumVersion = "7.0.0.0"
/ fontStyle = ("Arial", 3%, false, false, false, false, 5, 1)
/ txBGColor = white
/ txColor = black
/ screenColor = white
</defaults>

<values>
/ phase = ""
/ encoding_condition = ""
/ word = ""
/ valence = ""
/ target_list = ""
/ Yes_key = ""
/ No_key = ""
/ res = ""
</values>

<parameters>
//design parameters:
/ phaseSetting = 3                    //1 = learning phase only
                                        //2 = test phase only
                                        //3 = learning phase -> break/delay -> test phase

                                        
                                        
//timing parameters
/ delayDurationMs = 600000                //the duration (in ms) of the break inbetween phaseA and phaseB IF APPLICABLE
                                        //default: 10 minutes
/ questionDuration = 2000
/ wordDuration = 4000    //the duration (in ms) that the images are presented during phaseA and phaseB
/ iti = 1000                                //the intertrial interval (in ms): blank screen before the next word is presented in phaseA and phaseB


</parameters>

<expt a1b2c3>
/ onExptBegin = {
         values.res = 1;
                 if (values.res == "1") {values.Yes_key = "V"; values.No_key = "B"}
      if (values.res == "2") {values.Yes_key = "B"; values.No_key = "V"}
}
/ blocks = [1=encoding_self_list1; 2=encoding_semantic_list2; 3=encoding_structural_list3]
/ groups = (1 of 3)
</expt>

<expt b3c1a2>
/ onExptBegin = {
   values.res = 1;
      if (values.res == "1") {values.Yes_key = "V"; values.No_key = "B"}
  if (values.res == "2") {values.Yes_key = "B"; values.No_key = "V"}
}
/ blocks = [1=encoding_semantic_list3; 2=encoding_structural_list1; 3=encoding_self_list2]
/ groups = (2 of 3)
</expt>

<expt c2a3b1>
/ onExptBegin = {
   values.res = 1;
      if (values.res == "1") {values.Yes_key = "V"; values.No_key = "B"}
  if (values.res == "2") {values.Yes_key = "B"; values.No_key = "V"}
}
/ blocks = [1=encoding_structural_list2; 2=encoding_self_list3; 3=encoding_semantic_list1]
/ groups = (3 of 3)
</expt>

<item self_targetList1_positive>
/ 0 = "prompt"
/ 1 = "punctual"
/ 2 = "bright"
/ 3 = "shrewd"
/ 4 = "attentive"
/ 5 = "cautious"
/ 6 = "outspoken"
/ 7 = "dependable"
/ 8 = "patient"
/ 9 = "admirable"
/ 10 = "relaxed"
/ 11 = "persuasive"
</item>

<item self_targetList1_negative>
/ 0 = "melancholy"
/ 1 = "scolding"
/ 2 = "dominating"
/ 3 = "wasteful"
/ 4 = "skeptical"
/ 5 = "ungraceful"
/ 6 = "foolish"
/ 7 = "unhealthy"
/ 8 = "ordinary"
/ 9 = "sloppy"
/ 10 = "abusive"
/ 11 = "irrational"
</item>

<item self_targetList2_positive>
/ 0 = "consistent"
/ 1 = "prideful"
/ 2 = "forward"
/ 3 = "ingenious"
/ 4 = "skilled"
/ 5 = "amusing"
/ 6 = "nonchalant"
/ 7 = "realist"
/ 8 = "energetic"
/ 9 = "grateful"
/ 10 = "ambitious"
/ 11 = "serious"
</item>

<item self_targetList2_negative>
/ 0 = "headstrong"
/ 1 = "unskilled"
/ 2 = "bashful"
/ 3 = "lifeless"
/ 4 = "unpunctual"
/ 5 = "antisocial"
/ 6 = "demanding"
/ 7 = "jealous"
/ 8 = "annoying"
/ 9 = "changeable"
/ 10 = "nervous"
/ 11 = "worrier"
</item>

<item self_targetList3_positive>
/ 0 = "clever"
/ 1 = "generous"
/ 2 = "observant"
/ 3 = "tactful"
/ 4 = "trustful"
/ 5 = "direct"
/ 6 = "optimistic"
/ 7 = "active"
/ 8 = "precise"
/ 9 = "humorous"
/ 10 = "excitable"
/ 11 = "daring"
</item>

<item self_targetList3_negative>
/ 0 = "inhibited"
/ 1 = "insincere"
/ 2 = "undecided"
/ 3 = "lonely"
/ 4 = "indecisive"
/ 5 = "snobbish"
/ 6 = "unlucky"
/ 7 = "scheming"
/ 8 = "unstudious"
/ 9 = "malicious"
/ 10 = "unpleasant"
/ 11 = "meddlesome"
</item>

<item semantic_targetList1_positive>
/ 0 = "prompt"
/ 1 = "punctual"
/ 2 = "bright"
/ 3 = "shrewd"
/ 4 = "attentive"
/ 5 = "cautious"
/ 6 = "outspoken"
/ 7 = "dependable"
/ 8 = "patient"
/ 9 = "admirable"
/ 10 = "relaxed"
/ 11 = "persuasive"
</item>

<item semantic_targetList1_negative>
/ 0 = "melancholy"
/ 1 = "scolding"
/ 2 = "dominating"
/ 3 = "wasteful"
/ 4 = "skeptical"
/ 5 = "ungraceful"
/ 6 = "foolish"
/ 7 = "unhealthy"
/ 8 = "ordinary"
/ 9 = "sloppy"
/ 10 = "abusive"
/ 11 = "irrational"
</item>

<item semantic_targetList2_positive>
/ 0 = "consistent"
/ 1 = "prideful"
/ 2 = "forward"
/ 3 = "ingenious"
/ 4 = "skilled"
/ 5 = "amusing"
/ 6 = "nonchalant"
/ 7 = "realist"
/ 8 = "energetic"
/ 9 = "grateful"
/ 10 = "ambitious"
/ 11 = "serious"
</item>

<item semantic_targetList2_negative>
/ 0 = "headstrong"
/ 1 = "unskilled"
/ 2 = "bashful"
/ 3 = "lifeless"
/ 4 = "unpunctual"
/ 5 = "antisocial"
/ 6 = "demanding"
/ 7 = "jealous"
/ 8 = "annoying"
/ 9 = "changeable"
/ 10 = "nervous"
/ 11 = "worrier"
</item>

<item semantic_targetList3_positive>
/ 0 = "clever"
/ 1 = "generous"
/ 2 = "observant"
/ 3 = "tactful"
/ 4 = "trustful"
/ 5 = "direct"
/ 6 = "optimistic"
/ 7 = "active"
/ 8 = "precise"
/ 9 = "humorous"
/ 10 = "excitable"
/ 11 = "daring"
</item>

<item semantic_targetList3_negative>
/ 0 = "inhibited"
/ 1 = "insincere"
/ 2 = "undecided"
/ 3 = "lonely"
/ 4 = "indecisive"
/ 5 = "snobbish"
/ 6 = "unlucky"
/ 7 = "scheming"
/ 8 = "unstudious"
/ 9 = "malicious"
/ 10 = "unpleasant"
/ 11 = "meddlesome"
</item>

<item structural_targetList1_positive>
/ 0 = "prompt"
/ 1 = "punctual"
/ 2 = "bright"
/ 3 = "shrewd"
/ 4 = "attentive"
/ 5 = "cautious"
/ 6 = "OUTSPOKEN"
/ 7 = "DEPENDABLE"
/ 8 = "PATIENT"
/ 9 = "ADMIRABLE"
/ 10 = "RELAXED"
/ 11 = "PERSUASIVE"
</item>

<item structural_targetList1_negative>
/ 0 = "melancholy"
/ 1 = "scolding"
/ 2 = "dominating"
/ 3 = "wasteful"
/ 4 = "skeptical"
/ 5 = "ungraceful"
/ 6 = "FOOLISH"
/ 7 = "UNHEALTHY"
/ 8 = "ORDINARY"
/ 9 = "SLOPPY"
/ 10 = "ABUSIVE"
/ 11 = "IRRATIONAL"
</item>

<item structural_targetList2_positive>
/ 0 = "consistent"
/ 1 = "prideful"
/ 2 = "forward"
/ 3 = "ingenious"
/ 4 = "skilled"
/ 5 = "amusing"
/ 6 = "NONCHALANT"
/ 7 = "REALIST"
/ 8 = "ENERGETIC"
/ 9 = "GRATEFUL"
/ 10 = "AMBITIOUS"
/ 11 = "SERIOUS"
</item>

<item structural_targetList2_negative>
/ 0 = "headstrong"
/ 1 = "unskilled"
/ 2 = "bashful"
/ 3 = "lifeless"
/ 4 = "unpunctual"
/ 5 = "antisocial"
/ 6 = "DEMANDING"
/ 7 = "JEALOUS"
/ 8 = "ANNOYING"
/ 9 = "CHANGEABLE"
/ 10 = "NERVOUS"
/ 11 = "WORRIER"
</item>

<item structural_targetList3_positive>
/ 0 = "clever"
/ 1 = "generous"
/ 2 = "observant"
/ 3 = "tactful"
/ 4 = "trustful"
/ 5 = "direct"
/ 6 = "OPTIMISTIC"
/ 7 = "ACTIVE"
/ 8 = "PRECISE"
/ 9 = "HUMOROUS"
/ 10 = "EXCITABLE"
/ 11 = "DARING"
</item>

<item structural_targetList3_negative>
/ 0 = "inhibited"
/ 1 = "insincere"
/ 2 = "undecided"
/ 3 = "lonely"
/ 4 = "indecisive"
/ 5 = "snobbish"
/ 6 = "UNLUCKY"
/ 7 = "SCHEMING"
/ 8 = "UNSTUDIOUS"
/ 9 = "MALICIOUS"
/ 10 = "UNPLEASANT"
/ 11 = "MEDDLESOME"
</item>


<text self_target1_negative>
/ items = self_targetList1_negative
</text>

<text self_target1_positive>
/ items = self_targetList1_positive
</text>

<text self_target2_negative>
/ items = self_targetList2_negative
</text>

<text self_target2_positive>
/ items = self_targetList2_positive
</text>

<text self_target3_negative>
/ items = self_targetList3_negative
</text>

<text self_target3_positive>
/ items = self_targetList3_positive
</text>

<text semantic_target1_negative>
/ items = semantic_targetList1_negative
</text>

<text semantic_target1_positive>
/ items = semantic_targetList1_positive
</text>

<text semantic_target2_negative>
/ items = semantic_targetList2_negative
</text>

<text semantic_target2_positive>
/ items = semantic_targetList2_positive
</text>

<text semantic_target3_negative>
/ items = semantic_targetList3_negative
</text>

<text semantic_target3_positive>
/ items = semantic_targetList3_positive
</text>

<text structural_target1_negative>
/ items = structural_targetList1_negative
</text>

<text structural_target1_positive>
/ items = structural_targetList1_positive
</text>

<text structural_target2_negative>
/ items = structural_targetList2_negative
</text>

<text structural_target2_positive>
/ items = structural_targetList2_positive
</text>

<text structural_target3_negative>
/ items = structural_targetList3_negative
</text>

<text structural_target3_positive>
/ items = structural_targetList3_positive
</text>


// self-referential condition
<block encoding_self_list1>
/ onBlockBegin = {
    values.phase = "Encoding";
    values.encoding_condition ="self-referential";
    values.target_list = "list1";
}
/ trials = [1-24 = noreplace(encoding_self_list1_positive, encoding_self_list1_negative);]
</block>

<block encoding_self_list2>
/ onBlockBegin = {
    values.phase = "Encoding";
    values.encoding_condition ="self-referential";
    values.target_list = "list2";
}
/ trials = [1-24 = noreplace(encoding_self_list2_positive, encoding_self_list2_negative);]
</block>

<block encoding_self_list3>
/ onBlockBegin = {
    values.phase = "Encoding";
    values.encoding_condition ="self-referential";
    values.target_list = "list3";
}
/ trials = [1-24 = noreplace(encoding_self_list3_positive, encoding_self_list3_negative);]
</block>

<trial encoding_self_list1_positive>
/ onTrialBegin = {values.valence = "positive";
    trial.encoding_self_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_self_list1_positive.insertStimulusTime(text.self_target1_positive, parameters.questionDuration);
    trial.encoding_self_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=selfQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_self_list1_positive.resetStimulusFrames();
values.word = text.self_target1_positive.currentItem;
}    
</trial>

<trial encoding_self_list1_negative>
/ onTrialBegin = {values.valence = "negative";
    trial.encoding_self_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_self_list1_positive.insertStimulusTime(text.self_target1_negative, parameters.questionDuration);
    trial.encoding_self_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=selfQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_self_list1_negative.resetStimulusFrames();
values.word = text.self_target1_negative.currentItem;
}    
</trial>

<trial encoding_self_list2_positive>
/ onTrialBegin = {values.valence = "positive";
    trial.encoding_self_list2_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_self_list2_positive.insertStimulusTime(text.self_target2_positive, parameters.questionDuration);
    trial.encoding_self_list2_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=selfQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_self_list2_positive.resetStimulusFrames();
values.word = text.self_target2_positive.currentItem;
}    
</trial>

<trial encoding_self_list2_negative>
/ onTrialBegin = {values.valence = "negative";
    trial.encoding_self_list2_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_self_list2_positive.insertStimulusTime(text.self_target2_negative, parameters.questionDuration);
    trial.encoding_self_list2_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=selfQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_self_list2_negative.resetStimulusFrames();
values.word = text.self_target2_negative.currentItem;
}    
</trial>

<trial encoding_self_list3_positive>
/ onTrialBegin = {values.valence = "positive";
    trial.encoding_self_list3_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_self_list3_positive.insertStimulusTime(text.self_target3_positive, parameters.questionDuration);
    trial.encoding_self_list3_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=selfQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_self_list3_positive.resetStimulusFrames();
values.word = text.self_target3_positive.currentItem;
}    
</trial>

<trial encoding_self_list3_negative>
/ onTrialBegin = {values.valence = "negative";
    trial.encoding_self_list3_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_self_list3_positive.insertStimulusTime(text.self_target3_negative, parameters.questionDuration);
    trial.encoding_self_list3_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=selfQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_self_list3_negative.resetStimulusFrames();
values.word = text.self_target3_negative.currentItem;
}    
</trial>

<text selfQuestion>
/ items = ("Does this word describe you?")
/ position = (50%, 50%)
</text>

// semantic encoding
<block encoding_semantic_list1>
/ onBlockBegin = {
    values.phase = "Encoding";
    values.encoding_condition ="semantic";
    values.target_list = "list1";
}
/ trials = [1-24 = noreplace(encoding_semantic_list1_positive, encoding_semantic_list1_negative);]
</block>

<block encoding_semantic_list2>
/ onBlockBegin = {
    values.phase = "Encoding";
    values.encoding_condition ="semantic";
    values.target_list = "list2";
}
/ trials = [1-24 = noreplace(encoding_semantic_list2_positive, encoding_semantic_list2_negative);]
</block>

<block encoding_semantic_list3>
/ onBlockBegin = {
    values.phase = "Encoding";
    values.encoding_condition ="semantic";
    values.target_list = "list3";
}
/ trials = [1-24 = noreplace(encoding_semantic_list3_positive, encoding_semantic_list3_negative);]
</block>

<trial encoding_semantic_list1_positive>
/ onTrialBegin = {values.valence = "positive";
    trial.encoding_semantic_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_semantic_list1_positive.insertStimulusTime(text.semantic_target1_positive, parameters.questionDuration);
    trial.encoding_semantic_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=semanticQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_semantic_list1_positive.resetStimulusFrames();
values.word = text.semantic_target1_positive.currentItem;
}    
</trial>

<trial encoding_semantic_list1_negative>
/ onTrialBegin = {values.valence = "negative";
    trial.encoding_semantic_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_semantic_list1_positive.insertStimulusTime(text.semantic_target1_negative, parameters.questionDuration);
    trial.encoding_semantic_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=semanticQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_semantic_list1_negative.resetStimulusFrames();
values.word = text.semantic_target1_negative.currentItem;
}    
</trial>

<trial encoding_semantic_list2_positive>
/ onTrialBegin = {values.valence = "positive";
    trial.encoding_semantic_list2_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_semantic_list2_positive.insertStimulusTime(text.semantic_target2_positive, parameters.questionDuration);
    trial.encoding_semantic_list2_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=semanticQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_semantic_list2_positive.resetStimulusFrames();
values.word = text.semantic_target2_positive.currentItem;
}    
</trial>

<trial encoding_semantic_list2_negative>
/ onTrialBegin = {values.valence = "negative";
    trial.encoding_semantic_list2_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_semantic_list2_positive.insertStimulusTime(text.semantic_target2_negative, parameters.questionDuration);
    trial.encoding_semantic_list2_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=semanticQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_semantic_list2_negative.resetStimulusFrames();
values.word = text.semantic_target2_negative.currentItem;
}    
</trial>

<trial encoding_semantic_list3_positive>
/ onTrialBegin = {values.valence = "positive";
    trial.encoding_semantic_list3_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_semantic_list3_positive.insertStimulusTime(text.semantic_target3_positive, parameters.questionDuration);
    trial.encoding_semantic_list3_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=semanticQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_semantic_list3_positive.resetStimulusFrames();
values.word = text.semantic_target3_positive.currentItem;
}    
</trial>

<trial encoding_semantic_list3_negative>
/ onTrialBegin = {values.valence = "negative";
    trial.encoding_semantic_list3_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_semantic_list3_positive.insertStimulusTime(text.semantic_target3_negative, parameters.questionDuration);
    trial.encoding_semantic_list3_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=semanticQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_semantic_list3_negative.resetStimulusFrames();
values.word = text.semantic_target3_negative.currentItem;
}    
</trial>

<text semanticQuestion>
/ items = ("Is the dictionary definition of this word positive?")
/ position = (50%, 50%)
</text>


// structural encoding
<block encoding_structural_list1>
/ onBlockBegin = {
    values.phase = "Encoding";
    values.encoding_condition ="structural";
    values.target_list = "list1";
}
/ trials = [1-24 = noreplace(encoding_structural_list1_positive, encoding_structural_list1_negative);]
</block>

<block encoding_structural_list2>
/ onBlockBegin = {
    values.phase = "Encoding";
    values.encoding_condition ="structural";
    values.target_list = "list2";
}
/ trials = [1-24 = noreplace(encoding_structural_list2_positive, encoding_structural_list2_negative);]
</block>

<block encoding_structural_list3>
/ onBlockBegin = {
    values.phase = "Encoding";
    values.encoding_condition ="structural";
    values.target_list = "list3";
}
/ trials = [1-24 = noreplace(encoding_structural_list3_positive, encoding_structural_list3_negative);]
</block>

<trial encoding_structural_list1_positive>
/ onTrialBegin = {values.valence = "positive";
    trial.encoding_structural_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_structural_list1_positive.insertStimulusTime(text.structural_target1_positive, parameters.questionDuration);
    trial.encoding_structural_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=structuralQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_structural_list1_positive.resetStimulusFrames();
values.word = text.structural_target1_positive.currentItem;
}    
</trial>

<trial encoding_structural_list1_negative>
/ onTrialBegin = {values.valence = "negative";
    trial.encoding_structural_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_structural_list1_positive.insertStimulusTime(text.structural_target1_negative, parameters.questionDuration);
    trial.encoding_structural_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=structuralQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_structural_list1_negative.resetStimulusFrames();
values.word = text.structural_target1_negative.currentItem;
}    
</trial>

<trial encoding_structural_list2_positive>
/ onTrialBegin = {values.valence = "positive";
    trial.encoding_structural_list2_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_structural_list2_positive.insertStimulusTime(text.structural_target2_positive, parameters.questionDuration);
    trial.encoding_structural_list2_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=structuralQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_structural_list2_positive.resetStimulusFrames();
values.word = text.structural_target2_positive.currentItem;
}    
</trial>

<trial encoding_structural_list2_negative>
/ onTrialBegin = {values.valence = "negative";
    trial.encoding_structural_list2_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_structural_list2_positive.insertStimulusTime(text.structural_target2_negative, parameters.questionDuration);
    trial.encoding_structural_list2_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=structuralQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_structural_list2_negative.resetStimulusFrames();
values.word = text.structural_target2_negative.currentItem;
}    
</trial>

<trial encoding_structural_list3_positive>
/ onTrialBegin = {values.valence = "positive";
    trial.encoding_structural_list3_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_structural_list3_positive.insertStimulusTime(text.structural_target3_positive, parameters.questionDuration);
    trial.encoding_structural_list3_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=structuralQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_structural_list3_positive.resetStimulusFrames();
values.word = text.structural_target3_positive.currentItem;
}    
</trial>

<trial encoding_structural_list3_negative>
/ onTrialBegin = {values.valence = "negative";
    trial.encoding_structural_list3_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_structural_list3_positive.insertStimulusTime(text.structural_target3_negative, parameters.questionDuration);
    trial.encoding_structural_list3_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=structuralQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_structural_list3_negative.resetStimulusFrames();
values.word = text.structural_target3_negative.currentItem;
}    
</trial>


<text structuralQuestion>
/ items = ("Is this word typed in upper case letters?")
/ position = (50%, 50%)
</text>

If you want others to be able to make sense of your code and what you intend it to do, you ought to comment it. Once you've done that, I'll be happy to take a look.
By Dave - 7/13/2025

Dave - 7/13/2025
Wasabi8888 - 7/13/2025
Hi Dave,

I was wondering why sometimes only the question (e.g., “Does this word describe you?”) appears on the screen, without the adjective.

What I would like to implement is: on each trial, one of the encoding questions (e.g., “Does this word describe you?”) should be shown for 2 seconds, followed by the adjective displayed for 4 seconds, during which participants make a yes/no response. The adjective should remain on the screen for the full 4 seconds regardless of whether a response is made. Then, a blank screen should be shown for 1 second before the next trial begins.

Would you mind helping me check what might be causing the issue?

<defaults>
/ canvassize = (100%,100%)
/ canvasposition = (50%,50%)
/ canvasAspectRatio = (4,3)
/ minimumVersion = "7.0.0.0"
/ fontStyle = ("Arial", 3%, false, false, false, false, 5, 1)
/ txBGColor = white
/ txColor = black
/ screenColor = white
</defaults>

<values>
/ phase = ""
/ encoding_condition = ""
/ word = ""
/ valence = ""
/ target_list = ""
/ Yes_key = ""
/ No_key = ""
/ res = ""
</values>

<parameters>
//design parameters:
/ phaseSetting = 3                    //1 = learning phase only
                                        //2 = test phase only
                                        //3 = learning phase -> break/delay -> test phase

                                        
                                        
//timing parameters
/ delayDurationMs = 600000                //the duration (in ms) of the break inbetween phaseA and phaseB IF APPLICABLE
                                        //default: 10 minutes
/ questionDuration = 2000
/ wordDuration = 4000    //the duration (in ms) that the images are presented during phaseA and phaseB
/ iti = 1000                                //the intertrial interval (in ms): blank screen before the next word is presented in phaseA and phaseB


</parameters>

<expt a1b2c3>
/ onExptBegin = {
         values.res = 1;
                 if (values.res == "1") {values.Yes_key = "V"; values.No_key = "B"}
      if (values.res == "2") {values.Yes_key = "B"; values.No_key = "V"}
}
/ blocks = [1=encoding_self_list1; 2=encoding_semantic_list2; 3=encoding_structural_list3]
/ groups = (1 of 3)
</expt>

<expt b3c1a2>
/ onExptBegin = {
   values.res = 1;
      if (values.res == "1") {values.Yes_key = "V"; values.No_key = "B"}
  if (values.res == "2") {values.Yes_key = "B"; values.No_key = "V"}
}
/ blocks = [1=encoding_semantic_list3; 2=encoding_structural_list1; 3=encoding_self_list2]
/ groups = (2 of 3)
</expt>

<expt c2a3b1>
/ onExptBegin = {
   values.res = 1;
      if (values.res == "1") {values.Yes_key = "V"; values.No_key = "B"}
  if (values.res == "2") {values.Yes_key = "B"; values.No_key = "V"}
}
/ blocks = [1=encoding_structural_list2; 2=encoding_self_list3; 3=encoding_semantic_list1]
/ groups = (3 of 3)
</expt>

<item self_targetList1_positive>
/ 0 = "prompt"
/ 1 = "punctual"
/ 2 = "bright"
/ 3 = "shrewd"
/ 4 = "attentive"
/ 5 = "cautious"
/ 6 = "outspoken"
/ 7 = "dependable"
/ 8 = "patient"
/ 9 = "admirable"
/ 10 = "relaxed"
/ 11 = "persuasive"
</item>

<item self_targetList1_negative>
/ 0 = "melancholy"
/ 1 = "scolding"
/ 2 = "dominating"
/ 3 = "wasteful"
/ 4 = "skeptical"
/ 5 = "ungraceful"
/ 6 = "foolish"
/ 7 = "unhealthy"
/ 8 = "ordinary"
/ 9 = "sloppy"
/ 10 = "abusive"
/ 11 = "irrational"
</item>

<item self_targetList2_positive>
/ 0 = "consistent"
/ 1 = "prideful"
/ 2 = "forward"
/ 3 = "ingenious"
/ 4 = "skilled"
/ 5 = "amusing"
/ 6 = "nonchalant"
/ 7 = "realist"
/ 8 = "energetic"
/ 9 = "grateful"
/ 10 = "ambitious"
/ 11 = "serious"
</item>

<item self_targetList2_negative>
/ 0 = "headstrong"
/ 1 = "unskilled"
/ 2 = "bashful"
/ 3 = "lifeless"
/ 4 = "unpunctual"
/ 5 = "antisocial"
/ 6 = "demanding"
/ 7 = "jealous"
/ 8 = "annoying"
/ 9 = "changeable"
/ 10 = "nervous"
/ 11 = "worrier"
</item>

<item self_targetList3_positive>
/ 0 = "clever"
/ 1 = "generous"
/ 2 = "observant"
/ 3 = "tactful"
/ 4 = "trustful"
/ 5 = "direct"
/ 6 = "optimistic"
/ 7 = "active"
/ 8 = "precise"
/ 9 = "humorous"
/ 10 = "excitable"
/ 11 = "daring"
</item>

<item self_targetList3_negative>
/ 0 = "inhibited"
/ 1 = "insincere"
/ 2 = "undecided"
/ 3 = "lonely"
/ 4 = "indecisive"
/ 5 = "snobbish"
/ 6 = "unlucky"
/ 7 = "scheming"
/ 8 = "unstudious"
/ 9 = "malicious"
/ 10 = "unpleasant"
/ 11 = "meddlesome"
</item>

<item semantic_targetList1_positive>
/ 0 = "prompt"
/ 1 = "punctual"
/ 2 = "bright"
/ 3 = "shrewd"
/ 4 = "attentive"
/ 5 = "cautious"
/ 6 = "outspoken"
/ 7 = "dependable"
/ 8 = "patient"
/ 9 = "admirable"
/ 10 = "relaxed"
/ 11 = "persuasive"
</item>

<item semantic_targetList1_negative>
/ 0 = "melancholy"
/ 1 = "scolding"
/ 2 = "dominating"
/ 3 = "wasteful"
/ 4 = "skeptical"
/ 5 = "ungraceful"
/ 6 = "foolish"
/ 7 = "unhealthy"
/ 8 = "ordinary"
/ 9 = "sloppy"
/ 10 = "abusive"
/ 11 = "irrational"
</item>

<item semantic_targetList2_positive>
/ 0 = "consistent"
/ 1 = "prideful"
/ 2 = "forward"
/ 3 = "ingenious"
/ 4 = "skilled"
/ 5 = "amusing"
/ 6 = "nonchalant"
/ 7 = "realist"
/ 8 = "energetic"
/ 9 = "grateful"
/ 10 = "ambitious"
/ 11 = "serious"
</item>

<item semantic_targetList2_negative>
/ 0 = "headstrong"
/ 1 = "unskilled"
/ 2 = "bashful"
/ 3 = "lifeless"
/ 4 = "unpunctual"
/ 5 = "antisocial"
/ 6 = "demanding"
/ 7 = "jealous"
/ 8 = "annoying"
/ 9 = "changeable"
/ 10 = "nervous"
/ 11 = "worrier"
</item>

<item semantic_targetList3_positive>
/ 0 = "clever"
/ 1 = "generous"
/ 2 = "observant"
/ 3 = "tactful"
/ 4 = "trustful"
/ 5 = "direct"
/ 6 = "optimistic"
/ 7 = "active"
/ 8 = "precise"
/ 9 = "humorous"
/ 10 = "excitable"
/ 11 = "daring"
</item>

<item semantic_targetList3_negative>
/ 0 = "inhibited"
/ 1 = "insincere"
/ 2 = "undecided"
/ 3 = "lonely"
/ 4 = "indecisive"
/ 5 = "snobbish"
/ 6 = "unlucky"
/ 7 = "scheming"
/ 8 = "unstudious"
/ 9 = "malicious"
/ 10 = "unpleasant"
/ 11 = "meddlesome"
</item>

<item structural_targetList1_positive>
/ 0 = "prompt"
/ 1 = "punctual"
/ 2 = "bright"
/ 3 = "shrewd"
/ 4 = "attentive"
/ 5 = "cautious"
/ 6 = "OUTSPOKEN"
/ 7 = "DEPENDABLE"
/ 8 = "PATIENT"
/ 9 = "ADMIRABLE"
/ 10 = "RELAXED"
/ 11 = "PERSUASIVE"
</item>

<item structural_targetList1_negative>
/ 0 = "melancholy"
/ 1 = "scolding"
/ 2 = "dominating"
/ 3 = "wasteful"
/ 4 = "skeptical"
/ 5 = "ungraceful"
/ 6 = "FOOLISH"
/ 7 = "UNHEALTHY"
/ 8 = "ORDINARY"
/ 9 = "SLOPPY"
/ 10 = "ABUSIVE"
/ 11 = "IRRATIONAL"
</item>

<item structural_targetList2_positive>
/ 0 = "consistent"
/ 1 = "prideful"
/ 2 = "forward"
/ 3 = "ingenious"
/ 4 = "skilled"
/ 5 = "amusing"
/ 6 = "NONCHALANT"
/ 7 = "REALIST"
/ 8 = "ENERGETIC"
/ 9 = "GRATEFUL"
/ 10 = "AMBITIOUS"
/ 11 = "SERIOUS"
</item>

<item structural_targetList2_negative>
/ 0 = "headstrong"
/ 1 = "unskilled"
/ 2 = "bashful"
/ 3 = "lifeless"
/ 4 = "unpunctual"
/ 5 = "antisocial"
/ 6 = "DEMANDING"
/ 7 = "JEALOUS"
/ 8 = "ANNOYING"
/ 9 = "CHANGEABLE"
/ 10 = "NERVOUS"
/ 11 = "WORRIER"
</item>

<item structural_targetList3_positive>
/ 0 = "clever"
/ 1 = "generous"
/ 2 = "observant"
/ 3 = "tactful"
/ 4 = "trustful"
/ 5 = "direct"
/ 6 = "OPTIMISTIC"
/ 7 = "ACTIVE"
/ 8 = "PRECISE"
/ 9 = "HUMOROUS"
/ 10 = "EXCITABLE"
/ 11 = "DARING"
</item>

<item structural_targetList3_negative>
/ 0 = "inhibited"
/ 1 = "insincere"
/ 2 = "undecided"
/ 3 = "lonely"
/ 4 = "indecisive"
/ 5 = "snobbish"
/ 6 = "UNLUCKY"
/ 7 = "SCHEMING"
/ 8 = "UNSTUDIOUS"
/ 9 = "MALICIOUS"
/ 10 = "UNPLEASANT"
/ 11 = "MEDDLESOME"
</item>


<text self_target1_negative>
/ items = self_targetList1_negative
</text>

<text self_target1_positive>
/ items = self_targetList1_positive
</text>

<text self_target2_negative>
/ items = self_targetList2_negative
</text>

<text self_target2_positive>
/ items = self_targetList2_positive
</text>

<text self_target3_negative>
/ items = self_targetList3_negative
</text>

<text self_target3_positive>
/ items = self_targetList3_positive
</text>

<text semantic_target1_negative>
/ items = semantic_targetList1_negative
</text>

<text semantic_target1_positive>
/ items = semantic_targetList1_positive
</text>

<text semantic_target2_negative>
/ items = semantic_targetList2_negative
</text>

<text semantic_target2_positive>
/ items = semantic_targetList2_positive
</text>

<text semantic_target3_negative>
/ items = semantic_targetList3_negative
</text>

<text semantic_target3_positive>
/ items = semantic_targetList3_positive
</text>

<text structural_target1_negative>
/ items = structural_targetList1_negative
</text>

<text structural_target1_positive>
/ items = structural_targetList1_positive
</text>

<text structural_target2_negative>
/ items = structural_targetList2_negative
</text>

<text structural_target2_positive>
/ items = structural_targetList2_positive
</text>

<text structural_target3_negative>
/ items = structural_targetList3_negative
</text>

<text structural_target3_positive>
/ items = structural_targetList3_positive
</text>


// self-referential condition
<block encoding_self_list1>
/ onBlockBegin = {
    values.phase = "Encoding";
    values.encoding_condition ="self-referential";
    values.target_list = "list1";
}
/ trials = [1-24 = noreplace(encoding_self_list1_positive, encoding_self_list1_negative);]
</block>

<block encoding_self_list2>
/ onBlockBegin = {
    values.phase = "Encoding";
    values.encoding_condition ="self-referential";
    values.target_list = "list2";
}
/ trials = [1-24 = noreplace(encoding_self_list2_positive, encoding_self_list2_negative);]
</block>

<block encoding_self_list3>
/ onBlockBegin = {
    values.phase = "Encoding";
    values.encoding_condition ="self-referential";
    values.target_list = "list3";
}
/ trials = [1-24 = noreplace(encoding_self_list3_positive, encoding_self_list3_negative);]
</block>

<trial encoding_self_list1_positive>
/ onTrialBegin = {values.valence = "positive";
    trial.encoding_self_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_self_list1_positive.insertStimulusTime(text.self_target1_positive, parameters.questionDuration);
    trial.encoding_self_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=selfQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_self_list1_positive.resetStimulusFrames();
values.word = text.self_target1_positive.currentItem;
}    
</trial>

<trial encoding_self_list1_negative>
/ onTrialBegin = {values.valence = "negative";
    trial.encoding_self_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_self_list1_positive.insertStimulusTime(text.self_target1_negative, parameters.questionDuration);
    trial.encoding_self_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=selfQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_self_list1_negative.resetStimulusFrames();
values.word = text.self_target1_negative.currentItem;
}    
</trial>

<trial encoding_self_list2_positive>
/ onTrialBegin = {values.valence = "positive";
    trial.encoding_self_list2_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_self_list2_positive.insertStimulusTime(text.self_target2_positive, parameters.questionDuration);
    trial.encoding_self_list2_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=selfQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_self_list2_positive.resetStimulusFrames();
values.word = text.self_target2_positive.currentItem;
}    
</trial>

<trial encoding_self_list2_negative>
/ onTrialBegin = {values.valence = "negative";
    trial.encoding_self_list2_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_self_list2_positive.insertStimulusTime(text.self_target2_negative, parameters.questionDuration);
    trial.encoding_self_list2_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=selfQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_self_list2_negative.resetStimulusFrames();
values.word = text.self_target2_negative.currentItem;
}    
</trial>

<trial encoding_self_list3_positive>
/ onTrialBegin = {values.valence = "positive";
    trial.encoding_self_list3_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_self_list3_positive.insertStimulusTime(text.self_target3_positive, parameters.questionDuration);
    trial.encoding_self_list3_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=selfQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_self_list3_positive.resetStimulusFrames();
values.word = text.self_target3_positive.currentItem;
}    
</trial>

<trial encoding_self_list3_negative>
/ onTrialBegin = {values.valence = "negative";
    trial.encoding_self_list3_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_self_list3_positive.insertStimulusTime(text.self_target3_negative, parameters.questionDuration);
    trial.encoding_self_list3_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=selfQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_self_list3_negative.resetStimulusFrames();
values.word = text.self_target3_negative.currentItem;
}    
</trial>

<text selfQuestion>
/ items = ("Does this word describe you?")
/ position = (50%, 50%)
</text>

// semantic encoding
<block encoding_semantic_list1>
/ onBlockBegin = {
    values.phase = "Encoding";
    values.encoding_condition ="semantic";
    values.target_list = "list1";
}
/ trials = [1-24 = noreplace(encoding_semantic_list1_positive, encoding_semantic_list1_negative);]
</block>

<block encoding_semantic_list2>
/ onBlockBegin = {
    values.phase = "Encoding";
    values.encoding_condition ="semantic";
    values.target_list = "list2";
}
/ trials = [1-24 = noreplace(encoding_semantic_list2_positive, encoding_semantic_list2_negative);]
</block>

<block encoding_semantic_list3>
/ onBlockBegin = {
    values.phase = "Encoding";
    values.encoding_condition ="semantic";
    values.target_list = "list3";
}
/ trials = [1-24 = noreplace(encoding_semantic_list3_positive, encoding_semantic_list3_negative);]
</block>

<trial encoding_semantic_list1_positive>
/ onTrialBegin = {values.valence = "positive";
    trial.encoding_semantic_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_semantic_list1_positive.insertStimulusTime(text.semantic_target1_positive, parameters.questionDuration);
    trial.encoding_semantic_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=semanticQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_semantic_list1_positive.resetStimulusFrames();
values.word = text.semantic_target1_positive.currentItem;
}    
</trial>

<trial encoding_semantic_list1_negative>
/ onTrialBegin = {values.valence = "negative";
    trial.encoding_semantic_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_semantic_list1_positive.insertStimulusTime(text.semantic_target1_negative, parameters.questionDuration);
    trial.encoding_semantic_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=semanticQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_semantic_list1_negative.resetStimulusFrames();
values.word = text.semantic_target1_negative.currentItem;
}    
</trial>

<trial encoding_semantic_list2_positive>
/ onTrialBegin = {values.valence = "positive";
    trial.encoding_semantic_list2_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_semantic_list2_positive.insertStimulusTime(text.semantic_target2_positive, parameters.questionDuration);
    trial.encoding_semantic_list2_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=semanticQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_semantic_list2_positive.resetStimulusFrames();
values.word = text.semantic_target2_positive.currentItem;
}    
</trial>

<trial encoding_semantic_list2_negative>
/ onTrialBegin = {values.valence = "negative";
    trial.encoding_semantic_list2_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_semantic_list2_positive.insertStimulusTime(text.semantic_target2_negative, parameters.questionDuration);
    trial.encoding_semantic_list2_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=semanticQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_semantic_list2_negative.resetStimulusFrames();
values.word = text.semantic_target2_negative.currentItem;
}    
</trial>

<trial encoding_semantic_list3_positive>
/ onTrialBegin = {values.valence = "positive";
    trial.encoding_semantic_list3_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_semantic_list3_positive.insertStimulusTime(text.semantic_target3_positive, parameters.questionDuration);
    trial.encoding_semantic_list3_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=semanticQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_semantic_list3_positive.resetStimulusFrames();
values.word = text.semantic_target3_positive.currentItem;
}    
</trial>

<trial encoding_semantic_list3_negative>
/ onTrialBegin = {values.valence = "negative";
    trial.encoding_semantic_list3_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_semantic_list3_positive.insertStimulusTime(text.semantic_target3_negative, parameters.questionDuration);
    trial.encoding_semantic_list3_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=semanticQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_semantic_list3_negative.resetStimulusFrames();
values.word = text.semantic_target3_negative.currentItem;
}    
</trial>

<text semanticQuestion>
/ items = ("Is the dictionary definition of this word positive?")
/ position = (50%, 50%)
</text>


// structural encoding
<block encoding_structural_list1>
/ onBlockBegin = {
    values.phase = "Encoding";
    values.encoding_condition ="structural";
    values.target_list = "list1";
}
/ trials = [1-24 = noreplace(encoding_structural_list1_positive, encoding_structural_list1_negative);]
</block>

<block encoding_structural_list2>
/ onBlockBegin = {
    values.phase = "Encoding";
    values.encoding_condition ="structural";
    values.target_list = "list2";
}
/ trials = [1-24 = noreplace(encoding_structural_list2_positive, encoding_structural_list2_negative);]
</block>

<block encoding_structural_list3>
/ onBlockBegin = {
    values.phase = "Encoding";
    values.encoding_condition ="structural";
    values.target_list = "list3";
}
/ trials = [1-24 = noreplace(encoding_structural_list3_positive, encoding_structural_list3_negative);]
</block>

<trial encoding_structural_list1_positive>
/ onTrialBegin = {values.valence = "positive";
    trial.encoding_structural_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_structural_list1_positive.insertStimulusTime(text.structural_target1_positive, parameters.questionDuration);
    trial.encoding_structural_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=structuralQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_structural_list1_positive.resetStimulusFrames();
values.word = text.structural_target1_positive.currentItem;
}    
</trial>

<trial encoding_structural_list1_negative>
/ onTrialBegin = {values.valence = "negative";
    trial.encoding_structural_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_structural_list1_positive.insertStimulusTime(text.structural_target1_negative, parameters.questionDuration);
    trial.encoding_structural_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=structuralQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_structural_list1_negative.resetStimulusFrames();
values.word = text.structural_target1_negative.currentItem;
}    
</trial>

<trial encoding_structural_list2_positive>
/ onTrialBegin = {values.valence = "positive";
    trial.encoding_structural_list2_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_structural_list2_positive.insertStimulusTime(text.structural_target2_positive, parameters.questionDuration);
    trial.encoding_structural_list2_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=structuralQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_structural_list2_positive.resetStimulusFrames();
values.word = text.structural_target2_positive.currentItem;
}    
</trial>

<trial encoding_structural_list2_negative>
/ onTrialBegin = {values.valence = "negative";
    trial.encoding_structural_list2_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_structural_list2_positive.insertStimulusTime(text.structural_target2_negative, parameters.questionDuration);
    trial.encoding_structural_list2_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=structuralQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_structural_list2_negative.resetStimulusFrames();
values.word = text.structural_target2_negative.currentItem;
}    
</trial>

<trial encoding_structural_list3_positive>
/ onTrialBegin = {values.valence = "positive";
    trial.encoding_structural_list3_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_structural_list3_positive.insertStimulusTime(text.structural_target3_positive, parameters.questionDuration);
    trial.encoding_structural_list3_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=structuralQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_structural_list3_positive.resetStimulusFrames();
values.word = text.structural_target3_positive.currentItem;
}    
</trial>

<trial encoding_structural_list3_negative>
/ onTrialBegin = {values.valence = "negative";
    trial.encoding_structural_list3_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
  trial.encoding_structural_list3_positive.insertStimulusTime(text.structural_target3_negative, parameters.questionDuration);
    trial.encoding_structural_list3_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=structuralQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_structural_list3_negative.resetStimulusFrames();
values.word = text.structural_target3_negative.currentItem;
}    
</trial>


<text structuralQuestion>
/ items = ("Is this word typed in upper case letters?")
/ position = (50%, 50%)
</text>

If you want others to be able to make sense of your code and what you intend it to do, you ought to comment it. Once you've done that, I am willing to take a look.



Above one mistake. You're inserting the stimuli into the wrong trial altogether (the positive trial), so of course they're not showing up in the negative trial then. I'm not going to go through the whole thing, you now know what to look out for. What I said before stands nonetheless: Please properly comment your code going forward. 
By Wasabi8888 - 7/14/2025

Hi Dave,

For each trial, the question (e.g., “Does this word describe you?”) should appear for 2 s, followed by the adjective for 4 s (response window), and then a 1 s blank screen. The word should stay on screen for the full 4 s, regardless of response.

I noticed that when no response is made, latency is always recorded as 7000 ms. Shouldn’t it be measured from beginResponseTime (i.e., after the 2-second question)? I’ve set /beginResponseTime = parameters.questionDuration — is there anything wrong with the trial setup below? Should I remove / trialDuration = 7000 and use / response = timeout(parameters.wordDuration)?

Thanks so much!

<trial encoding_self_list1_positive>
/ onTrialBegin = {values.valence = "positive";
    trial.encoding_self_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration);// end of the question presentation
  trial.encoding_self_list1_positive.insertStimulusTime(text.self_target1_positive, parameters.questionDuration); // present word
    trial.encoding_self_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration); //end of the word presentation
    
}
/ stimulusTimes = [0=selfQuestion]// start with the question
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration//the trial start accepting responses at the onset of the word.
/ responseInterrupt = frames
/ postTrialPause = parameters.iti //A blank screen for 1 s
/ trialDuration = 7000// 2000+4000+1000
/ onTrialEnd = {trial.encoding_self_list1_positive.resetStimulusFrames();
values.word = text.self_target1_positive.currentItem;
values.RT = this.latency;
    if (this.response == 0){
        values.RT = "";
    }
}    
</trial>
By Dave - 7/14/2025

Wasabi8888 - 7/14/2025
Hi Dave,

For each trial, the question (e.g., “Does this word describe you?”) should appear for 2 s, followed by the adjective for 4 s (response window), and then a 1 s blank screen. The word should stay on screen for the full 4 s, regardless of response.

I noticed that when no response is made, latency is always recorded as 7000 ms. Shouldn’t it be measured from beginResponseTime (i.e., after the 2-second question)? I’ve set /beginResponseTime = parameters.questionDuration — is there anything wrong with the trial setup below? Should I remove / trialDuration = 7000 and use / response = timeout(parameters.wordDuration)?

Thanks so much!

<trial encoding_self_list1_positive>
/ onTrialBegin = {values.valence = "positive";
    trial.encoding_self_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration);// end of the question presentation
  trial.encoding_self_list1_positive.insertStimulusTime(text.self_target1_positive, parameters.questionDuration); // present word
    trial.encoding_self_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration); //end of the word presentation
    
}
/ stimulusTimes = [0=selfQuestion]// start with the question
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration//the trial start accepting responses at the onset of the word.
/ responseInterrupt = frames
/ postTrialPause = parameters.iti //A blank screen for 1 s
/ trialDuration = 7000// 2000+4000+1000
/ onTrialEnd = {trial.encoding_self_list1_positive.resetStimulusFrames();
values.word = text.self_target1_positive.currentItem;
values.RT = this.latency;
    if (this.response == 0){
        values.RT = "";
    }
}    
</trial>

> I noticed that when no response is made, latency is always recorded as 7000 ms. Shouldn’t it be measured from beginResponseTime (i.e., after the 2-second question)?

Yes, it's a bug. When there's no response, the trial foregoes all the fancy latency calculations and just logs duration. A performance tweak gone awry. It works correctly with /timeout, but that doesn't give you a fixed trial duration of 7 seconds, only a maximum duration. I can't see a workaround for fixed duration, so it's either live with the problem for the time being or apply a correction to values.RT when there's no response.
By Wasabi8888 - 7/14/2025

Hi Dave,

Thank you for the clarification! Just to double check, when a response is made, latency is still measured relative to the onset of the word, correct?

I've applied a correction to values.RT when no response is made. Also, could you kindly confirm whether the rest of the trial structure below is consistent with the original description — that is, 2 seconds for the question, 4 seconds for the word (regardless of response), followed by a 1-second blank screen?

Thanks again!

<trial encoding_self_list1_positive>
/ onTrialBegin = {values.valence = "positive";
    trial.encoding_self_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
    trial.encoding_self_list1_positive.insertStimulusTime(text.self_target1_positive, parameters.questionDuration);
    trial.encoding_self_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=selfQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration//the trial start accepting responses at the onset of the word.
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_self_list1_positive.resetStimulusFrames();
values.word = text.self_target1_positive.currentItem;
values.RT = this.latency;
    if (this.response == 0){
        values.RT = 4000;
    }
}    
</trial>
By Dave - 7/14/2025

Wasabi8888 - 7/14/2025
Hi Dave,

Thank you for the clarification! Just to double check, when a response is made, latency is still measured relative to the onset of the word, correct?

I've applied a correction to values.RT when no response is made. Also, could you kindly confirm whether the rest of the trial structure below is consistent with the original description — that is, 2 seconds for the question, 4 seconds for the word (regardless of response), followed by a 1-second blank screen?

Thanks again!

<trial encoding_self_list1_positive>
/ onTrialBegin = {values.valence = "positive";
    trial.encoding_self_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration);
    trial.encoding_self_list1_positive.insertStimulusTime(text.self_target1_positive, parameters.questionDuration);
    trial.encoding_self_list1_positive.insertStimulusTime(clearScreen, parameters.questionDuration+parameters.wordDuration);
    
}
/ stimulusTimes = [0=selfQuestion]
/ validResponse = (values.Yes_key, values.No_key)
/ beginResponseTime = parameters.questionDuration//the trial start accepting responses at the onset of the word.
/ responseInterrupt = frames
/ postTrialPause = parameters.iti
/ trialDuration = 7000
/ onTrialEnd = {trial.encoding_self_list1_positive.resetStimulusFrames();
values.word = text.self_target1_positive.currentItem;
values.RT = this.latency;
    if (this.response == 0){
        values.RT = 4000;
    }
}    
</trial>

> Just to double check, when a response is made, latency is still measured relative to the onset of the word, correct?

Yes.

> Also, could you kindly confirm whether the rest of the trial structure below is consistent with the original description — that is, 2 seconds for the question, 4 seconds for the word (regardless of response), followed by a 1-second blank screen?

That is correct, for parameters.questionDuration = 2000, parameters.wordDuration = 4000, and parameters.iti = 1000. For other values, it obviously isn't.
By Wasabi8888 - 7/14/2025

Hi Dave,

Thanks very much for confirming! Just to make sure I understand correctly — by "other values", did you mean variables like RT and latency, or were you referring to something else?
By Dave - 7/14/2025

Wasabi8888 - 7/14/2025
Hi Dave,

Thanks very much for confirming! Just to make sure I understand correctly — by "other values", did you mean variables like RT and latency, or were you referring to something else?

I'm referring to the values chosen for parameters.questionDuration, parameters.wordDuration, and parameters.iti.