Ensemble Overview
The seven modules of Ensemble, indicated by the rectangles in Figure 1, interact with one another, the researcher, and the participant as outlined by the arrows in the figure. PhpMyAdmin (The phpMyAdmin Project, 2005), the Questionnaire Editor Interface (QEI), and the Questionnaire Presentation Interface (QPI) are web interfaces that were written in PHP, a scripting language processed on the web server for dynamic generation of web pages. A MySQL database provides the central storage for Ensemble. PHP is capable of submitting and retrieving data from MySQL; this communication is denoted in the figure by the "PHP" label between the web modules and MySQL. Matlab and MatRPC each communicate with the database through a Matlab MySQL client. Below we provide an example of how the modules are typically used.
Question and form creation The researcher opens the Questionnaire Editor Interface (QEI) with a web browser. Questions authored with this interface are associated with forms, which are then assigned a logical order for presenting the survey. Instructions, question text, forms, and form sequences are submitted to the MySQL database through the QEI. Instructions assigned to the top of each form direct the participant regarding the set of questions on the form. For example, the sentence, "please give us some information on your musical background," instructs the participant that the following questions refer to his or her musical background. Questions are text excerpts that ask for a specific response, such as, "please list the musical instruments that you can play proficiently," or "what genres of music were you exposed to as a child?" Response types and constraints are also assigned to each question. For example, the response to the question "how many years of musical training have you had?" could be assigned an integer response. The researcher may then present the survey, or if desired, organize a set of stimuli to extend the survey to implement a psychophysics or cognitive experiment.
Stimulus organization and script creation Ensemble enhances basic presentation of surveys with the option to present stimuli via a Flash player. Stimulus files, e.g. mp3 files, are copied to the server's file system, and metadata associated with the stimuli, such as stimulus name, play duration, and file location, are submitted to the MySQL database with a command-line PHP script. The researcher authors a Matlab routine for dynamically selecting stimuli during survey presentation. A Matlab routine, for example, might query the MySQL database for excerpts of music that were popular when the participant was between eleven and seventeen years of age, then randomly return a stimulus ID from the list each time the routine is called. Another, more simple Matlab routine, might randomize a predefined set of stimuli, then return a stimulus ID from the set each time the routine is called until the list is exhausted. We should note that the stimulus selection logic for which we use Matlab can be programmed in many other languages, including PHP. Thus, some Ensemble users may wish to modify the PHP scripts that handle form presentation, and optionally communication with Matlab, with calls to functions implemented in a language of their choosing, e.g. Java. After the survey is organized, the researcher provides a web link to the participant for launching the Questionnaire Presentation Interface (QPI).
Form presentation Once the QPI is launched, the participant interacts with a series of web pages, called QPI "forms." A series of initial forms usually only contain instructions and questions (e.g. to obtain background and demographic information). The participant enters his or her responses, which are submitted and stored in the database.
Stimulus selection Forms may also present stimuli prior to displaying questions. Forms call a Matlab routine, such as the function described above that selects a piece of music based on the participant's age, for stimulus selection. The QPI communicates with MatRPC in order to run the Matlab function and obtain a stimulus ID. MatRPC is a simple message passer to Matlab engines, which are essentially Matlab workspaces that are initialized, processed, and terminated in the background. MatRPC relays the result from the Matlab function that was prepared by the researcher, in this case a stimulus ID, to the QPI.
Stimulus presentation The QPI uses the stimulus ID to query the file location of the stimulus and passes this information to a Flash movie embedded in the browser. The Flash movie then opens the stimulus and presents it to the participant. Note that in the case of purely auditory stimuli, the Flash "movie" does not contain any video. After the Flash movie finishes presenting the stimulus, the QPI form presents its associated questions. For example, the QPI may present the question "how pleasing did you find the musical excerpt that just played?" after a musical stimulus. Although a timestamp is recorded when the form is submitted, this mechanism cannot record a precise reaction time of the response.
Data analysis After presenting QPI sessions, the researcher uses phpMyAdmin, a MySQL database administration utility, to query the data sets in order to make specialized selections of the responses or participant information. The researcher may also use Matlab to retrieve responses from the database and analyze the data. If a different analysis application is desired, response and participant data may alternately be exported to a comma delimited text file through a provided web utility. Once participant responses and demographic information are in the Matlab workspace or in the exported text file, any number of analyses can be performed.