Millisecond Forums

Gif animation as a fixation point problem

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

By kulajw - 10/6/2014

Dear All,

I have problem with gif animation set as fixation point.

If i set as fixation point (fp) text stimuli (text_fp) my script works fine, during whole block,
fp is visible but disapeers in recall (target) phase on trial.target1 nad trial.target2.
After trial.target2 in trial.reset I set stimulustime [0=text_fp]  without erase so I have text_fp visible till next  trial.target1.

BUT if i set as  fixation point gif animation -
video_fp  then something is going wrong. In trial target1 and target2 bgsim is still visible.

I have created a white rectangle mask to overwrite bgstim but it does not work.

I change mask color to black and I saw that video stimuli is alwas on first plan and cant be overwrite.
 
I can`t figure out why.

I looked through documentation but find nothing ;/

Mayby someone can help?

Thanks a lot for help

I attach my script and animation

By Dave - 10/6/2014

If you play back an animation (a video / a gif) as background stimulus, the screen portion displaying that animation has to be redrawn constantly (after all, an animation is nothing more than a rapid sequence of static images). Thus you cannot overwrite it with a simple static stimulus (such as a <shape>).

Depending on how you want your script to behave, you can either (1) overwrite the fixation animation using *another* blank gif-animation or (2) display the fixation animation via a <trial>'s /stimulustimes or -frames instead of /bgstim (which will stop the animation when the trial terminates).
By kulajw - 10/6/2014

Thanks a lot, you're right !
 refreshing - it is so simple.


But what can I do to erase this gif fixation point in target.trial?

Is there any way? Do you have any idea?

Thanks
By Dave - 10/6/2014

I've listed two options in my previous reply (these were added for clarity).
By kulajw - 10/6/2014


Thanks
I try, but unfortunetly it does not work.

Option 1 I still have the same situation, I create white blank gif animation to erase fixation point, but fixation point is still on first plan,
then I create black gif  animation and black animation is unable to erase fixation point. It looks like video bgstim will be always before mask.



Opoverwrite the fixation animation using *another* blank gif-animation or (2) display the fixation animation via a <trial>'s /stimulustimes or -frames instead of /bgstim (which will stop the animation when the trial terminates). - See more at: http://www.millisecond.com/forums/Post.aspx?TopicID=14545&PageIndex=1&Task=PostTopicReply&ParentID=14545#sthash.GK6avNmF.dpuf
Option 2 in my sript trials are replaced very fast, one letter- one trial, and if i try set fixation poin as a stimuliframe/stimulitiem i have no smooth movement of gif animation. I have very short blinks.  Mayby I need to rewrite my script  to use animation as fixation point ;/

Thank you anyway.


overwrite the fixation animation using *another* blank gif-animation or (2) display the fixation animation via a <trial>'s /stimulustimes or -frames instead of /bgstim (which will stop the animation when the trial terminates). - See more at: http://www.millisecond.com/forums/Post.aspx?TopicID=14545&PageIndex=1&Task=PostTopicReply&ParentID=14545#sthash.GK6avNmF.dpuf

overwrite the fixation animation using *another* blank gif-animation or (2) display the fixation animation via a <trial>'s /stimulustimes or -frames instead of /bgstim (which will stop the animation when the trial terminates). - See more at: http://www.millisecond.com/forums/Post.aspx?TopicID=14545&PageIndex=1&Task=PostTopicReply&ParentID=14545#sthash.GK6avNmF.dpuf
(1) overwrite the fixation animation using *another* blank gif-animation - See more at: http://www.millisecond.com/forums/Topic14545.aspx#sthash.uv8hdy7P.dpuf
By Dave - 10/6/2014

I see. Consider doing something along the lines of:


<values>
/trial_no=0
/trial_max=6
/trial_set=0
/target1_in_sequence=1
/target2_in_sequence=3
/target1_position=0
/target2_position=0
/transorm_count =0
/timeout=100
/range=0
/position=0
/hposition=50
/vposition=50
</values>

<values>
/a=0
/b=0
</values>

<video video_fp>
/items=("fp200.gif")
/size = (100,100)
/erase = false
/loop=true
/hposition = values.hposition
/vposition= values.vposition
</video>

<text text_fp>
/items=("+")
/erase = false
</text>

<item stimulus>
/1 = "A"
/2 = "B"
/3 = "C"
/4 = "D"
/5 = "E"
/6 = "F"
/7 = "G"
/8 = "H"
/9 = "W"
/10 = "J"
</item>

<item set>
</item>

<list pos>
/items = (1,2,3)
</list>

<list stimulus>
/items = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
/replace = false
</list>

<text S1L>
/items = stimulus
/position = (90,50)
/fontstyle = ("Arial", 10%)
/select = list.stimulus.nextvalue
/size = (100,100)
/erase = true(255,255,255)
</text>

<text S2L>
/items = stimulus
/position = (75,80)
/fontstyle = ("Arial", 10%)
/select = list.stimulus.nextvalue
/ size = (100,100)
/erase = true(255,255,255)
</text>

<text S3L>
/items = stimulus
/position = (75,20)
/fontstyle = ("Arial", 10%)
/select = list.stimulus.nextvalue
/ size = (100,100)
/erase = true(255,255,255)
</text>

<text target1>
/ items = set
/ txcolor = (0,0,139)
/ fontstyle = ("Arial", 10%)
/select = values.target1_in_sequence
/size = (400,400)
/position = (50,50)
</text>

<text target2>
/ items = set
/ txcolor = (0,0,139)
/ fontstyle = ("Arial", 10%)
/ select = values.target2_in_sequence
/ size = (400,400)
/position = (50,50)
</text>

<text tak>
/items = ("tak  -> ")
/fontstyle = ("Calibri", 5%)
/position = (75,80)
</text>

<text nie>
/items = (" <-  nie")
/fontstyle = ("Calibri", 5%)
/position = (25,80)
</text>

<trial A>
/ontrialbegin=[values.trial_no+=1]
/ontrialbegin = [
if (list.pos.nextvalue==1) trial.A.setstimulustime(text.S1L,0);           
if (list.pos.nextvalue==2) trial.A.setstimulustime(text.S2L,0);
if (list.pos.nextvalue==3) trial.A.setstimulustime(text.S3L,0);]

/timeout = values.timeout
/ontrialend = [
if(trial.A.stimulustime(0)=="text.S1L") item.set.item = text.S1L.currentitem;
if(trial.A.stimulustime(0)=="text.S2L") item.set.item = text.S2L.currentitem;
if(trial.A.stimulustime(0)=="text.S3L") item.set.item = text.S3L.currentitem;
values.position=trial.A.stimulustime(0);
trial.a.clearstimulusframes(0)]

/branch = [if (values.trial_no<values.trial_max) trial.A]
</trial>

<trial target1>
/stimulustimes= [0=target1,nie,tak]
/correctresponse = (203)
/validresponse = (203,205)
</trial>

<trial target2>
/ontrialbegin = [values.a=0;
 values.b=0]
/stimulustimes= [0=target2,nie,tak]
/correctresponse = (205)
/validresponse = (203,205)
/branch = [trial.reset]
</trial>

<trial reset>
/ ontrialbegin = [item.set.clearitems(); list.stimulus.reset();list.pos.reset(); values.trial_no=0;]
/ recorddata = false
/ timeout = 200
</trial>

<block A>
/trials= [1=A]
/bgstim = (video_fp)
</block>

<block Atarget>
/trials= [1=sequence(target1,target2)]
</block>

<expt>
/ blocks = [1-10=sequence(a,atarget)]
</expt>

By kulajw - 10/6/2014




Yes!
Your suggestion is a great idea.

Works perfect
Thank You ;)