Homework #3: Interactive AudioVisual Music Sequencer
NOTE: this image is here mostly for its colors, PLEASE DON'T (NECESSARILY) MAKE IT LOOK LIKE THIS!
- HW3 milestone 1 (research + on-paper design), create webpage and be prepared to present
- HW3 milestone 2 (demo/something working), be prepared to present in-class
- HW3 done (demo/semi-polished playable prototype)), be prepared to present in-class
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 real-time, audio-visual software, driven by some kind of music sequencer!
(Part 1 of 3): Research + Preliminary Design
- deliverables: create webpage + comment on your sequencer research, tutorial + 3 different designs / be prepared to briefly present in class
- do research on music sequencers!
- compile a list of useful references on various types of step sequencers / designs (articles, papers, images, etc.)
- do the CHICKEN SEQUENCER tutorial video (note: this is only one type of sequencer and is rather incomplete)
- files from the tutorial chickencer.unitypackage
- (NOTE: this is mainly to show how to integrate timing; copy/paste as it is helpful but this is NOT meant to be "starter code" -- every sequencer may be quite different)
- files from the tutorial chickencer.unitypackage
- sketch your own preliminary designs of a real-time audio-visual step sequencer! make 3 different designs, maximally different from each other.
- 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?
- 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 most of 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)
(Part 2 of 3) Something Working
- IMPORTANT! timing must be audio-driven to ensure precision (i.e., driven from audio/chuck, not from graphics/unit)
- deliverable: update webpage, including a 1 minute video demo
- have something working in software, towards your core idea/aesthetics!
- 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
- (this is essential because chuck's timing is much tighter than unity's)
- decide on a design + set of features for a 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:
- see chunity tutorials (skip the "setup" step)
- see chunity reference for complete documentation
- may wish to refer to Unity Execution Order
- may wish to refer to Unity Colliders Overview for which colliders interact with which colliders and how
- may wish to refer to Unity Object.Instantiate for programmatically instantiating a prefab (see more here )
- potential things to sequence:
- different timbres / instruments
- requirements / high-level functional aesthetic goals
- must be graphical
- must be interactive
- must be musical
- 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" can be very useful (but not strictly necessary)!
(Part 3 of 3) "Playable Prototype"
- aim for a (semi-)polished playable prototype
- Musical Statement + In-Class Presentation
- using your sequencer, create a short musical statement
- create a short but polished video of a "mini-performance" of your sequencer
- be prepared to present it in class
- as with HW2, update your webpage for your audiovisual sequencer, which must contain:
- name of your sequencer
- one or more screenshots
- your polished sequencer "mini-performance" video
- your initial design sketches + research, motivate and articulate how you made your design decisions
- system design: how is your software architected? we recommend a class diagram.
- (optional) code for download
- As always, have fun with it, make the user feel something, make it satisfying.
- you are welcome to work together, but you must do your own work
- comment your code!
a polished HW3 website containing:
- 1) a name and description of your sequencer
- 2) a few screenshots that capture your sequencer in action
- 3) a polished resolution video demo (2-3 minutes, with audio) of your sequencer, including a "mini-performance" of your musical statement
- upload to YouTube or Vimeo (or CCRMA) and embed the video from your webpage
- 4) instructions on using you sequencer
- 5) the production build of your sequencer (please specify the platform e.g., MacOS, Windows, or Linux)
- 6) your Unity project (stripped of unnecessary and intermediate files; just the essentials needed to build and run the project)
- 7) a final short text section that conveys:
- your ideas/inspirations in designing your sequencer
- any comments you want to share (difficulties and what you enjoyed) on this project
- acknowledgements for collaboration/help received(and any assets/libraries you've used)
- 8) upload the website URL to Canvas