Psyphonics

Introduction
Welcome to psyphonics.
Here you can find a preview version of a web-based application for running forced-choice psychoacoustic experiments.
The software uses a text-based, human readable configuration file to define both the stimulus and the procedural details of the experiment.
The current version of the software supports stimuli comprising one or more (optionally modulated) sinusoidal waveforms, each of which can be associated with an independent temporal gate. The accompanying Stimulus Designer can be used to create and monitor stimuli and to generate the appropriate stimulus configuration.
Stimulus and Task Configuration
An example stimulus configuration file is shown below.
Example 1. Configuration for a 1-kHz tone with 5% AM and FM modulation
The sample configuration defines a 1-kHz pure tone modulated in both amplitude and frequency. The details of the carrier tone, the temporal envelope, the amplitude modulation, and the frequency modulation are specified separately in different sections of the configuration. At least one tone and one gate is required to define a valid tone, the modulation settings being optional. Note that the configuration uses JSON syntax (JavaScript Object Notation) a commonly used format for transmitting data over the internet.
Considering the configuration in more detail, the tones section defines one or more sinusoidal components, including the frequency, starting phase, attenuation relative to full scale (in decibels), the channel(s) the tone is presented to (0 = left, 1 = right), which gate to use (indexing is zero-based, so 0 is the first gate in the array), and which amplitude and frequency modulator to use, if any.
Each gate defines an ADSR (attack, decay, sustain, release) envelope, including the shape of the attack, decay, and release portions of the envelope (currently either Linear or Hann). For each of the two supported modulation types we can specify the frequency, starting phase, and modulation depth (in percent). All phases should be specified in radians and durations are given in seconds.
Example 2. Sample configuration for a pure-tone intensity discrimination task