Difference between revisions of "256b-winter-2010/hw1"

From CCRMA Wiki
Jump to: navigation, search
(Specification (part 2 of 3): Synthesize Audio)
(Specification (part 2 of 3): Synthesize Audio)
Line 19: Line 19:
 
* Modify your code from above to do some form of audio synthesis
 
* Modify your code from above to do some form of audio synthesis
 
** This can be a square wave, triangle wave, FM or AM synthesis, filtered noise, etc.
 
** This can be a square wave, triangle wave, FM or AM synthesis, filtered noise, etc.
** Requirement: Your synthesis method must have some variable control (e.x. be able to change the center frequency, modulation, or similar)
+
** Requirement: Your synthesis method must have some variable control (i.e. be able to change the center frequency, modulation, or similar parameter)
  
 
=== Specification (part 3 of 3): Interaction ===
 
=== Specification (part 3 of 3): Interaction ===

Revision as of 22:10, 4 January 2010

Homework #1: iPhone: Get Set, Synthesis, Interact

Due date: 2009.1.13 11:59:59pm (or thereabout), Wednesday.

JoyOfCooking.png

The goal of the first homework is to make sure everyone can get real-time audio up and running with some interaction with external control such as input from the accelerometer, compass, multi-touch, or GUI elements. Let's get cookin'.


Specification (part 1 of 3): Get Set Up

  • Compile and run a standalone program on your phone.
    • Create a new "View-based Application" project for iPhone (OS File-> New Project -> View-based Project)
    • Compile and run on the device (not just in the simulator). Make sure the .plist file is correct (Bundle identifier= edu.stanford.ccrma.${PRODUCT_NAME}
  • Make basic audio I/O work
    • This should be review from the tutorial, but if not...
    • Note: If you do not do anything in the audio callback loop, feedback will most likely result so synthesize a simple sine wave to fill in the output buffer.

Specification (part 2 of 3): Synthesize Audio

  • Modify your code from above to do some form of audio synthesis
    • This can be a square wave, triangle wave, FM or AM synthesis, filtered noise, etc.
    • Requirement: Your synthesis method must have some variable control (i.e. be able to change the center frequency, modulation, or similar parameter)

Specification (part 3 of 3): Interaction

Note

  • have fun with it!!!
  • 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
  • some considerations:


Deliverables

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

  • 1) source code to the project (*.h, *.cpp, *.m *.mm *.c makefile, project files, etc.)
  • 2) online page for your project (should be viewable at http://ccrma.stanford.edu/~YOURID/256b/hw1/). It should include:
    • links to your files of various kinds (or to a zip/tar archive)
    • instructions on building the project (for example, anyone in the class should be able to download and run)
    • 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 and Nick with the link to your web page, as a confirmation that you are submitting the assignment