How to insert a blank without messing up rest of trial?


Author
Message
Anoushka Shahane
Anoushka Shahane
Esteemed Member (1.5K reputation)Esteemed Member (1.5K reputation)Esteemed Member (1.5K reputation)Esteemed Member (1.5K reputation)Esteemed Member (1.5K reputation)Esteemed Member (1.5K reputation)Esteemed Member (1.5K reputation)Esteemed Member (1.5K reputation)Esteemed Member (1.5K reputation)
Group: Forum Members
Posts: 6, Visits: 37
Hello everyone!

My task is quite simple: I flash letters on the screen and if there is an A followed by an X, that is a target so subjects click the left mouse button. If it is any other sequence of two letters, it is a non-target, so subjects click the right mouse button.

In this particular trial, there is a voice that says "If X Target" when it is A followed by X, and a voice that says "Nontarget" when it is any other sequence (latter half code not shown below).

So the sequence should be:

blank
A
blank 
X
blank 
"If X Target"

But it is currently:

blank
A
blank
X
"If X Target"

So the sound is coming when the X is still on the screen. If I go to the stimulusframes in <trial ax_xWAND> (bolded line of code below) and insert a blank after ax_x to try to fix this, the X doesn't even show up and the whole branched trial gets messed up. How do I go about inserting the blank while retaining the X so then the "If X Target" voice shows up when the screen is blank right after the X? Any insight into this matter would be appreciated greatly. Thank you very much!


<trial ax_aWAND>
/ stimulusframes = [1=blank, ax_a]
/ pretrialpause = 800
/ trialduration = 1950
/ posttrialpause = 900
/ validresponse = (" ", noresponse)
/ correctresponse = (noresponse)
/ branch = [trial.ax_xWAND]
/ ontrialend = [if ( block.ax.totalcount >= 2 && trial.ax_aWAND.correct == false ) values.axtestcomissionerrorcount += 1]
/ ontrialend = [if ( block.ax.totalcount >= 2 ) values.axtestcomissiontrialcount += 1]
/ ontrialend = [if ( block.ax.totalcount >= 2 )  values.axtestcomissionerrorrate = values.axtestcomissionerrorcount / values.axtestcomissiontrialcount ]
</trial>

<trial ax_xWAND>
/ stimulusframes = [1=blank, ax_x, IfXTarget]
/ pretrialpause = 100
/ trialduration = 1250
/ posttrialpause = 800
/ inputdevice = mouse
/ correctresponse = (lbuttondown)
/ ontrialend = [if ( block.ax.totalcount >= 2 && trial.ax_xWAND.correct == false ) values.axtestomissionerrorcount += 1]
/ ontrialend = [if ( block.ax.totalcount >= 2 ) values.axtestomissiontrialcount += 1]
/ ontrialend = [if ( block.ax.totalcount >= 2 )  values.axtestomissionerrorrate = values.axtestomissionerrorcount / values.axtestomissiontrialcount ]
</trial>

Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 12K, Visits: 98K
/ stimulusframes = [1=blank, ax_x, IfXTarget]

means you're presenting blank, ax_x and IfCTarget all in the same, 1st frame, i.e. at the exact same point in time.

If you want your sound to be played at a later point, you ought to present it at a later point in time, i.e. something along the lines of

/ stimulusframes = [1=blank, ax_x; 20=blank, IfXTarget]

adjusted to whatever timing you want or need.

Anoushka Shahane
Anoushka Shahane
Esteemed Member (1.5K reputation)Esteemed Member (1.5K reputation)Esteemed Member (1.5K reputation)Esteemed Member (1.5K reputation)Esteemed Member (1.5K reputation)Esteemed Member (1.5K reputation)Esteemed Member (1.5K reputation)Esteemed Member (1.5K reputation)Esteemed Member (1.5K reputation)
Group: Forum Members
Posts: 6, Visits: 37
Excellent, thank you very much for your assistance. I thought that stimulusframes were just flashed consecutively -- this makes way more sense now. Thank you!
Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 12K, Visits: 98K
In addition note that /stimulustimes exists as an alternative to /stimulusframes. /stimulustimes allows you to specify the desired presentation timing in milliseconds instead of ordinal frame number:

/ stimulustimes = [0=a,b,c; 100=d,e; 500=f; ...]

GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search