Jump to content

256a-fall-2009/hw4

From CCRMA Wiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Homework #4: Project Proposal + Minimal Networking

Due date:

  • part 1: 2009.11.2 3:15pm (class time - be ready to give 2 minute presentation), Monday
  • part 2: 2009.11.4 11:59:59pm (or thereabout), Wednesday



In this two-part assignment, you are to put together a proposal/presentation for final project. In the second part of the assignment, you are create a simple networked instrument using OSC.


Specification (part 1 of 2): Project Proposal

  • put together a proposal for your final project
  • recommended number of people on team: 1 or 2 (if 3 or more, please talk to me)
  • craft some preliminary design for the product (the vision, for end users)
  • architect the software (the engine/framework, for developers)
  • make some realistic milestones (2 to 3) leading up the final presentation (in class, finals week)
  • for Monday (11/2), present this in a 2-3 minute presentation


Specification (part 2 of 2): Networking

  • using OSC, and components from your previous 3 assignments (adding code as necessary), create the simplest networked instrument you can think of (that is still "expressive")
  • prepare a 30-second performance with it (recruit others as needed)
  • here is OSCpack, a c++ library shown in class, also in the calories visualization.


components and ideas

  • only hard project requirement: your networked instrument should make use of OSC (sending and receiving)
  • real-time audio / synthesis
  • interaction (who controls what, and on which machine(s))?
  • graphics from hw3?
  • ???
  • perhaps a one-to-one musical instrument (two laptops, two people)?
  • perhaps a networked musical game (e.g., musical hot potato, some form of marco polo)?
  • perhaps ??!?!?!?

questions

  • what is the interface? (e.g., keyboard? text? mouse?)
  • how "real-time" is this instrument (it doesn't have to be)?
  • what kind of music can the instrument make (as a group)?
  • how many people and machines are needed in a performance setting?
  • keep it simple! (aesthetically speaking, aim for a ultra-simple networked instrument that is still by some measure still "expressive")


Note

  • have fun with it!!!
  • your code should compile and run on the CCRMA (or OSX) machines
  • 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


Deliverables

turn in all files by putting them in your Library/Web/256a/hw4/ directory, and concise online documentation + readme

  • 1) source code to the project (*.h, *.cpp, *.c makefile, etc.)
  • 2) online page for your project (should be viewable at http://ccrma.stanford.edu/~YOURID/256a/hw4/). It should include:
    • links to your files of various kinds
    • instructions on building the project (for example, anyone in the class should be able to download and build)
    • a short README text section that:
      • conveys your ideas/comments in constructing each program
      • describes any difficulties you encountered in the process
      • lists any collaborators
  • 3) email Ge with the link to your web page, as a confirmation that you are submitting the assignment