This online experiment has been used to collect simple evaluations on a web server running Apache and PHP.
The base code for user registration, data handling and stimulus randomization is from MIT-licensed "embody" project by Enrico Glerean at https://version.aalto.fi/gitlab/eglerean/embody/ but notably here without the Adobe Flash requirement. The directories are somewhat cleaned up of extra files which could possibly cause security issues.
For embody-based experiments, admin/data and subjects subdirectories have to be writable by apache or other web server process (e.g. sudo chown -R apache:apache ratesounds/subjects ratesounds/admin/data). Other suggested configuration option is disabling subjects directory browsing in httpd.conf, e.g. :
<Directory /var/www/html/ratesounds/subjects/> Order Deny,allow Deny from all </Directory>
and for the whole /var/www/html
# Options Indexes FollowSymLinks
Categorical selection screenshot:
Specific notes and short descriptions for the experiments:
- Auditory-only evaluation of samples, with custom and easy-to-use CSS slider
- Special handling of randomization: has first some categorical evaluations, then a few practise sounds before the final sounds. All portions have their own randomization. Adjust N of sounds in settings.php and editing stim list ratesounds_list.txt
- Some placeholder samples are included. The current simple template has 5 long sounds + 5 practice sounds + 8 sample sounds of which 4 were repeated as control sounds => total 5+5+8+4=22 sounds.
- Includes shell scripts for stimulus sound preparation under sample_processing using SoX: converts to unified format, adds silence, onset/offset ramps, repetition and mp3 conversion (with lame)
- Output data folder on the server (subjects, with per-subject code and single csv/txt files) can be converted to easy-to-interpret Excel file using a Matlab conversion script. This is included under matlab_process_subject subdirectory, with instructions for use inside the script
- Special admin interface (subdirectory admin/) using a fixed password is not a mandatory feature to place on the server. This allows downloading the accumulated data more fluently by a user (say, by research assistant) without server user account, though.
- The code has been upgraded to have language support. Most of texts defined in texts.php, default language selected in settings.php. The language can be changed by adding ?lang=fi or ?lang=en GET parameter to URL (in case of already-existing parameters, append by &lang=fi style)