Difference between revisions of "256a-fall-2017/hw3"

From CCRMA Wiki
Jump to: navigation, search
((Part 1 of 3): Research + Preliminary Design + Something Working)
((Part 1 of 3): Research + Preliminary Design + Something Working)
 
(2 intermediate revisions by the same user not shown)
Line 6: Line 6:
  
 
timeline:
 
timeline:
* part A (research + on-paper design + something working) due: 2017.10.23, in-class Monday (be prepared to present)
+
* 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.29 11:59:59pm, Sunday.
+
* part B (implementation) due: 2017.10.31 11:59:59pm, Tuesday.
* part C (demo/mini-performance)) due: 2017.10.30, in-class Monday
+
* 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!
 
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!
Line 14: Line 14:
  
 
=== (Part 1 of 3): Research + Preliminary Design + Something Working ===
 
=== (Part 1 of 3): Research + Preliminary Design + Something Working ===
* '''due in-class Monday (10/23) (also upload to Canvas)'''  
+
* '''due in-class Wednesday (10/25) (also upload to Canvas)'''  
 
* do research on music sequencers!
 
* do research on music sequencers!
 
* compile a list of useful references on various types of step sequencers / designs (articles, papers, images, etc.)
 
* compile a list of useful references on various types of step sequencers / designs (articles, papers, images, etc.)
Line 30: Line 30:
 
* '''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 [http://ccrma.stanford.edu/courses/256a-fall-2017/code/chunity_boilerplate.zip chunity boilerplate]
** can look at [http://ccrma.stanford.edu/courses/256a-fall-2017/code/chunity_boilerplate_2.zip chunity boilerplat 2] 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 2 of 3): Implementation ===
 
===(Part 2 of 3): Implementation ===
* '''due 2017.10.29 11:59:59pm, Sunday'''
+
* '''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!
 
* 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 72: Line 73:
  
 
===(Part 3 of 3): Musical Statement + In-Class Presentation===
 
===(Part 3 of 3): Musical Statement + In-Class Presentation===
* '''due: in-class Monday (10/30)'''
+
* '''due: in-class Wednesday (11/1)'''
 
* 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!

Latest revision as of 11:53, 30 October 2017

Homework #3: 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 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:
    • 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)

(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!


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) 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/