Difference between revisions of "256a-fall-2018/hw2"

From CCRMA Wiki
Jump to: navigation, search
(Created page with "= Homework #2: Interactive AudioVisual Music Sequencer = <div style="text-align: left;">Image:Sequencer-thing.jpg</div> '''NOTE from Ge: this image is here mostly for i...")
 
(Homework #2: Interactive AudioVisual Music Sequencer)
Line 29: Line 29:
 
* 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!)
 
* '''have something working in software, towards your core idea/aesthetics!'''
 
* '''have something working in software, towards your core idea/aesthetics!'''
** can start from [http://ccrma.stanford.edu/courses/256a-fall-2017/code/chunity_boilerplate.zip chunity boilerplate]
+
** can start from [boilerplate to be posted soon] for an example of:
** can look at [http://ccrma.stanford.edu/courses/256a-fall-2017/code/chunity_boilerplate_2.zip chunity boilerplate 2] for an example of:
+
 
*** driving the timing of a repeating sound event from chuck
 
*** driving the timing of a repeating sound event from chuck
 
*** having the time between sound events be variable and controlled from unity
 
*** 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
 
*** 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)
 
*** (which is valuable because chuck's timing is tighter than unity's)
** (EXPERIMENTAL, BEWARE OF BUGS) can use [http://ccrma.stanford.edu/courses/256a-fall-2017/code/ExperimentalChunityAssets.zip 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 3 of 3): Implementation ===
 
===(Part 3 of 3): Implementation ===
Line 43: Line 41:
 
** unity
 
** unity
 
** chunity
 
** chunity
*** see [https://ccrma.stanford.edu/~lja/chunity/ chunity tutorials] (skip the "setup" step)  
+
*** see [http://chuck.stanford.edu/chunity/tutorials/ chunity tutorials] (skip the "setup" step)  
 
*** 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 95: Line 93:
 
* 6) instructions on using your step sequencer
 
* 6) instructions on using your step sequencer
 
* 7) readme section describing:
 
* 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
 
** 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
 
* 8) upload the website / submit all necessary files (code, images, videos, HTML, etc) to canvas!
 
* 8) upload the website / submit all necessary files (code, images, videos, HTML, etc) to canvas!
 
(CCRMA webpage: http://ccrma.stanford.edu/~YOURID/256a/hw2/)
 
(CCRMA webpage: http://ccrma.stanford.edu/~YOURID/256a/hw2/)

Revision as of 15:31, 17 October 2018

Homework #2: Interactive AudioVisual Music Sequencer

Sequencer-thing.jpg

NOTE from Ge: this image is here mostly for its colors, PLEASE DON'T MAKE IT LOOK LIKE THIS (NECESSARILY)!

timeline:

  • part 0 (back-fill), put your visualizer website on your CCRMA account!
  • part 1 (reading), read Chapter 5 + Interlude
  • part 2 (research + on-paper design + something working), in-class (be prepared to present)
  • part 3 (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 2 of 3): 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 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 [boilerplate to be posted soon] 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)

(Part 3 of 3): 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:
  • 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!!! 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)


Deliverables

An HTML website containing:

  • 0) reading response
  • 1) source code to the project (entire zipped Unity project folder)
  • 2) screenshots of your step sequencer in action
  • 3) design sketches (scan them in if necessary)
  • 4) your musical statement!
  • 5) instructions on building the project (for example, anyone in the class should be able to download)
  • 6) instructions on using your step sequencer
  • 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 Unity
    • any comments you want to share (difficulties and what you enjoyed) on using ChucK in general
  • 8) upload the website / submit all necessary files (code, images, videos, HTML, etc) to canvas!

(CCRMA webpage: http://ccrma.stanford.edu/~YOURID/256a/hw2/)