threshold issueshttps://gitlab.pavlovia.org/sagarrpandavnyu/threshold/-/issues2021-10-13T08:32:26Zhttps://gitlab.pavlovia.org/sagarrpandavnyu/threshold/-/issues/15[FEATURE] Implement display alphabet.2021-10-13T08:32:26ZSagar R Pandav[FEATURE] Implement display alphabet.*Created by: denispelli*
Implement display alphabet.
See
showAlphabetWhere, showAlphabetWithLabelsBool
in the EasyEyes Threshold
Also, can we allow the participant to click on a letter?
This is a useful way to get responses. *Created by: denispelli*
Implement display alphabet.
See
showAlphabetWhere, showAlphabetWithLabelsBool
in the EasyEyes Threshold
Also, can we allow the participant to click on a letter?
This is a useful way to get responses. https://gitlab.pavlovia.org/sagarrpandavnyu/threshold/-/issues/17[FEATURE] Put up web page https://easyeyes.app/threshold2021-10-13T08:32:26ZSagar R Pandav[FEATURE] Put up web page https://easyeyes.app/threshold*Created by: denispelli*
PUT UP THE THRESHOLD PAGE. Let's implement the bare bones user interface of https://easyeyes.app/threshold/ . Create a threshold.html web page in the EasyEye.app directory. It should have the same menu bar as the rest of the pages in the easyeyes.app directory. For the time being, the common menu bar will NOT mention "Threshold". So the public won't easily find our page. I realize that Google will track it, but we don't need high security. Right now I imagine:
• Menu bar, consistent with rest of EasyEyes.app
• Easy uploading of a Threshold table to the EasyEyes directory. Uploading immediately begins the preprocessor.
• A radio button selecting whether to run the preprocessor WITHOUT requiring a Pavlovia account.
• A radio button selecting whether or not to enable automatic upload to Pavlovia. (Grayed out if scientist selected to run without pavlovia.)
• Once the preprocessor runs, it should display a page of errors that can be saved to disk as a plain text file, possibly with Markdown formatting.
• If and when the preprocessor finds no errors, and "automatic upload" is on, upload files to a new project in the scientist's Pavlovia account, and display a copyable display of the URL of the uploaded experiment. Label it:
**URL to run your uploaded experiment:**
• Note that any uploading to Pavlovia will require OAuth logging into Pavlovia.
The preprocessor will check that any required consent forms and fonts are present in Pavlovia.
As a friendly gesture to visitors who may not yet have Pavlovia accounts, we offer the option of preprocessing WITHOUT Pavlovia to allow the scientist to see whatever error messages the preprocessor produces. However, we should NOT allow uploading to pavlovia until the preprocessor has checked the table's specified fonts and consents against those available in the EasyEyesResources folder of their Pavlovia site.*Created by: denispelli*
PUT UP THE THRESHOLD PAGE. Let's implement the bare bones user interface of https://easyeyes.app/threshold/ . Create a threshold.html web page in the EasyEye.app directory. It should have the same menu bar as the rest of the pages in the easyeyes.app directory. For the time being, the common menu bar will NOT mention "Threshold". So the public won't easily find our page. I realize that Google will track it, but we don't need high security. Right now I imagine:
• Menu bar, consistent with rest of EasyEyes.app
• Easy uploading of a Threshold table to the EasyEyes directory. Uploading immediately begins the preprocessor.
• A radio button selecting whether to run the preprocessor WITHOUT requiring a Pavlovia account.
• A radio button selecting whether or not to enable automatic upload to Pavlovia. (Grayed out if scientist selected to run without pavlovia.)
• Once the preprocessor runs, it should display a page of errors that can be saved to disk as a plain text file, possibly with Markdown formatting.
• If and when the preprocessor finds no errors, and "automatic upload" is on, upload files to a new project in the scientist's Pavlovia account, and display a copyable display of the URL of the uploaded experiment. Label it:
**URL to run your uploaded experiment:**
• Note that any uploading to Pavlovia will require OAuth logging into Pavlovia.
The preprocessor will check that any required consent forms and fonts are present in Pavlovia.
As a friendly gesture to visitors who may not yet have Pavlovia accounts, we offer the option of preprocessing WITHOUT Pavlovia to allow the scientist to see whatever error messages the preprocessor produces. However, we should NOT allow uploading to pavlovia until the preprocessor has checked the table's specified fonts and consents against those available in the EasyEyesResources folder of their Pavlovia site.https://gitlab.pavlovia.org/sagarrpandavnyu/threshold/-/issues/18[FEATURE] Redesign the (PsychoJS) hello and goodbye screens2021-10-13T08:32:26ZSagar R Pandav[FEATURE] Redesign the (PsychoJS) hello and goodbye screens*Created by: denispelli*
**Is your feature request related to a problem? Please describe.**
**What's easily changed?**
Show our logo!
Please clean up the request for participant name. It should say "Welcome to EasyEyes Threshold."
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
The Hello and Goodbye screens are ugly.
**Describe the solution you'd like**
**When I aborted by hitting Escape it says "Thank you for your patience."
Please change "patience" to "participation."**
<!-- A clear and concise description of what you want to happen. -->
**Additional context**
<!-- Add any other context or screenshots about the feature request here. -->
*Created by: denispelli*
**Is your feature request related to a problem? Please describe.**
**What's easily changed?**
Show our logo!
Please clean up the request for participant name. It should say "Welcome to EasyEyes Threshold."
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
The Hello and Goodbye screens are ugly.
**Describe the solution you'd like**
**When I aborted by hitting Escape it says "Thank you for your patience."
Please change "patience" to "participation."**
<!-- A clear and concise description of what you want to happen. -->
**Additional context**
<!-- Add any other context or screenshots about the feature request here. -->
https://gitlab.pavlovia.org/sagarrpandavnyu/threshold/-/issues/16[FEATURE] Blanking and clipping of marks to prevent spurious masking & crowding.2021-10-13T08:31:46ZSagar R Pandav[FEATURE] Blanking and clipping of marks to prevent spurious masking & crowding.*Created by: denispelli*
This is explained in the EasyEyes Threshold manual (Inputs sheet), under marking...*Created by: denispelli*
This is explained in the EasyEyes Threshold manual (Inputs sheet), under marking...https://gitlab.pavlovia.org/sagarrpandavnyu/threshold/-/issues/12Get data from Pavlovia2021-10-13T08:31:46ZSagar R PandavGet data from Pavlovia*Created by: denispelli*
[FEATURE] We need instructions in the EasyEyes Threshold manual for how to retrieve data from Pavlovia once the experiment is done. It may be enough to just copy what is written in the PsychoPy/JS manual.*Created by: denispelli*
[FEATURE] We need instructions in the EasyEyes Threshold manual for how to retrieve data from Pavlovia once the experiment is done. It may be enough to just copy what is written in the PsychoPy/JS manual.https://gitlab.pavlovia.org/sagarrpandavnyu/threshold/-/issues/13[FEATURE] Preprocessor should check validity of parameters2021-10-13T08:31:46ZSagar R Pandav[FEATURE] Preprocessor should check validity of parameters*Created by: denispelli*
This is all spelled out in the EasyEyes Threshold manual.
The preprocessor should check validity of:
parameter names
parameters types
Any request fonts should be checked against the list of fonts in the scientist's Font folder in Pavlovia, and the short list of commonly available fonts (like Arial and Verdana).
Also, a current limitation of PsychoJS is that all conditions in a block must have the same number of trials. The preprocessor should enforce this.*Created by: denispelli*
This is all spelled out in the EasyEyes Threshold manual.
The preprocessor should check validity of:
parameter names
parameters types
Any request fonts should be checked against the list of fonts in the scientist's Font folder in Pavlovia, and the short list of commonly available fonts (like Arial and Verdana).
Also, a current limitation of PsychoJS is that all conditions in a block must have the same number of trials. The preprocessor should enforce this.https://gitlab.pavlovia.org/sagarrpandavnyu/threshold/-/issues/26fontPath is not defined2021-10-13T08:31:46ZSagar R PandavfontPath is not defined*Created by: peilingjiang*
https://github.com/EasyEyes/threshold/blob/0a92e573a3cbd8d0f3188f714019b823a8ef2715/threshold.js#L177*Created by: peilingjiang*
https://github.com/EasyEyes/threshold/blob/0a92e573a3cbd8d0f3188f714019b823a8ef2715/threshold.js#L177https://gitlab.pavlovia.org/sagarrpandavnyu/threshold/-/issues/14[FEATURE] Implement handling of the escape key.2021-10-13T08:31:46ZSagar R Pandav[FEATURE] Implement handling of the escape key.*Created by: denispelli*
This is spelled out in the EasyEyes Threshold manual. See
keyEscapeEnable
in the Input sheet.
Assigned to Sagar.
*Created by: denispelli*
This is spelled out in the EasyEyes Threshold manual. See
keyEscapeEnable
in the Input sheet.
Assigned to Sagar.
https://gitlab.pavlovia.org/sagarrpandavnyu/threshold/-/issues/27[BUG] Issues found when making Arabic demo2021-10-13T08:31:46ZSagar R Pandav[BUG] Issues found when making Arabic demo*Created by: peilingjiang*
Including #26 . All the changes made to get this demo working can be found at https://www.diffchecker.com/SpmgtoXs*Created by: peilingjiang*
Including #26 . All the changes made to get this demo working can be found at https://www.diffchecker.com/SpmgtoXshttps://gitlab.pavlovia.org/sagarrpandavnyu/threshold/-/issues/23Discussion: Level of parameters2021-10-13T08:31:46ZSagar R PandavDiscussion: Level of parameters*Created by: peilingjiang*
As mentioned in EasyEyes/control-panel#1, there are two levels of parameters: **experiment** (e.g., if use RC), **block** (e.g., if display fixation). Experiment-level params should be parsed at the beginning of the experiment and block-level params should be parsed at the beginning of each block (now within every trial). Should we add an extra column in the input sheet to identify the level of params?*Created by: peilingjiang*
As mentioned in EasyEyes/control-panel#1, there are two levels of parameters: **experiment** (e.g., if use RC), **block** (e.g., if display fixation). Experiment-level params should be parsed at the beginning of the experiment and block-level params should be parsed at the beginning of each block (now within every trial). Should we add an extra column in the input sheet to identify the level of params?https://gitlab.pavlovia.org/sagarrpandavnyu/threshold/-/issues/20[FEATURE] add UI for progress-checker on experiments2021-10-13T08:32:26ZShikhar Vaish[FEATURE] add UI for progress-checker on experiments**Is your feature request related to a problem? Please describe.**
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
**Describe the solution you'd like**
<!-- A clear and concise description of what you want to happen. -->
**Additional context**
<!-- Add any other context or screenshots about the feature request here. -->
**Is your feature request related to a problem? Please describe.**
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
**Describe the solution you'd like**
<!-- A clear and concise description of what you want to happen. -->
**Additional context**
<!-- Add any other context or screenshots about the feature request here. -->
Shikhar VaishShikhar Vaishhttps://gitlab.pavlovia.org/sagarrpandavnyu/threshold/-/issues/6[FEATURE] Plan how EasyEyes web page will control Pavlovia2021-10-13T08:31:46ZSagar R Pandav[FEATURE] Plan how EasyEyes web page will control Pavlovia*Created by: peilingjiang*
**Is your feature request related to a problem? Please describe.**
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
**Describe the solution you'd like**
<!-- A clear and concise description of what you want to happen. -->
**Additional context**
<!-- Add any other context or screenshots about the feature request here. -->
*Created by: peilingjiang*
**Is your feature request related to a problem? Please describe.**
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
**Describe the solution you'd like**
<!-- A clear and concise description of what you want to happen. -->
**Additional context**
<!-- Add any other context or screenshots about the feature request here. -->
Shikhar VaishShikhar Vaishhttps://gitlab.pavlovia.org/sagarrpandavnyu/threshold/-/issues/10Replace hard-coded value with RC value2021-10-13T08:32:26ZSagar R PandavReplace hard-coded value with RC value*Created by: peilingjiang*
*Created by: peilingjiang*
https://gitlab.pavlovia.org/sagarrpandavnyu/threshold/-/issues/11[FEATURE] Add consent screen2021-10-13T08:31:46ZSagar R Pandav[FEATURE] Add consent screen*Created by: peilingjiang*
**Is your feature request related to a problem? Please describe.**
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
**Describe the solution you'd like**
https://docs.google.com/spreadsheets/d/1x65NjykMm-XUOz98Eu_oo6ON2xspm_h0Q0M2u6UGtug/edit#gid=1385703808
See EasyEyes Manual Web sheet for explanation fo how the consent form and fonts should be handled. We need to allow the scientist to upload any number of consent forms and fonts to the ConsentForms and Fonts folders in an EasyEyesResources folder in the scientist's Pavlovia account. The file names will later be specified as values of the _consentForm and targetFont parameters.
<!-- A clear and concise description of what you want to happen. -->
Use the value of _consentForm to select a file from EasyEyesResources/ConsentForms/ in the scientist's Pavlovia account. The preprocessor will check that there is a match before uploading threshold.js to Pavlovia. I'm not sure what file formats we should support for the consent document. Markdown is good for reflowing the lines to adapt to various screens sizes. PDF is good for showing a stamped document. Probably Markdown is the more robust solution. Threshold.js will need to flow the text so it's easy to read even on a small screen. The validity of our consent "signatures" could be challenged unless it's easy to read the consent form.
**Additional context**
<!-- Add any other context or screenshots about the feature request here. -->
*Created by: peilingjiang*
**Is your feature request related to a problem? Please describe.**
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
**Describe the solution you'd like**
https://docs.google.com/spreadsheets/d/1x65NjykMm-XUOz98Eu_oo6ON2xspm_h0Q0M2u6UGtug/edit#gid=1385703808
See EasyEyes Manual Web sheet for explanation fo how the consent form and fonts should be handled. We need to allow the scientist to upload any number of consent forms and fonts to the ConsentForms and Fonts folders in an EasyEyesResources folder in the scientist's Pavlovia account. The file names will later be specified as values of the _consentForm and targetFont parameters.
<!-- A clear and concise description of what you want to happen. -->
Use the value of _consentForm to select a file from EasyEyesResources/ConsentForms/ in the scientist's Pavlovia account. The preprocessor will check that there is a match before uploading threshold.js to Pavlovia. I'm not sure what file formats we should support for the consent document. Markdown is good for reflowing the lines to adapt to various screens sizes. PDF is good for showing a stamped document. Probably Markdown is the more robust solution. Threshold.js will need to flow the text so it's easy to read even on a small screen. The validity of our consent "signatures" could be challenged unless it's easy to read the consent form.
**Additional context**
<!-- Add any other context or screenshots about the feature request here. -->
Shikhar VaishShikhar Vaishhttps://gitlab.pavlovia.org/sagarrpandavnyu/threshold/-/issues/8[FEATURE] Draw trial/block counter: showCounterWhere2021-10-13T08:32:26ZSagar R Pandav[FEATURE] Draw trial/block counter: showCounterWhere*Created by: peilingjiang*
**Is your feature request related to a problem? Please describe.**
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
**Describe the solution you'd like**
This is controlled by two parameters, showCounterWhere and showCounterWithDistanceBool, as explained in the Manual, Inputs sheet.
https://docs.google.com/spreadsheets/d/1x65NjykMm-XUOz98Eu_oo6ON2xspm_h0Q0M2u6UGtug/edit#gid=1287694458
showCounterWhere | | bottomRight | Can be none, bottomLeft, bottomCenter, or bottomRight. For example, "Trial 31 of 120. Block 2 of 3. At 32 cm." The trial counter counts all trials in the block, which may have several conditions. If the block has three conditions with 40 blocks each, then there are 120 trials in the block. The third sentence, about distance, is included only if "showCounterWithDistanceBool" is true.
-- | -- | -- | --
showCounterWithDistanceBool | September | FALSE | If TRUE, and counter is shown, then the counter display includes something like "At 32 cm.". Without head tracking, this a subtle reminder to the participant of the distance they are supposed to be at. With head tracking, it's for debugging, allowing the experimenter to monitor the tracking of actual position. The continually changing distance display is probably too distracting to show to participants. During data collection, we suggest turning this on only when head tracking is off.
<!-- A clear and concise description of what you want to happen. -->
**Additional context**
<!-- Add any other context or screenshots about the feature request here. -->
*Created by: peilingjiang*
**Is your feature request related to a problem? Please describe.**
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
**Describe the solution you'd like**
This is controlled by two parameters, showCounterWhere and showCounterWithDistanceBool, as explained in the Manual, Inputs sheet.
https://docs.google.com/spreadsheets/d/1x65NjykMm-XUOz98Eu_oo6ON2xspm_h0Q0M2u6UGtug/edit#gid=1287694458
showCounterWhere | | bottomRight | Can be none, bottomLeft, bottomCenter, or bottomRight. For example, "Trial 31 of 120. Block 2 of 3. At 32 cm." The trial counter counts all trials in the block, which may have several conditions. If the block has three conditions with 40 blocks each, then there are 120 trials in the block. The third sentence, about distance, is included only if "showCounterWithDistanceBool" is true.
-- | -- | -- | --
showCounterWithDistanceBool | September | FALSE | If TRUE, and counter is shown, then the counter display includes something like "At 32 cm.". Without head tracking, this a subtle reminder to the participant of the distance they are supposed to be at. With head tracking, it's for debugging, allowing the experimenter to monitor the tracking of actual position. The continually changing distance display is probably too distracting to show to participants. During data collection, we suggest turning this on only when head tracking is off.
<!-- A clear and concise description of what you want to happen. -->
**Additional context**
<!-- Add any other context or screenshots about the feature request here. -->
Shikhar VaishShikhar Vaishhttps://gitlab.pavlovia.org/sagarrpandavnyu/threshold/-/issues/7[FEATURE] Restrict maximum spacing when measuring a spacing threshold.2021-10-13T08:32:26ZSagar R Pandav[FEATURE] Restrict maximum spacing when measuring a spacing threshold.*Created by: peilingjiang*
**Is your feature request related to a problem? Please describe.**
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
**Describe the solution you'd like**
<!-- A clear and concise description of what you want to happen. -->
**Additional context**
<!-- Add any other context or screenshots about the feature request here. -->
*Created by: peilingjiang*
**Is your feature request related to a problem? Please describe.**
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
**Describe the solution you'd like**
<!-- A clear and concise description of what you want to happen. -->
**Additional context**
<!-- Add any other context or screenshots about the feature request here. -->
Augustin BurchellAugustin Burchellhttps://gitlab.pavlovia.org/sagarrpandavnyu/threshold/-/issues/5[FEATURE] Add instructions for participants from CriticalSpacing2021-10-13T08:32:26ZSagar R Pandav[FEATURE] Add instructions for participants from CriticalSpacing*Created by: peilingjiang*
**Is your feature request related to a problem? Please describe.**
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
**Describe the solution you'd like**
<!-- A clear and concise description of what you want to happen. -->
**Additional context**
<!-- Add any other context or screenshots about the feature request here. -->
*Created by: peilingjiang*
**Is your feature request related to a problem? Please describe.**
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
**Describe the solution you'd like**
<!-- A clear and concise description of what you want to happen. -->
**Additional context**
<!-- Add any other context or screenshots about the feature request here. -->
https://gitlab.pavlovia.org/sagarrpandavnyu/threshold/-/issues/4[FEATURE] Get Keypad to work with Threshold2021-10-13T08:31:46ZSagar R Pandav[FEATURE] Get Keypad to work with Threshold*Created by: peilingjiang*
**Is your feature request related to a problem? Please describe.**
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
**Describe the solution you'd like**
As documented in the Threshold Manual Inputs sheet,
https://docs.google.com/spreadsheets/d/1x65NjykMm-XUOz98Eu_oo6ON2xspm_h0Q0M2u6UGtug/edit#gid=2021552264
**inclusion of the Keypad should be controlled by the parameter
easyEyesSimulateKeypadBool**
<!-- A clear and concise description of what you want to happen. -->
**Additional context**
<!-- Add any other context or screenshots about the feature request here. -->
*Created by: peilingjiang*
**Is your feature request related to a problem? Please describe.**
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
**Describe the solution you'd like**
As documented in the Threshold Manual Inputs sheet,
https://docs.google.com/spreadsheets/d/1x65NjykMm-XUOz98Eu_oo6ON2xspm_h0Q0M2u6UGtug/edit#gid=2021552264
**inclusion of the Keypad should be controlled by the parameter
easyEyesSimulateKeypadBool**
<!-- A clear and concise description of what you want to happen. -->
**Additional context**
<!-- Add any other context or screenshots about the feature request here. -->
Augustin BurchellAugustin Burchellhttps://gitlab.pavlovia.org/sagarrpandavnyu/threshold/-/issues/3[FEATURE] Play feedback sound2021-10-13T08:32:26ZSagar R Pandav[FEATURE] Play feedback sound*Created by: peilingjiang*
**Is your feature request related to a problem? Please describe.**
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
**Describe the solution you'd like**
As specified in the Threshold Manual Inputs sheet:
https://docs.google.com/spreadsheets/d/1x65NjykMm-XUOz98Eu_oo6ON2xspm_h0Q0M2u6UGtug/edit#gid=1287694458
playNegativeFeedbackBeepBool FALSE After mistaken response, play pure 500 Hz tone for 0.5 sec at amplitude 0.05. Usually we stay positive and give only positive feedback. boolean
playPositiveFeedbackBeepBool TRUE After correct response, play pure 2000 Hz tone for 0.05 sec at amplitude 0.05. boolean
playPurrWhenReadyBool TRUE Play a purring sound to alert the observer while we await their response. Pure 200 Hz tone for 0.6 sec at amplitude 1. boolean playNegativeFeedbackBeepBool FALSE After mistaken response, play pure 500 Hz tone for 0.5 sec at amplitude 0.05. Usually we stay positive and give only positive feedback.
**Additional context**
I just tried the current version at
https://crowding-dev.netlify.app/
The sounds are present--THANK YOU-- but nothing like what is specified in the manual. Sorry, I should have linked to the manual in the original request. In the future, please ask when requests seem vague.
<!-- Add any other context or screenshots about the feature request here. -->
*Created by: peilingjiang*
**Is your feature request related to a problem? Please describe.**
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
**Describe the solution you'd like**
As specified in the Threshold Manual Inputs sheet:
https://docs.google.com/spreadsheets/d/1x65NjykMm-XUOz98Eu_oo6ON2xspm_h0Q0M2u6UGtug/edit#gid=1287694458
playNegativeFeedbackBeepBool FALSE After mistaken response, play pure 500 Hz tone for 0.5 sec at amplitude 0.05. Usually we stay positive and give only positive feedback. boolean
playPositiveFeedbackBeepBool TRUE After correct response, play pure 2000 Hz tone for 0.05 sec at amplitude 0.05. boolean
playPurrWhenReadyBool TRUE Play a purring sound to alert the observer while we await their response. Pure 200 Hz tone for 0.6 sec at amplitude 1. boolean playNegativeFeedbackBeepBool FALSE After mistaken response, play pure 500 Hz tone for 0.5 sec at amplitude 0.05. Usually we stay positive and give only positive feedback.
**Additional context**
I just tried the current version at
https://crowding-dev.netlify.app/
The sounds are present--THANK YOU-- but nothing like what is specified in the manual. Sorry, I should have linked to the manual in the original request. In the future, please ask when requests seem vague.
<!-- Add any other context or screenshots about the feature request here. -->