Difference between revisions of "Neurobs Presentation"

From TSG Doc
Jump to: navigation, search
 
(72 intermediate revisions by 6 users not shown)
Line 1: Line 1:
== General ==
+
{{see also|Presentation}}
 +
This page documents some bugs we encountered in Presentation. Users should go to the [[Presentation]] page.
  
Presentation (www.neurobs.com) is a MS Windows based programming tool that allows experimenters to set up and program all sort of experiments. It is the recommended software for time-accurate experiments and therefore supported by the institutes’ (Social Sciences Faculty, the MPI and the Donders Centre for Cognitive Neuroimaging) technical groups. The technical groups offer (PhD) students a couple of preprogrammed experiments (i.e. templates), which can be adjusted to build up own experiments. In this way, the (PhD) student can efficiently program experiments fitting an technical optimal environment. This is what this course is all about. It aims at teaching programming skills, which are needed to modify the existing templates such that they meet your own demands. Because this can be quite complex, we start with short assignments, which address one basic and simple problem at a time. They will all contribute to the final assignment in which you will work on an existing template.
+
== Screen synchronization issue on 120 Hz screens ==
 +
There is a serious synchronization issue where the picture.present() method returns one frame too early. It can be detected by measuring the time between two consecutive present() calls returning:
  
== Software ==
+
<pre>
 +
wait_interval(220);
 +
picture1.present();
 +
int t0 = clock.time();
 +
picture2.present();
 +
int t1 = clock.time();
 +
int dt = t1-t0;
 +
</pre>
  
Please install this version on your computer:
+
One would expect ''picture1'' to be shown for 1 frame (1/120 s) and time ''dt'' to show this. Sometimes this is not the case. The image will be shown for one frame (1/120 s), but ''dt'' will be 2/120 s:
  
32-bit: [[/images/9/9d/Presd171031514.zip|RTENOTITLE]]
+
[[File:Timeline.svg|400px|none|synchronization bug timeline]]
  
64-bit: [[/images/0/0f/Presd171031514_64.zip|RTENOTITLE]]
+
The fact that ''picture1'' is shown for only 1/120 s was confirmed with a light sensor connected to an oscilloscope.
  
== License ==
+
The chance of this issue occurring is highly dependent on the waiting time prior to the first ''present()'' call:
  
To run presentation in the labs you need a software dongle. Reserve a dongle when you book a lab. If you need a dongle for research outside the university you could discuss time limits with Ronny Janssen.
+
[[File:Occurrence.png|400px|none|synchronization bug occurrence]]
  
When you want to run in in your office use the network license. Boot presentation, choose option'''"activations" -> "Network"'''
+
Neurobs people seem to [http://www.neurobs.com/menu_support/menu_forums/view_thread?id=9463&expand_all=1 think] it has something to do with triple buffering, but the graph above was created without triple buffering enabled.
 +
[[File:Failsync2.png|none|Difference of arrival times of two consecutive markers (no red bars are hidden)]]
  
Fill in the following: Network License Settings:
+
<!--==References==
 
+
<references/>-->
{| border="1" cellspacing="1" cellpadding="1" style="width: 500px;"
 
|-
 
| Enable IP Address:
 
| 131.174.202.11
 
|-
 
| Port:
 
| 1245
 
|-
 
| Timeout (ms):
 
| 5000
 
|}
 
 
 
[[File:PresentationLicentie.jpg|left|PresentationLicentie.jpg]]
 
 
 
== Course ==
 
 
 
Find the presentation workshop documentation here [[/images/9/9e/Programming_with_Presentation_2013.pdf|RTENOTITLE]]
 
 
 
Find the presentation prereader here [[/images/4/4c/Presentation_pcl_pre-read_2013_.pdf|RTENOTITLE]]
 
 
 
== Template ==
 
 
 
Find the presentation Template here [[/images/d/d1/Template2014.zip|RTENOTITLE]]
 
 
 
== Other Templates ==
 

Latest revision as of 10:36, 18 January 2016

See also: Presentation

This page documents some bugs we encountered in Presentation. Users should go to the Presentation page.

Screen synchronization issue on 120 Hz screens

There is a serious synchronization issue where the picture.present() method returns one frame too early. It can be detected by measuring the time between two consecutive present() calls returning:

wait_interval(220);
picture1.present();
int t0 = clock.time(); 
picture2.present();
int t1 = clock.time(); 
int dt = t1-t0;

One would expect picture1 to be shown for 1 frame (1/120 s) and time dt to show this. Sometimes this is not the case. The image will be shown for one frame (1/120 s), but dt will be 2/120 s:

synchronization bug timeline

The fact that picture1 is shown for only 1/120 s was confirmed with a light sensor connected to an oscilloscope.

The chance of this issue occurring is highly dependent on the waiting time prior to the first present() call:

synchronization bug occurrence

Neurobs people seem to think it has something to do with triple buffering, but the graph above was created without triple buffering enabled.

Difference of arrival times of two consecutive markers (no red bars are hidden)