This is a bare-bones, but functional Web App for online
hearing experiments designed using the Django Framework.
The templates are rendered using basic HTML5 and
styled using Bootstrap.
Task pages are implemented client-side using jsPsych
within the jspsych
app.
However, a rudimentary server-side implementation
with new HTTP responses to advance the experiment
is also available within the tasks
app.
The goals of this web app (some features not fully developed/tested) are:
-
Serve as a standalone web app that can be hosted on a virtual private server in the cloud (e.g., Linode).
-
Make it easy to create auditory behavioral tasks with commonly used task structures:
- n-AFC tasks using the method of constant stimuli
- n-AFC adapting on a single parameter on a grid
- open set speech recognition tasks
- surveys
-
Make it easy to organize a collection of tasks into an experiment that can be linked to recruitment platforms and thereby interfacing with anonymous labor markets such as Prolific.
-
Play uncompressed, high fidelity audio on a variety of browsers across both computers and mobile devices.
-
Implement anonymous sessions for subjects for security and HIPAA compliance.
-
Allow users with varying privileges:
- Users with "experimenter" status
- Users with "admin" status
- Anonymous Users with (default) "subject" status
-
Allow response data to be written to a secure database and queried on the front-end.
-
Allow for future extensions and enhancements using python code.
The license for the code is highly permissive.
Interested researchers are welcome to adapt the code as needed for their purposes.
The best way to get a working copy is to clone this repository using git
as:
git clone https://github.com/haribharadwaj/SNAPlabonline.git
The required libraries/dependencies for this project
are captured in the Pipfile
and Pipfile.lock
files
created by pipenv.
Once you have the clone pipenv
can be used to
replicate the exact environment
that this project was last tested on by saying:
pipenv sync
Note that cloning this repository will give you not only the code, but also the front-end elements like logos, and the HTML text that is specific to our lab. You will probably want to replace those with your own images/text. If you would like to keep/adapt the images/text that come with the repository, please note they are made available under CC BY-NC-SA 4.0, as noted in the License section.
A recent preprint describes our approach to web-based psychoacoustics in greater detail and documents the results from some basic validation experiments. Overall, the results are encouraging!
Mok BA, Viswanathan V, Borjigin A, Singh R, Kafi HI, & Bharadwaj HM (2021).
Web-based Psychoacoustics: Hearing Screening, Infrastructure, and Validation
bioRxiv 2021.05.10.443520; doi: https://doi.org/10.1101/2021.05.10.443520.
The text and images contained in this repository (c) 2020 by Hari Bharadwaj are licensed under CC BY-NC-SA 4.0.
The source code for SNAPlabOnline (c) 2020 by Hari Bharadwaj is licensed under the BSD-3-Clause license.