Difference between revisions of "256a-fall-2017/hw3"
From CCRMA Wiki
(initial version copied from 2015) |
(→Homework #3: AudioVisual Music Sequencer) |
||
Line 5: | Line 5: | ||
'''NOTE from Ge: this image is here mostly for its colors, PLEASE DON'T MAKE IT LOOK LIKE THIS (NECESSARILY)!''' | '''NOTE from Ge: this image is here mostly for its colors, PLEASE DON'T MAKE IT LOOK LIKE THIS (NECESSARILY)!''' | ||
− | * part A (research + on-paper design + something working) due: | + | timeline: |
− | * part B (implementation) due: | + | * part A (research + on-paper design + something working) due: 2017.10.23, in-class Monday (be prepared to present) |
− | * part C (demo/mini-performance)) due: | + | * part B (implementation) due: 2017.10.29 11:59:59pm, Sunday. |
+ | * part C (demo/mini-performance)) due: 2017.10.30, in-class Monday | ||
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 13: | 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/ | + | * '''due in-class Monday (10/23)''' |
* 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 22: | Line 23: | ||
** how many parallel tracks / layers / or different types of sound? (e.g., track 1 synth, track 2 drum etc) | ** 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 input the sequence (in real-time)? | ||
− | ** how does it sound? will it use synthesis? load audio samples? | + | ** 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?! | ** can you save/load sequences? what file format? should we have a common Music256a/476a format?! | ||
** how to control/depict tempo? | ** how to control/depict tempo? | ||
* 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!) |
− | * have something working in software, towards your core idea/aesthetics! | + | * '''have something working in software, towards your core idea/aesthetics!''' |
===(Part 2 of 3): Implementation === | ===(Part 2 of 3): Implementation === | ||
− | * '''due | + | * '''due 2017.10.29 11:59:59pm, Sunday''' |
* 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 | ||
− | * | + | * should use: |
− | ** | + | ** unity |
− | ** | + | ** chunity |
− | + | ||
* potential things to sequence: | * potential things to sequence: | ||
** pitch | ** pitch | ||
** dynamics | ** dynamics | ||
− | ** different | + | ** different timbres / instruments |
** envelopes | ** 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" | * "hints" | ||
** 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! | ||
* 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 musical statement (see below) | ||
** 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? recommend a class diagram! | ||
Line 55: | Line 65: | ||
===(Part 3 of 3): Musical Statement + In-Class Presentation=== | ===(Part 3 of 3): Musical Statement + In-Class Presentation=== | ||
− | * '''due: | + | * '''due: in-class Monday (10/30)''' |
* using your sequencer, create a short musical statement; | * using your sequencer, create a short musical statement; | ||
* either make a video of you performing it, and/or a short recording (mp3)! | * either make a video of you performing it, and/or a short recording (mp3)! | ||
− | * | + | * do a '''live''' presentation of your step sequencer in class! |
=== Note === | === Note === | ||
− | * as always, have fun with it!!! | + | * as always, have fun with it!!! P.S.!!! make it SATISFYING!!! |
* comment your code! | * comment your code! | ||
* choose your own coding conventions - but '''be consistent''' | * choose your own coding conventions - but '''be consistent''' | ||
Line 69: | Line 79: | ||
=== Deliverables === | === Deliverables === | ||
− | |||
− | |||
* 0) source code to the project (*.h, *.cpp, *.c makefile, etc.) | * 0) source code to the project (*.h, *.cpp, *.c makefile, etc.) | ||
Line 79: | Line 87: | ||
* 5) instructions in using your step sequencer | * 5) instructions in using your step sequencer | ||
− | submit to | + | submit 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/''' |
Revision as of 15:03, 17 October 2017
Contents
Homework #3: 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 A (research + on-paper design + something working) due: 2017.10.23, in-class Monday (be prepared to present)
- part B (implementation) due: 2017.10.29 11:59:59pm, Sunday.
- part C (demo/mini-performance)) due: 2017.10.30, in-class Monday
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 Monday (10/23)
- 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!
(Part 2 of 3): Implementation
- due 2017.10.29 11:59:59pm, Sunday
- 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
- 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 musical statement (see below)
- 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!
- downloading the code
- (for part 3: stuff from part 3 below)
(Part 3 of 3): Musical Statement + In-Class Presentation
- due: in-class Monday (10/30)
- using your sequencer, create a short musical statement;
- either make a video of you performing it, and/or a short recording (mp3)!
- 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
- 0) source code to the project (*.h, *.cpp, *.c makefile, etc.)
- 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 in using your step sequencer
submit 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/