Skip to content

notator/AssistantPerformerTestSite

Repository files navigation

Assistant Performer

This application is an experimental music score player with conducting options.
Its purpose is to test and develop
    1.  the SVG-MIDI format in which the scores are stored
    2.  the ways in which users can interact with playback.

This repository has two major branches:
    dev: the unstable development application.
    stable: the current stable application.

The dev branch has been fully merged into the stable branch in May 2024, and the two online web applications are now identical. There is, however, no guarantee that this will always be the case.

The Assistant Performer now uses the ResidentSynth (GitHub, Documentation) as its only MIDI output device. This means that it no longer requires use of the Web MIDI API. The ResidentSynth is a MIDI output device that is implemented using the Web Audio API .


This project is designed to be an investigation of the concepts involved. It is not intended to be a finished product. Its top-level architecture and what it does is much more important than the actual code. Both the Assistant Performer and the ResidentSynth are working prototypes whose actual code might well be improved.

Neither the Assistant Performer nor the ResidentSynth require use of the Web MIDI API. The synthesizer implements the Web MIDI MIDIOutput interface using the Web Audio API.

The SVG-MIDI format is SVG containing embedded MIDI information.
Code for event symbols in the scores contain both spatial (SVG) and temporal (MIDI) information. This allows the Assistant Performer to
    1.  synchronize the position of running cursors with live audio output
    2.  give the user control over the start- and end-points of playback.

Currently, the scores are all written using a simplified version of standard Western music notation. This could, in principle, change in future: All music notations contain event symbols whose appearance (in space) is independent of their meaning (in time), so any music notation (designed for writing on paper) could be extended (when stored in a computer file) to contain temporal information.

The Assistant Performer ´s main documentation can be found here.

James Ingram
May 2024