Skip to content
dfm edited this page Feb 19, 2012 · 1 revision

This is a page for planning how the code should be laid out...

Song structure

The base object should be a Composition object that has all sorts of metadata (sps, bpm, etc.) and an associated Wave object for output. The Composition will also have list of Track objects with their own metadata + an Instrument and Controller object that will generate the sounds for that track. A Track could also have something like an effects loop but I'm not too sure about how that should be laid out.

All of these objects should have a .render() method that returns the computed samples.

Instruments

The list of instruments should include the basic synths that we had before but I think it would be sweet to include something like a Sampler instrument that will just render to the input wave file (maybe passed through an optional Envelope). An Instrument could actually point to a Generator object and an Envelope in general.

Controllers

This category will include things like Arpeggiator and a Sequencer. We could separate these into two categories: melodic and rhythmic.

Clone this wiki locally