mirror of
https://github.com/jspsych/jsPsych.git
synced 2025-05-10 19:20:55 +00:00
Rounds all duration measurements to the nearest INT (#2129)
Rounds all duration measurements to the nearest INT
This commit is contained in:
parent
2802430999
commit
f37f64ac61
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
|
@ -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);
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
@ -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 = "";
|
||||||
|
@ -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
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
@ -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);
|
||||||
|
@ -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) {
|
||||||
|
@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -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);
|
||||||
|
@ -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 = {};
|
||||||
|
@ -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 = {};
|
||||||
|
@ -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 = {};
|
||||||
|
@ -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 = {};
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
@ -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();
|
||||||
|
Loading…
Reference in New Issue
Block a user