Michael J. Wilson - Music 256a Final Project Proposal


Idea

Sequencer that lets you record or open short waveforms and does spectral resynthesis on them in a short, step-sequenced loop.

Motivation

Current sequencers are too inaccessible, or too impersonal, or just perform sample rate pitch adjustment.

Product

A software application that requires speakers or headphones and optionally a microphone. The user will run the application and be presented with a single-screen GUI. It should feel simple and easy to pop open and play with.

Aesthetic

Transient, experimental, playful, light, everyday.

Interface

A GUI which uses familiar controls (buttons, scrollbars, open/save dialogs) coupled with 64-timestep 24-vertical-step matrix editors. Global transport up top, variable number of tracks below. Once started, sound will be playing constantly in a loop. Realtime modification of any of the parameters is supported.

Main interface
Recording dialog

Recording, saving and loading dialogs will be modal, to prevent race conditions. Save and load dialogs will use the system defaults. Matrix modifications will be handled one at a time.

The interface will be completely mouse-driven.

Software architecture

The program will be written in C++. The QT library will be used for GUI elements. RTAudio will be used for waveform capture and playback. During the prototyping stage STK MIDI and wave file I/O routines may be used.

The following major components (classes?) will be part of the program:

Testing

Testing will be performed mostly by myself, and by anyone else who would like to try the program out. No formal testing frameworks will be used. The methodology will be performing tasks that users would commonly perform.

The main measure of goodness: is the program fun? Other measures of goodness in decreasing order of importance:

Team

I will work on this project by myself.

Milestones