Homework #3: AudioVisual Music Sequencer
NOTE from Ge: this image is here mostly for its colors, PLEASE DON'T MAKE IT LOOK LIKE THIS (NECESSARILY)!
- part A (research + on-paper design + something working) due: 2017.10.25, in-class Wednesday (be prepared to present)
- part B (implementation) due: 2017.10.31 11:59:59pm, Tuesday.
- part C (demo/mini-performance)) due: 2017.11.1, in-class Wednesday
Almost inevitably at some point in one's music software design journey, you'll be asked/tempted to make a step sequencer. In this assignment, we are going to get that off our chest/out of our system, and make a crazy, real-time, audio-visual software, driven by some type of step sequencer!
(Part 1 of 3): Research + Preliminary Design + Something Working
- due in-class Wednesday (10/25) (also upload to Canvas)
- do research on music sequencers!
- compile a list of useful references on various types of step sequencers / designs (articles, papers, images, etc.)
- sketch your own preliminary design of a real-time audio-visual step sequencer!
- what features to include?
- what does it look like? linear? circular? spherical? mobius?!? a game? a galaxy??
- sequencing of pitch? dynamics (loundness)? envelopes (attack/decay/sustain/release)?
- how many parallel tracks / layers / or different types of sound? (e.g., track 1 synth, track 2 drum etc)
- how input the sequence (in real-time)?
- how does it sound? will it use synthesis? load audio samples? MIDI?
- can you save/load sequences? what file format? should we have a common Music256a/476a format?!
- how to control/depict tempo?
- sketch as much as detail as possible, even if you don't end implementing them!
- hand in scans of your paper designs and be ready to present on Monday! (scans of these design sketches can go onto your website for this project!)
- have something working in software, towards your core idea/aesthetics!
- can start from chunity boilerplate
- can look at chunity boilerplate 2 for an example of:
- driving the timing of a repeating sound event from chuck
- having the time between sound events be variable and controlled from unity
- driving the animation corresponding to it from a value in chuck, NOT a value in unity
- (which is valuable because chuck's timing is tighter than unity's)
- (EXPERIMENTAL, BEWARE OF BUGS) can use experimental chunity assets if you want to use Set/Get external strings and register Unity callbacks to be called whenever external events are broadcast
(Part 2 of 3): Implementation
- due 2017.10.31 11:59:59pm, Tuesday
- decide on a design + set of features for an real-time audio-visual step sequencer; the design decisions should account for the questions raised in part 1 above!
- implement a working prototype of your step sequencer
- should use:
- potential things to sequence:
- different timbres / instruments
- requirements / high-level functional aesthetic goals
- must be graphical
- must be interactive
- must be musical
- timing should be tight (driven from audio/chuck, not from graphics callback)
- should be flexible in usability
- should support some narrative complexity
- should feel satisfying to use
- think of user/interaction design **and** software/system design
- create an audio engine, as well as a graphics engine; how do they interact?
- having a "grid" is optional!
- create a webpage for your audiovisual sequencer, which must contain:
- one or more screenshot(s)
- your initial design sketches + research, motivate and articulate how you made your design decisions
- system design: how is your software architected? recommend a class diagram!
- the code for download
- (your musical statement: stuff from part 3 below)
(Part 3 of 3): Musical Statement + In-Class Presentation
- due: in-class Wednesday (11/1)
- using your sequencer, create a short musical statement;
- make a VIDEO of you performing it!
- do a live presentation of your step sequencer in class!
- as always, have fun with it!!! P.S.!!! make it SATISFYING!!!
- comment your code!
- choose your own coding conventions - but be consistent
- you are welcome to work together, but you must do/turn in your own work (you'll likely get more out of it this way)
An HTML website containing:
- 0) source code to the project (entire zipped Unity project folder)
- 1) screenshots of your step sequencer in action
- 2) design sketches (scan them in if necessary)
- 3) your musical statement!
- 4) instructions on building the project (for example, anyone in the class should be able to download)
- 5) instructions on using your step sequencer
- 6) readme section describing:
- any comments you want to share (difficulties and what you enjoyed) on using ChUnity
- any comments you want to share (difficulties and what you enjoyed) on using Unity
- any comments you want to share (difficulties and what you enjoyed) on using ChucK in general
submit the HTML website and all necessary files (code, images, videos, etc) to canvas!
if you have a CCRMA account, additionally turn in all files by creating a new CCRMA webpage: http://ccrma.stanford.edu/~YOURID/256a/hw3/