About this project

Outline

This project was made as part of the Open University's BSc Computing course, for the TM470 Computing And IT Project. The project was an exploration of accessible and useable creative applications, in response to the inconsistent implementation of accessibility standards in web-based and standalone music creation tools.

This began with the creation of a programmable metronome which could support training mechanics: working towards playing at a higher tempo, training consistency in timekeeping, and learning smooth transitions between note subdivisions. It also attempted to make learning musical concepts easier for non-musicians, and to enable musicians to experiment with ideas quickly. This was achieved with a suite of synthesizer controllers, with support for automated transposition of melodies, variable time signatures, and creation of complex chords without the need for instrument-specific knowledge of these processes.

This project utilises the Web Audio API via the Tone.JS framework, an object-oriented utilisation of vanilla JaveScript, HTML, and CSS. The music theory implementation was built in JavaScript for this project.

Preliminary results

The two modules created pass the WebAIM WAVE accessibility tests, other than an error related to a an intentionally hidden value. Zooming, variable font size, and both high- and low-contrast themes are supported. Keyboard navigation and screen readers are broadly supported, with some shortcomings stemming from design errors.
The metronome module is technically sound, with accurate timekeeping and support for variable measure lengths. The Melody Maker module includes a drum machine with multiple voices, an 8-note step sequencer automatically populated by a predefined scale, and automated chord construction.

Due to shortcomings of the Tone.JS framework audio generation does not work in Safari, and under certain conditions audio quality decreases significantly after a period of time. Furthermore, the Melody Maker is limited to quarter notes in 4/4, and the chord builder currently cannot transpose chords between keys.

Preliminary conclusions

This project demonstrates, even in spite of some flawed design decisions, that complex creative interfaces can comply with web accessibility standards and not exclude users with most accessibility needs.