256a-fall-2020/hw3: Difference between revisions
Appearance
Created page with "= Homework #3: Interactive AudioVisual Music Sequencer = <div style="text-align: left;">Image:Sequencer-thing.jpg</div> '''NOTE from Ge: this image is here mostly for i..." |
|||
(9 intermediate revisions by the same user not shown) | |||
Line 3: | Line 3: | ||
<div style="text-align: left;">[[Image:Sequencer-thing.jpg]]</div> | <div style="text-align: left;">[[Image:Sequencer-thing.jpg]]</div> | ||
'''NOTE | '''NOTE: this image is here mostly for its colors, PLEASE DON'T (NECESSARILY) MAKE IT LOOK LIKE THIS!''' | ||
timeline: | timeline: | ||
* part 1 (research + on-paper design | * part 1 (research + on-paper design), submit to Canvas and be prepared to present | ||
* part 2 (demo/ | * part 2 (demo/something working), be prepared to present in-class | ||
* part 3 (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 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 1 of | === (Part 1 of 3): Research + Preliminary Design === | ||
* '''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 26: | Line 27: | ||
* sketch as much as detail as possible, even if you don't end implementing them! | * 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!) | * 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)''' | |||
* '''have something working in software, towards your core idea/aesthetics!''' | * '''have something working in software, towards your core idea/aesthetics!''' | ||
** | * '''Check out the [https://www.youtube.com/watch?v=LZMLEfjq8Ns CHICKEN SEQUENCER tutorial video]''' | ||
** files from the tutorial [https://arrful.design/tv/tutorials/files/chickencer.unitypackage 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) | |||
** 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! | * 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 | * implement a working prototype of your step sequencer | ||
* should use: | * should use: | ||
** | ** 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 | *** see [http://chuck.stanford.edu/chunity/documentation/ chunity reference] for complete documentation | ||
Line 52: | Line 56: | ||
** must be interactive | ** must be interactive | ||
** must be musical | ** must be musical | ||
** should be flexible in usability | ** should be flexible in usability | ||
** should support some narrative complexity | ** should support some narrative complexity | ||
Line 59: | Line 62: | ||
** think of user/interaction design **and** software/system design | ** think of user/interaction design **and** software/system design | ||
** create an audio engine, as well as a graphics engine; how do they interact? | ** create an audio engine, as well as a graphics engine; how do they interact? | ||
** having a "grid" | ** having a "grid" can be very useful (but not strictly necessary)! | ||
=== (Part 3 of 3) "Playable Prototype" === | |||
* given the short timeframe, please 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 | |||
* create a webpage for your audiovisual sequencer, which must contain: | * create a webpage for your audiovisual sequencer, which must contain: | ||
** one or more screenshot(s) | ** one or more screenshot(s) | ||
** your sequencer "mini-performance" video | |||
** your initial design sketches + research, motivate and articulate how you made your design decisions | ** your initial design sketches + research, motivate and articulate how you made your design decisions | ||
** system design: how is your software architected? | ** system design: how is your software architected? we recommend a class diagram. | ||
** | ** (optional) any code for download | ||
=== Note === | === Note === | ||
* | * As always, have fun with it! Make it satisfying. | ||
* you are welcome to work together, but you must do your own work | |||
* comment your code! | * comment your code! | ||
=== Deliverables === | === Deliverables === | ||
a website containing: | |||
* 1) design sketches (scan them in if necessary) | * 1) design sketches (scan them in if necessary) | ||
* 2) a polished video of your step sequencer in action, and your musical statement | * 2) a polished video of your step sequencer in action, and your musical statement | ||
* 3) screenshots of your step sequencer in action | * 3) screenshots of your step sequencer in action | ||
* 4) source code to the project | * 4) (optional) source code/executable to the project | ||
* 5 | * 5) instructions on using your step sequencer | ||
* 6) instructions on building the project (for example, anyone in the class should be able to download) | |||
* | * 7) 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 | ||
* | * 8) upload the website URL / submit all necessary files (code, images, videos, etc) to canvas! | ||
(default: CCRMA webpage: http://ccrma.stanford.edu/~YOURID/256a/hw3/) | (default: CCRMA webpage: http://ccrma.stanford.edu/~YOURID/256a/hw3/) |
Latest revision as of 06:22, 18 October 2020
Homework #3: Interactive AudioVisual Music Sequencer
NOTE: this image is here mostly for its colors, PLEASE DON'T (NECESSARILY) MAKE IT LOOK LIKE THIS!
timeline:
- part 1 (research + on-paper design), submit to Canvas and be prepared to present
- part 2 (demo/something working), be prepared to present in-class
- part 3 (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 crazy, real-time, audio-visual software, driven by some type of step sequencer!
(Part 1 of 3): Research + Preliminary Design
- 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!)
(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)
- have something working in software, towards your core idea/aesthetics!
- Check out the CHICKEN SEQUENCER tutorial video
- 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)
- 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)
- files from the tutorial chickencer.unitypackage
- 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:
- 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 )
- Chunity
- 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
- 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" can be very useful (but not strictly necessary)!
(Part 3 of 3) "Playable Prototype"
- given the short timeframe, please 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
- create a webpage for your audiovisual sequencer, which must contain:
- one or more screenshot(s)
- your 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) any code for download
Note
- As always, have fun with it! Make it satisfying.
- you are welcome to work together, but you must do your own work
- comment your code!
Deliverables
a website containing:
- 1) design sketches (scan them in if necessary)
- 2) a polished video of your step sequencer in action, and your musical statement
- 3) screenshots of your step sequencer in action
- 4) (optional) source code/executable to the project
- 5) instructions on using your step sequencer
- 6) instructions on building the project (for example, anyone in the class should be able to download)
- 7) readme section describing:
- any comments you want to share (difficulties and what you enjoyed) on using Chunity
- 8) upload the website URL / submit all necessary files (code, images, videos, etc) to canvas!
(default: CCRMA webpage: http://ccrma.stanford.edu/~YOURID/256a/hw3/)