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

From CCRMA Wiki
Jump to: navigation, search
(Created page with '= Homework #3: Sound Peeking = Due date: 2009.11.26 11:59:59pm (or thereabout), Monday. <div style="text-align: left;">Image:waves-bw.jpg</div> In this assignment, you a…')
 
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
= Homework #3: Sound Peeking  =
 
= Homework #3: Sound Peeking  =
  
Due date: 2009.11.26 11:59:59pm (or thereabout), Monday.
+
Due date: 2009.10.28 11:59:59pm (or thereabout), Wednesday.
  
  
Line 12: Line 12:
 
* choose a name for your program
 
* choose a name for your program
 
* get a framework compiling on your system (keep in mind the final deliverable must be compilable/runnable on the CCRMA machines OR on OS X)
 
* get a framework compiling on your system (keep in mind the final deliverable must be compilable/runnable on the CCRMA machines OR on OS X)
* might wish to start from the [http://ccrma.stanford.edu/courses/256a-fall-2009/lectures/VisualSine VisualSine] example from lecture (time domain waveform rendering)
+
* might wish to start from the [http://ccrma.stanford.edu/courses/256a-fall-2009/code/hw3/VisualSine VisualSine] example from lecture (time domain waveform rendering)
* additional code from class available [http://ccrma.stanford.edu/courses/256a-fall-2009/lectures/ here]
+
* use the chuck_fft.* files [http://ccrma.stanford.edu/courses/256a-fall-2009/code/hw3/FFT found here] '''NOTE: this library ONLY works with single-precision floating point numbers (e.g., float)'''
  
  

Latest revision as of 01:33, 20 October 2009

Homework #3: Sound Peeking

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


Waves-bw.jpg

In this assignment, you are to visualize sound in real-time, using OpenGL for the graphics programming.


Specification (part 1 of 3): naming + compilation

  • choose a name for your program
  • get a framework compiling on your system (keep in mind the final deliverable must be compilable/runnable on the CCRMA machines OR on OS X)
  • might wish to start from the VisualSine example from lecture (time domain waveform rendering)
  • use the chuck_fft.* files found here NOTE: this library ONLY works with single-precision floating point numbers (e.g., float)


Specification (part 2 of 3): Visualizing the spectrum

  • implement short time fourier transform, and visualize the spectrum over time
  • considerations:
    • windowing (rectangular, hann, hamming)
    • window size
    • FFT size
    • hop size (for now, hop size can equal window size)
  • implement either a waterfall plot (like sndpeek) or a real-time scrolling spectrogram


Specification (part 3 of 3): Visualize something about the sound

  • implement and visualize your choice of one of the following:
    • vowel vs. consonant
    • pitch tracking
    • an audio feature
    • use the sound to control some type of animation
    • (or something of your choosing)


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 (you'll likely get more out of it this way)

Deliverables

turn in all files by putting them in your Library/Web/256a/hw3/ 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/hw3/). 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
    • 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