Difference between revisions of "256a-fall-2017/hw2"
From CCRMA Wiki
(→Specification (part 2 of 3): Visualizing the spectrum) |
(→Specification (part 3 of 3): An Audio-Visual Narrative) |
||
Line 30: | Line 30: | ||
=== Specification (part 3 of 3): An Audio-Visual Narrative === | === Specification (part 3 of 3): An Audio-Visual Narrative === | ||
* create a ChucK program to run inside your visualizer | * create a ChucK program to run inside your visualizer | ||
− | ** use a combination of microphone and sound synthesis | + | ** use a combination of microphone ('''adc''' in ChucK) and sound synthesis |
** think about different "sections" or "movements", and how to transition between them | ** think about different "sections" or "movements", and how to transition between them | ||
** (optional): can use keyboard input | ** (optional): can use keyboard input | ||
Line 37: | Line 37: | ||
** technical fanciness not important! | ** technical fanciness not important! | ||
** make the viewer/listener '''feel something''': important!! | ** make the viewer/listener '''feel something''': important!! | ||
− | |||
=== Note === | === Note === |
Revision as of 10:46, 2 October 2017
Contents
Homework #2: Sound Peeking
Due date: Sunday 2017.10.15 11:59:59pm.
In this assignment, you are to visualize sound in real-time, using OpenGL for the graphics programming, and integrated ChucK as a sound source. Your program will visualize: 1) live microphone input and 2) a designed sound narrative written in ChucK!
Specification (part 0 of 3): Reading
- please read: Some Principles of Visual Design for Computer Music
- (for reference) the original OpenGL (1.1) "The Red Book"
- download and play with sndpeek
Specification (part 1 of 3): Naming + Compilation
- choose a name for your program
- get a framework compiling on your system; 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
- test using the microphone input!
Specification (part 3 of 3): An Audio-Visual Narrative
- create a ChucK program to run inside your visualizer
- use a combination of microphone (adc in ChucK) and sound synthesis
- think about different "sections" or "movements", and how to transition between them
- (optional): can use keyboard input
- aesthetic goal:
- polish not important!
- technical fanciness not important!
- make the viewer/listener feel something: important!!
Note
- have fun with it!!!
- PRINT OUT USAGE/KEYS TO CONTROLLING YOUR VISUALIZATION ON THE CONSOLE EVERY TIME YOUR VISUALIZER STARTS! (see sndpeek)
- 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 via coursework, with concise online documentation + readme
- 0) source code to the project (*.h, *.cpp, *.c makefile, etc.)
- 1) screenshots of your visualizer!
- 2) online page for your project (should be viewable at http://ccrma.stanford.edu/~YOURID/256a/hw2/). 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) upload to coursework, under a new folder hw2