Difference between revisions of "256a-fall-2019/hw2"
From CCRMA Wiki
(→(Part 2 of 2): Implementation) |
|||
(One intermediate revision by one other user not shown) | |||
Line 6: | Line 6: | ||
timeline: | timeline: | ||
− | * part 1 | + | * part 1 (research + on-paper design + something working), in-class (be prepared to present) |
− | + | * part 2 (demo/mini-performance)), in-class (be prepared to present) | |
− | * part | + | |
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! | 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 | + | === (Part 1 of 2): Research + Preliminary Design + Something Working === |
* '''due in-class (also upload to Canvas)''' | * '''due in-class (also upload to Canvas)''' | ||
* do research on music sequencers! | * do research on music sequencers! | ||
Line 34: | Line 33: | ||
*** (which is valuable because chuck's timing is tighter than unity's) | *** (which is valuable because chuck's timing is tighter than unity's) | ||
− | ===(Part | + | ===(Part 2 of 2): Implementation === |
* 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! | * 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 | * implement a working prototype of your step sequencer | ||
Line 41: | Line 40: | ||
** chunity | ** chunity | ||
*** see [http://chuck.stanford.edu/chunity/tutorials/ chunity tutorials] (skip the "setup" step) | *** see [http://chuck.stanford.edu/chunity/tutorials/ chunity tutorials] (skip the "setup" step) | ||
+ | *** see [http://chuck.stanford.edu/chunity/documentation/ chunity reference] for complete documentation | ||
*** may wish to refer to [https://docs.unity3d.com/Manual/ExecutionOrder.html Unity Execution Order] | *** may wish to refer to [https://docs.unity3d.com/Manual/ExecutionOrder.html Unity Execution Order] | ||
*** may wish to refer to [https://docs.unity3d.com/Manual/CollidersOverview.html Unity Colliders Overview] for which colliders interact with which colliders and how | *** may wish to refer to [https://docs.unity3d.com/Manual/CollidersOverview.html Unity Colliders Overview] for which colliders interact with which colliders and how | ||
Line 69: | Line 69: | ||
=== Musical Statement + In-Class Presentation=== | === Musical Statement + In-Class Presentation=== | ||
− | * using your sequencer, create a short musical statement | + | * using your sequencer, create a short musical statement |
− | * make a VIDEO of you performing it | + | * make a VIDEO of you performing it |
− | * do a '''live''' presentation of your step sequencer in class | + | * do a '''live''' presentation of your step sequencer in class |
Line 81: | Line 81: | ||
=== Deliverables === | === Deliverables === | ||
− | |||
− | |||
An HTML website containing: | An HTML website containing: | ||
* 1) source code to the project (entire zipped Unity project folder) | * 1) source code to the project (entire zipped Unity project folder) | ||
− | * 2 | + | * 2) design sketches (scan them in if necessary) |
− | + | * 3) your musical statement! | |
− | * | + | * 4) screenshots of your step sequencer in action |
− | * 5) instructions on building the project (for example, anyone in the class should be able to download) | + | * 5) a video of your step sequencer in action, and your musical statement |
− | * | + | * 6) instructions on building the project (for example, anyone in the class should be able to download) |
− | * | + | * 7) instructions on using your step sequencer |
+ | * 8) 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 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 Unity | ||
** any comments you want to share (difficulties and what you enjoyed) on using ChucK in general | ** any comments you want to share (difficulties and what you enjoyed) on using ChucK in general | ||
− | * | + | * 9) upload the website URL / submit all necessary files (code, images, videos, etc) to canvas! |
− | (CCRMA webpage: http://ccrma.stanford.edu/~YOURID/256a/hw2/) | + | (default: CCRMA webpage: http://ccrma.stanford.edu/~YOURID/256a/hw2/) |
Latest revision as of 07:58, 22 October 2019
Contents
Homework #2: Interactive AudioVisual Music Sequencer
NOTE from Ge: this image is here mostly for its colors, PLEASE DON'T MAKE IT LOOK LIKE THIS (NECESSARILY)!
timeline:
- part 1 (research + on-paper design + something working), in-class (be prepared to present)
- part 2 (demo/mini-performance)), in-class (be prepared to present)
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 2): Research + Preliminary Design + Something Working
- due in-class (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 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? 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 the Chunity Example script "ChunityExampleTimeAdvancerWithHelperComponents.cs" 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)
- can start from the Chunity Example script "ChunityExampleTimeAdvancerWithHelperComponents.cs" for an example of:
(Part 2 of 2): Implementation
- 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:
- unity
- chunity
- 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:
- pitch
- dynamics
- different timbres / instruments
- envelopes
- 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
- "hints"
- 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)
Musical Statement + In-Class Presentation
- 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
Note
- as always, have fun with it! Also: make it satisfying
- comment your code!
- 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)
Deliverables
An HTML website containing:
- 1) source code to the project (entire zipped Unity project folder)
- 2) design sketches (scan them in if necessary)
- 3) your musical statement!
- 4) screenshots of your step sequencer in action
- 5) a video of your step sequencer in action, and your musical statement
- 6) instructions on building the project (for example, anyone in the class should be able to download)
- 7) instructions on using your step sequencer
- 8) 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
- 9) upload the website URL / submit all necessary files (code, images, videos, etc) to canvas!
(default: CCRMA webpage: http://ccrma.stanford.edu/~YOURID/256a/hw2/)