Rounds all duration measurements to the nearest INT (#2129)

Rounds all duration measurements to the nearest INT
This commit is contained in:
Josh de Leeuw 2021-09-10 09:55:35 -04:00 committed by GitHub
parent 2802430999
commit f37f64ac61
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
25 changed files with 29 additions and 28 deletions

View File

@ -105,9 +105,10 @@ export class KeyboardListenerAPI {
} }
const listener: KeyboardListener = (e) => { const listener: KeyboardListener = (e) => {
const rt = const rt = Math.round(
(rt_method == "performance" ? performance.now() : audio_context.currentTime * 1000) - (rt_method == "performance" ? performance.now() : audio_context.currentTime * 1000) -
startTime; startTime
);
if (rt < minimum_valid_rt) { if (rt < minimum_valid_rt) {
return; return;
} }

View File

@ -151,7 +151,7 @@ class AnimationPlugin implements JsPsychPlugin<Info> {
// record when image was shown // record when image was shown
animation_sequence.push({ animation_sequence.push({
stimulus: trial.stimuli[animate_frame], stimulus: trial.stimuli[animate_frame],
time: performance.now() - startTime, time: Math.round(performance.now() - startTime),
}); });
if (trial.frame_isi > 0) { if (trial.frame_isi > 0) {
@ -162,7 +162,7 @@ class AnimationPlugin implements JsPsychPlugin<Info> {
// record when blank image was shown // record when blank image was shown
animation_sequence.push({ animation_sequence.push({
stimulus: "blank", stimulus: "blank",
time: performance.now() - startTime, time: Math.round(performance.now() - startTime),
}); });
}, trial.frame_time); }, trial.frame_time);
} }

View File

@ -207,7 +207,7 @@ class AudioButtonResponsePlugin implements JsPsychPlugin<Info> {
function after_response(choice) { function after_response(choice) {
// measure rt // measure rt
var endTime = performance.now(); var endTime = performance.now();
var rt = endTime - startTime; var rt = Math.round(endTime - startTime);
if (context !== null) { if (context !== null) {
endTime = context.currentTime; endTime = context.currentTime;
rt = Math.round((endTime - startTime) * 1000); rt = Math.round((endTime - startTime) * 1000);

View File

@ -249,7 +249,7 @@ class AudioSliderResponsePlugin implements JsPsychPlugin<Info> {
.addEventListener("click", function () { .addEventListener("click", function () {
// measure response time // measure response time
var endTime = performance.now(); var endTime = performance.now();
var rt = endTime - startTime; var rt = Math.round(endTime - startTime);
if (context !== null) { if (context !== null) {
endTime = context.currentTime; endTime = context.currentTime;
rt = Math.round((endTime - startTime) * 1000); rt = Math.round((endTime - startTime) * 1000);

View File

@ -180,7 +180,7 @@ class CanvasButtonResponsePlugin implements JsPsychPlugin<Info> {
function after_response(choice) { function after_response(choice) {
// measure rt // measure rt
var end_time = performance.now(); var end_time = performance.now();
var rt = end_time - start_time; var rt = Math.round(end_time - start_time);
response.button = parseInt(choice); response.button = parseInt(choice);
response.rt = rt; response.rt = rt;

View File

@ -207,7 +207,7 @@ class CanvasSliderResponsePlugin implements JsPsychPlugin<Info> {
.addEventListener("click", function () { .addEventListener("click", function () {
// measure response time // measure response time
var endTime = performance.now(); var endTime = performance.now();
response.rt = endTime - startTime; response.rt = Math.round(endTime - startTime);
response.response = display_element.querySelector<HTMLInputElement>( response.response = display_element.querySelector<HTMLInputElement>(
"#jspsych-canvas-slider-response-response" "#jspsych-canvas-slider-response-response"
).valueAsNumber; ).valueAsNumber;

View File

@ -102,7 +102,7 @@ class ExternalHtmlPlugin implements JsPsychPlugin<Info> {
display_element.removeEventListener("keydown", key_listener); display_element.removeEventListener("keydown", key_listener);
} }
var trial_data = { var trial_data = {
rt: performance.now() - t0, rt: Math.round(performance.now() - t0),
url: trial.url, url: trial.url,
}; };
display_element.innerHTML = ""; display_element.innerHTML = "";

View File

@ -465,7 +465,7 @@ class FreeSortPlugin implements JsPsychPlugin<Info> {
display_element.querySelector("#jspsych-free-sort-done-btn").addEventListener("click", () => { display_element.querySelector("#jspsych-free-sort-done-btn").addEventListener("click", () => {
if (inside.every(Boolean)) { if (inside.every(Boolean)) {
const end_time = performance.now(); const end_time = performance.now();
const rt = end_time - start_time; const rt = Math.round(end_time - start_time);
// gather data // gather data
const items = display_element.querySelectorAll<HTMLElement>(".jspsych-free-sort-draggable"); const items = display_element.querySelectorAll<HTMLElement>(".jspsych-free-sort-draggable");
// get final position of all items // get final position of all items

View File

@ -161,7 +161,7 @@ class HtmlButtonResponsePlugin implements JsPsychPlugin<Info> {
function after_response(choice) { function after_response(choice) {
// measure rt // measure rt
var end_time = performance.now(); var end_time = performance.now();
var rt = end_time - start_time; var rt = Math.round(end_time - start_time);
response.button = parseInt(choice); response.button = parseInt(choice);
response.rt = rt; response.rt = rt;

View File

@ -200,7 +200,7 @@ class HtmlSliderResponsePlugin implements JsPsychPlugin<Info> {
.addEventListener("click", function () { .addEventListener("click", function () {
// measure response time // measure response time
var endTime = performance.now(); var endTime = performance.now();
response.rt = endTime - startTime; response.rt = Math.round(endTime - startTime);
response.response = display_element.querySelector<HTMLInputElement>( response.response = display_element.querySelector<HTMLInputElement>(
"#jspsych-html-slider-response-response" "#jspsych-html-slider-response-response"
).valueAsNumber; ).valueAsNumber;

View File

@ -314,7 +314,7 @@ class ImageButtonResponsePlugin implements JsPsychPlugin<Info> {
function after_response(choice) { function after_response(choice) {
// measure rt // measure rt
var end_time = performance.now(); var end_time = performance.now();
var rt = end_time - start_time; var rt = Math.round(end_time - start_time);
response.button = parseInt(choice); response.button = parseInt(choice);
response.rt = rt; response.rt = rt;

View File

@ -383,7 +383,7 @@ class ImageSliderResponsePlugin implements JsPsychPlugin<Info> {
.addEventListener("click", function () { .addEventListener("click", function () {
// measure response time // measure response time
var endTime = performance.now(); var endTime = performance.now();
response.rt = endTime - startTime; response.rt = Math.round(endTime - startTime);
response.response = display_element.querySelector<HTMLInputElement>( response.response = display_element.querySelector<HTMLInputElement>(
"#jspsych-image-slider-response-response" "#jspsych-image-slider-response-response"
).valueAsNumber; ).valueAsNumber;

View File

@ -182,7 +182,7 @@ class InstructionsPlugin implements JsPsychPlugin<Info> {
function add_current_page_to_view_history() { function add_current_page_to_view_history() {
var current_time = performance.now(); var current_time = performance.now();
var page_view_time = current_time - last_page_update_time; var page_view_time = Math.round(current_time - last_page_update_time);
view_history.push({ view_history.push({
page_index: current_page, page_index: current_page,
@ -201,7 +201,7 @@ class InstructionsPlugin implements JsPsychPlugin<Info> {
var trial_data = { var trial_data = {
view_history: view_history, view_history: view_history,
rt: performance.now() - start_time, rt: Math.round(performance.now() - start_time),
}; };
this.jsPsych.finishTrial(trial_data); this.jsPsych.finishTrial(trial_data);

View File

@ -175,7 +175,7 @@ class MaxdiffPlugin implements JsPsychPlugin<Info> {
// measure response time // measure response time
var endTime = performance.now(); var endTime = performance.now();
var response_time = endTime - startTime; var response_time = Math.round(endTime - startTime);
// get the alternative by the data-name attribute, allowing a null response if unchecked // get the alternative by the data-name attribute, allowing a null response if unchecked
function get_response(side) { function get_response(side) {

View File

@ -1377,7 +1377,7 @@ class RdkPlugin implements JsPsychPlugin<Info> {
//Else calculate the time and push it into the array //Else calculate the time and push it into the array
else { else {
var currentTimeStamp = performance.now(); //Variable to hold current timestamp var currentTimeStamp = performance.now(); //Variable to hold current timestamp
(frameRate as number[]).push(currentTimeStamp - previousTimestamp); //Push the interval into the frameRate array (frameRate as number[]).push(Math.round(currentTimeStamp - previousTimestamp)); //Push the interval into the frameRate array
previousTimestamp = currentTimeStamp; //Reset the timestamp previousTimestamp = currentTimeStamp; //Reset the timestamp
} }
} }

View File

@ -64,7 +64,7 @@ class ReconstructionPlugin implements JsPsychPlugin<Info> {
const endTrial = () => { const endTrial = () => {
// measure response time // measure response time
var endTime = performance.now(); var endTime = performance.now();
var response_time = endTime - startTime; var response_time = Math.round(endTime - startTime);
// clear keyboard response // clear keyboard response
this.jsPsych.pluginAPI.cancelKeyboardResponse(key_listener); this.jsPsych.pluginAPI.cancelKeyboardResponse(key_listener);

View File

@ -112,7 +112,7 @@ class SerialReactionTimeMousePlugin implements JsPsychPlugin<Info> {
var info = <any>{}; var info = <any>{};
info.row = e.currentTarget.getAttribute("data-row"); info.row = e.currentTarget.getAttribute("data-row");
info.column = e.currentTarget.getAttribute("data-column"); info.column = e.currentTarget.getAttribute("data-column");
info.rt = performance.now() - startTime; info.rt = Math.round(performance.now() - startTime);
after_response(info); after_response(info);
} }
}); });

View File

@ -106,7 +106,7 @@ class SurveyHtmlFormPlugin implements JsPsychPlugin<Info> {
// measure response time // measure response time
var endTime = performance.now(); var endTime = performance.now();
var response_time = endTime - startTime; var response_time = Math.round(endTime - startTime);
var this_form = display_element.querySelector("#jspsych-survey-html-form"); var this_form = display_element.querySelector("#jspsych-survey-html-form");
var question_data = serializeArray(this_form); var question_data = serializeArray(this_form);

View File

@ -175,7 +175,7 @@ class SurveyLikertPlugin implements JsPsychPlugin<Info> {
e.preventDefault(); e.preventDefault();
// measure response time // measure response time
var endTime = performance.now(); var endTime = performance.now();
var response_time = endTime - startTime; var response_time = Math.round(endTime - startTime);
// create object to hold responses // create object to hold responses
var question_data = {}; var question_data = {};

View File

@ -199,7 +199,7 @@ class SurveyMultiChoicePlugin implements JsPsychPlugin<Info> {
event.preventDefault(); event.preventDefault();
// measure response time // measure response time
var endTime = performance.now(); var endTime = performance.now();
var response_time = endTime - startTime; var response_time = Math.round(endTime - startTime);
// create object to hold responses // create object to hold responses
var question_data = {}; var question_data = {};

View File

@ -231,7 +231,7 @@ class SurveyMultiSelectPlugin implements JsPsychPlugin<Info> {
event.preventDefault(); event.preventDefault();
// measure response time // measure response time
var endTime = performance.now(); var endTime = performance.now();
var response_time = endTime - startTime; var response_time = Math.round(endTime - startTime);
// create object to hold responses // create object to hold responses
var question_data = {}; var question_data = {};

View File

@ -196,7 +196,7 @@ class SurveyTextPlugin implements JsPsychPlugin<Info> {
e.preventDefault(); e.preventDefault();
// measure response time // measure response time
var endTime = performance.now(); var endTime = performance.now();
var response_time = endTime - startTime; var response_time = Math.round(endTime - startTime);
// create object to hold responses // create object to hold responses
var question_data = {}; var question_data = {};

View File

@ -298,7 +298,7 @@ class VideoButtonResponsePlugin implements JsPsychPlugin<Info> {
function after_response(choice: string) { function after_response(choice: string) {
// measure rt // measure rt
var end_time = performance.now(); var end_time = performance.now();
var rt = end_time - start_time; var rt = Math.round(end_time - start_time);
response.button = parseInt(choice); response.button = parseInt(choice);
response.rt = rt; response.rt = rt;

View File

@ -355,7 +355,7 @@ class VideoSliderResponsePlugin implements JsPsychPlugin<Info> {
.addEventListener("click", function () { .addEventListener("click", function () {
// measure response time // measure response time
var endTime = performance.now(); var endTime = performance.now();
response.rt = endTime - startTime; response.rt = Math.round(endTime - startTime);
response.response = display_element.querySelector<HTMLInputElement>( response.response = display_element.querySelector<HTMLInputElement>(
"#jspsych-video-slider-response-response" "#jspsych-video-slider-response-response"
).valueAsNumber; ).valueAsNumber;

View File

@ -385,7 +385,7 @@ class VirtualChinrestPlugin implements JsPsychPlugin<Info> {
const endTrial = () => { const endTrial = () => {
// finish trial // finish trial
trial_data.rt = performance.now() - start_time; trial_data.rt = Math.round(performance.now() - start_time);
// remove lingering event listeners, just in case // remove lingering event listeners, just in case
this.jsPsych.pluginAPI.cancelAllKeyboardResponses(); this.jsPsych.pluginAPI.cancelAllKeyboardResponses();