Difference between revisions of "256a-fall-2009/hw4"

From CCRMA Wiki
Jump to: navigation, search
(Created page with '= Homework #4: Project Proposal + 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…')
 
 
(9 intermediate revisions by 2 users not shown)
Line 1: Line 1:
= Homework #4: Project Proposal + Networking =
+
= Homework #4: Project Proposal + Minimal Networking =
  
 
Due date:
 
Due date:
Line 5: Line 5:
 
* '''part 2''': 2009.11.4 11:59:59pm (or thereabout), Wednesday
 
* '''part 2''': 2009.11.4 11:59:59pm (or thereabout), Wednesday
  
<div style="text-align: left;">[[Image:waves-bw.jpg]]</div>
 
  
In this two-part assignment, you are to put together a proposal for final project, do initial design/architecture, come up with milestones. In the second part of the assignment,
+
<div style="text-align: left;">[[Image:computer_networking.jpg]]</div>
  
  
=== Specification (part 1 of 2): Project Proposal ===
+
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 2 of 2): Networking ===
+
== Specification (part 1 of 2): Project Proposal  ==
 +
* put together a proposal for your final project
 +
** check out this [[256a-fall-2009/proposal-example|project page template]]
 +
* 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
  
  
=== Note ===
+
== 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 [http://www.audiomulch.com/~rossb/code/oscpack/ OSCpack], a c++ library shown in class, also in the [http://ccrma.stanford.edu/~ge/software/calories 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!!!
 
* have fun with it!!!
 
* your code should compile and run on the CCRMA (or OSX) machines
 
* your code should compile and run on the CCRMA (or OSX) machines
Line 23: Line 54:
 
* you are welcome to work together, but you must do/turn in your own work
 
* you are welcome to work together, but you must do/turn in your own work
  
=== Deliverables ===
+
 
 +
== Deliverables ==
  
 
'''turn in all files by putting them in your Library/Web/256a/hw4/ directory, and concise online documentation + readme'''
 
'''turn in all files by putting them in your Library/Web/256a/hw4/ directory, and concise online documentation + readme'''
Line 30: Line 62:
 
* 2) online page for your project (should be viewable at http://ccrma.stanford.edu/~YOURID/256a/hw4/).  It should include:
 
* 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
 
** links to your files of various kinds
** instructions on building the project (for example, anyone in the class should be able to download
+
** instructions on building the project (for example, anyone in the class should be able to download and build)
 
** a short README text section that:
 
** a short README text section that:
 
*** conveys your ideas/comments in constructing each program  
 
*** conveys your ideas/comments in constructing each program  

Latest revision as of 23:50, 1 November 2009

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


Computer networking.jpg


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