Stimuli timings inaccuracy


Author
Message
peter
peter
Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)
Group: Forum Members
Posts: 64, Visits: 210
I am having a few issues with timings for my current task.

The task is a Flash beep illusion.

The following stimuli are presented.

1.    Fixation cross for 1000 ms
2.    Then 2 stimuli are presented simultaneously, (1) a ‘Ball’ for 12ms (covered by the ‘Grey’ picture) and (2) a ‘Beep’ (7                  seconds in duration).
3.    36 seconds after the end of the first ‘Beep’ a second ‘Beep’ should then sound.

Below is the script for a trial with a 36 ms delay between the end of the first ‘Beep’ and the start of the second ‘Beep’.

<trial Delay_36>
/ stimulustimes = [0=Fix; 1000=Ball; 1000=Beep; 1012=Grey; 1012=Fix; 1043=Beep]
/ trialduration = 2000
/ branch = [trial.Agency]
/ recorddata = false
/ ontrialend =[values.delay=36]
</trial>

I have monitored timings via the audit option. Unfortunately, my stimuli times are out by around 10-12 milliseconds. This error varies across trials and machines. I am not currently erasing stimuli.

My question then is this, is my programming approach wrong or am I asking for too much accuracy from a humble PC?
Many thanks for your help
Peter

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
peter - 7/18/2020
I am having a few issues with timings for my current task.

The task is a Flash beep illusion.

The following stimuli are presented.

1.    Fixation cross for 1000 ms
2.    Then 2 stimuli are presented simultaneously, (1) a ‘Ball’ for 12ms (covered by the ‘Grey’ picture) and (2) a ‘Beep’ (7                  seconds in duration).
3.    36 seconds after the end of the first ‘Beep’ a second ‘Beep’ should then sound.

Below is the script for a trial with a 36 ms delay between the end of the first ‘Beep’ and the start of the second ‘Beep’.

<trial Delay_36>
/ stimulustimes = [0=Fix; 1000=Ball; 1000=Beep; 1012=Grey; 1012=Fix; 1043=Beep]
/ trialduration = 2000
/ branch = [trial.Agency]
/ recorddata = false
/ ontrialend =[values.delay=36]
</trial>

I have monitored timings via the audit option. Unfortunately, my stimuli times are out by around 10-12 milliseconds. This error varies across trials and machines. I am not currently erasing stimuli.

My question then is this, is my programming approach wrong or am I asking for too much accuracy from a humble PC?
Many thanks for your help
Peter

Whether timings can be achieved depends on the display's refresh rate. This is chiefly true for visual stimuli, i.e. stuff that needs to be drawn to the screen, but Inquisit locks all timings to the refresh rate so that visual and non-visual stimuli remain in sync (e.g. an image and a soud displayed at the same time). A display running at 100Hz has a 10ms refresh cycle, a display running at 60Hz has a 16.67ms refresh cycle, and a display running at 50Hz has a 20ms refresh cycle. Stimuli can only be drawn to the screen beginning with the start of a new refresh cycle, so that is (a)  why you're seeing timing discrepancies, and (b) why those differ across machines (their displays are running at different rates).

peter
peter
Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)
Group: Forum Members
Posts: 64, Visits: 210
Dave - 7/20/2020
peter - 7/18/2020
I am having a few issues with timings for my current task.

The task is a Flash beep illusion.

The following stimuli are presented.

1.    Fixation cross for 1000 ms
2.    Then 2 stimuli are presented simultaneously, (1) a ‘Ball’ for 12ms (covered by the ‘Grey’ picture) and (2) a ‘Beep’ (7                  seconds in duration).
3.    36 seconds after the end of the first ‘Beep’ a second ‘Beep’ should then sound.

Below is the script for a trial with a 36 ms delay between the end of the first ‘Beep’ and the start of the second ‘Beep’.

<trial Delay_36>
/ stimulustimes = [0=Fix; 1000=Ball; 1000=Beep; 1012=Grey; 1012=Fix; 1043=Beep]
/ trialduration = 2000
/ branch = [trial.Agency]
/ recorddata = false
/ ontrialend =[values.delay=36]
</trial>

I have monitored timings via the audit option. Unfortunately, my stimuli times are out by around 10-12 milliseconds. This error varies across trials and machines. I am not currently erasing stimuli.

My question then is this, is my programming approach wrong or am I asking for too much accuracy from a humble PC?
Many thanks for your help
Peter

Whether timings can be achieved depends on the display's refresh rate. This is chiefly true for visual stimuli, i.e. stuff that needs to be drawn to the screen, but Inquisit locks all timings to the refresh rate so that visual and non-visual stimuli remain in sync (e.g. an image and a soud displayed at the same time). A display running at 100Hz has a 10ms refresh cycle, a display running at 60Hz has a 16.67ms refresh cycle, and a display running at 50Hz has a 20ms refresh cycle. Stimuli can only be drawn to the screen beginning with the start of a new refresh cycle, so that is (a)  why you're seeing timing discrepancies, and (b) why those differ across machines (their displays are running at different rates).

I conclude from your response that my programming approach is sound and that PC refresh rate issues are the main obstacle to accurate timings. I will re jig the experimental design in the light of your advice, probably by increasing the durations and adjusting display timings to commonly encountered refresh rates. Many thanks for your help.
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search