Jump to content

256a-fall-2020/hw3: Difference between revisions

From CCRMA Wiki
Ge (talk | contribs)
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..."
 
Ge (talk | contribs)
 
(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 from Ge: this image is here mostly for its colors, PLEASE DON'T (NECESSARILY) MAKE IT LOOK LIKE THIS!'''
'''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 + something working), in-class (be prepared to present)
* part 1 (research + on-paper design), submit to Canvas and be prepared to present
* part 2 (demo/mini-performance)), in-class (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!
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 ===
=== (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!'''
** can start from the Chunity Example script "ChunityExampleTimeAdvancerWithHelperComponents.cs" for an example of:
* '''Check out the [https://www.youtube.com/watch?v=LZMLEfjq8Ns CHICKEN SEQUENCER tutorial video]'''
*** driving the timing of a repeating sound event from chuck
** files from the tutorial [https://arrful.design/tv/tutorials/files/chickencer.unitypackage chickencer.unitypackage]
*** having the time between sound events be variable and controlled from unity
*** (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 animation corresponding to it from a value in chuck, NOT a value in unity
** driving the timing of a repeating sound event from chuck
*** (which is valuable because chuck's timing is tighter than unity's)
** 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
===(Part 2 of 2): Implementation ===
** (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
** 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
** 'important: timing must be audio-driven to ensure precision' (i.e., driven from audio/chuck, not from graphics/unit)
** 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" is optional!
** 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? recommend a class diagram!
** system design: how is your software architected? we recommend a class diagram.
** the code for download
** (optional) any 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 ===
=== Note ===
* as always, have fun with it!  Also: make it satisfying
* 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!
* 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 ===
=== Deliverables ===
An HTML website containing:
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) your musical statement!
* 5) instructions on using your step sequencer
* 6) instructions on using your step sequencer
* 6) instructions on building the project (for example, anyone in the class should be able to download)
* 7) instructions on building the project (for example, anyone in the class should be able to download)
* 7) readme section describing:
* 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
* 9) upload the website URL / submit all necessary files (code, images, videos, etc) to canvas!
* 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)
  • 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:
  • 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/)