Jump to content

256a-fall-2024/hw2: Difference between revisions

From CCRMA Wiki
Kunwoo (talk | contribs)
Kunwoo (talk | contribs)
 
(19 intermediate revisions by the same user not shown)
Line 2: Line 2:


=== Due Dates ===
=== Due Dates ===
* HW2 milestone: '''due Wednesday (10/09, 11:59:59pm Canvas); HW2 webpage updated with milestone video + in-class critique'''
* HW2 milestone: '''due Wednesday (10/09, 11:59:59pm Canvas); HW2 webpage updated with milestone video'''
* HW2 final deliverable: '''due Monday (10/21, 11:59:59pm Canvas); HW2 final webpage/video + in-class presentation'''
* HW2 final deliverable: '''due Monday (10/21, 11:59:59pm Canvas); HW2 final webpage/video'''


<div style="text-align: left;">[[Image:waves-bw.jpg]]</div>
<div style="text-align: left;">[[Image:waves-bw.jpg]]</div>
Line 9: Line 9:
In this assignment, you are to visualize sound in real-time, using ChuGL for the graphics programming, real-time audio, and as a programmable sound source. Your program will visualize: 1) live microphone input and 2) a designed '''sound narrative''' written in ChucK and visualized in your visualizer.  This is a fun project but there are many moving parts; '''start early'''.
In this assignment, you are to visualize sound in real-time, using ChuGL for the graphics programming, real-time audio, and as a programmable sound source. Your program will visualize: 1) live microphone input and 2) a designed '''sound narrative''' written in ChucK and visualized in your visualizer.  This is a fun project but there are many moving parts; '''start early'''.


=== Specification (milestone): Design + Visualizing the Waveform, Spectrum, and Spectrum History ===
=== Specification (milestone): Design + Visualize the Waveform, Spectrum, and Spectrum History ===
* go over [https://chuck.stanford.edu/chugl/examples/deep/ sndpeek-minimal.ck], and use [https://ccrma.stanford.edu/courses/256a/docs/sndpeek-minimal-guide.pdf sndpeek-minimal-guide.pdf] as a guide resource.
* go over [https://chuck.stanford.edu/chugl/examples/deep/ sndpeek-minimal.ck], and use [https://ccrma.stanford.edu/courses/256a/docs/sndpeek-minimal-guide.pdf sndpeek-minimal-guide.pdf] as a guide resource.
* explore [https://chuck.stanford.edu/chugl/examples/deep/ sndpeek.ck], and its waterfall plot implementation (spectrum history). Ask questions on discord if anything needs to be clarified.
* explore [https://chuck.stanford.edu/chugl/examples/deep/ sndpeek.ck], and its waterfall plot implementation (spectrum history). Ask questions on discord if anything needs to be clarified.
* using our starter code (sndpeek.ck), design and prototype a basic visualization of time-domain waveform and magnitude spectrum.
* using our starter code (sndpeek.ck), design and prototype your own basic visualization of time-domain waveform and magnitude spectrum.
* test using the microphone input.
* test using the microphone input.
* design and implement a waterfall plot (like sndpeek.ck), a real-time scrolling spectrogram, or another way to display spectrums over time.
* design and implement a waterfall plot (like sndpeek.ck), a real-time scrolling spectrogram, or another way to display spectrums over time.
** feel free to experiment on how to represent the spectrum history visually.
** feel free to experiment on how to represent the spectrum history visually.
** "make it read"!
* "make it read"!
 
* Helpful resources
**[https://chuck.stanford.edu/doc/reference/ ChucK API Reference]
**[https://chuck.stanford.edu/chugl/api/ ChuGL API Reference]
**[https://chuck.stanford.edu/chugl/doc/walkthru.html ChuGL walkthrough (The in-class tutorial guide)]
**[https://chuck.stanford.edu/chugl/doc/cheatsheet.html ChuGL cheatsheet (How do I do X?)]
**[https://chuck.stanford.edu/chugl/examples/ ChuGL examples]


=== Milestone Deliverables (due: 10/09 Wed midnight)===
=== Milestone Deliverables (due: 10/09 Wed midnight)===
Line 24: Line 31:
** a short reflection on creating this milestone. (How did you feel as a designer?)
** a short reflection on creating this milestone. (How did you feel as a designer?)
** a video (0.5 - 2 minutes, with audio, screen capture or with camera) of your visualizer in action.
** a video (0.5 - 2 minutes, with audio, screen capture or with camera) of your visualizer in action.
** hint: capture your video in full-screen (<code>GG.fullscreen();</code> will fullscreen ChuGL program)
*** hint: capture your video in full-screen (<code>GG.fullscreen();</code> will fullscreen ChuGL program)
*** upload to YouTube or Vimeo (or CCRMA) and embed the video from your webpage
*** Let your design speak itself ("Show, don't tell"). Don't include explanatory narrations or texts.
*** we will take a look at this video together during our in-class critique milestone session (10/10 Thursday).
*** Use ChuGL UIs for development only. It should not be part of the design itself or the video.
** upload to YouTube or Vimeo (or CCRMA) and embed the video from your webpage.
** we will take a look at this video together during our in-class critique milestone session (10/10 Thursday).


=== Specification (final deliverables): An Audio-Visual Narrative ===
=== Specification (final deliverables): An Audio-Visual Narrative ===
* create a sonic/musical narrative in ChucK to run inside your visualizer (Compose a computer-mediated music. Narratives that only use minutes of SndBuf pre-existing music is not allowed).
* create a sonic/musical narrative in ChucK to run inside your visualizer (The narrative should justify the medium of computer music. Simple playback of pre-recorded music not allowed).
** can use a combination of microphone ('''adc''' in ChucK) and sound synthesis.
** can 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.
Line 37: Line 46:
** technical fanciness not important!
** technical fanciness not important!
** making the viewer/listener '''feel something''': important!!
** making the viewer/listener '''feel something''': important!!
=== Note ===
* have fun with it!!!
* comment your code!
* you are welcome to work together, but you must do/turn in your own work.


=== Final Deliverables (due: 10/21 Mon midnight)===  
=== Final Deliverables (due: 10/21 Mon midnight)===  
* HW2 project webpage (should be viewable at http://ccrma.stanford.edu/~YOURID/256a/hw2/). It should include:
* 1) HW2 project webpage (should be viewable at http://ccrma.stanford.edu/~YOURID/256a/hw2/). It should include:
** a name and description of your audio visualizer.
** a name and description of your audio visualizer.
** a few screenshots that capture various parts of your visualizer in action.
** a few screenshots that capture various parts of your visualizer in action.
** a polished high-resolution video (2-3 minutes, with audio, screen capture or with camera) of both your visualizer in action AND your narrative.
** a polished high-resolution video (1.5-3 minutes, with audio, screen capture or with camera) of both your visualizer in action AND your narrative.
** hint: capture your video in full-screen (<code>GG.fullscreen();</code> will fullscreen ChuGL program).
*** Please don't include ChuGL development UIs in your final video. They are for development purpose only.
*** hint: capture your video in full-screen (<code>GG.fullscreen();</code> will fullscreen ChuGL program).
*** upload to YouTube or Vimeo (or CCRMA) and embed the video from your webpage.
*** upload to YouTube or Vimeo (or CCRMA) and embed the video from your webpage.
*** Show, don't tell.
** instructions for using your visualizers, including any keyboard/mouse control.
** instructions for using your visualizers, including any keyboard/mouse control.
** the production build of your visualizer (please specify the platform e.g., MacOS, Windows, or Linux).
** all your ChucK code.
** all your ChucK code.
** a final short text section that:
** a final short text section that:
*** conveys your ideas/comments in constructing each program.
*** conveys your ideas/comments in constructing each program.
*** writes a short reflection on creating this visualizer (How did you feel as a designer?)
*** writes a short reflection on creating this visualizer (How did you feel as a designer creating your visualizer?)
*** describes any difficulties you encountered in the process.
*** describes any difficulties you encountered in the process.
*** acknowledges help you received for this project.
*** acknowledges help you received for this project.
** feel free to include (or not include) your previous HW2 milestones. If you do, these previous milestones should appear AT THE BOTTOM of your HW2 webpage.
** feel free to include (or not include) your previous HW2 milestones. If you do, these previous milestones should appear AT THE BOTTOM of your HW2 webpage.
* 2) submit to Canvas: URL to webpage and your ChucK code.
* 2) submit to Canvas: URL to webpage and your ChucK code.
=== Note ===
* have fun with it!!!
* comment your code!
* you are welcome to work together, but you must do/turn in your own work.

Latest revision as of 04:49, 17 October 2024

Homework #2: Sound Peeking

Due Dates

  • HW2 milestone: due Wednesday (10/09, 11:59:59pm Canvas); HW2 webpage updated with milestone video
  • HW2 final deliverable: due Monday (10/21, 11:59:59pm Canvas); HW2 final webpage/video

In this assignment, you are to visualize sound in real-time, using ChuGL for the graphics programming, real-time audio, and as a programmable sound source. Your program will visualize: 1) live microphone input and 2) a designed sound narrative written in ChucK and visualized in your visualizer. This is a fun project but there are many moving parts; start early.

Specification (milestone): Design + Visualize the Waveform, Spectrum, and Spectrum History

  • go over sndpeek-minimal.ck, and use sndpeek-minimal-guide.pdf as a guide resource.
  • explore sndpeek.ck, and its waterfall plot implementation (spectrum history). Ask questions on discord if anything needs to be clarified.
  • using our starter code (sndpeek.ck), design and prototype your own basic visualization of time-domain waveform and magnitude spectrum.
  • test using the microphone input.
  • design and implement a waterfall plot (like sndpeek.ck), a real-time scrolling spectrogram, or another way to display spectrums over time.
    • feel free to experiment on how to represent the spectrum history visually.
  • "make it read"!

Milestone Deliverables (due: 10/09 Wed midnight)

  • HW2 project webpage (should be viewable at http://ccrma.stanford.edu/~YOURID/256a/hw2/). It should include:
    • a name and description of your audio visualizer.
    • a few screenshots that capture various parts of your visualizer in action.
    • a short reflection on creating this milestone. (How did you feel as a designer?)
    • a video (0.5 - 2 minutes, with audio, screen capture or with camera) of your visualizer in action.
      • hint: capture your video in full-screen (GG.fullscreen(); will fullscreen ChuGL program)
      • Let your design speak itself ("Show, don't tell"). Don't include explanatory narrations or texts.
      • Use ChuGL UIs for development only. It should not be part of the design itself or the video.
    • upload to YouTube or Vimeo (or CCRMA) and embed the video from your webpage.
    • we will take a look at this video together during our in-class critique milestone session (10/10 Thursday).

Specification (final deliverables): An Audio-Visual Narrative

  • create a sonic/musical narrative in ChucK to run inside your visualizer (The narrative should justify the medium of computer music. Simple playback of pre-recorded music not allowed).
    • can use a combination of microphone (adc in ChucK) and sound synthesis.
    • think about different "sections" or "movements", and how to transition between them.
    • try to align the aesthetic of your visualizer and your ChucK program (give it personality).
    • (optional): can use keyboard input to have "modes".
  • aesthetic goal:
    • technical fanciness not important!
    • making the viewer/listener feel something: important!!

Final Deliverables (due: 10/21 Mon midnight)

  • 1) HW2 project webpage (should be viewable at http://ccrma.stanford.edu/~YOURID/256a/hw2/). It should include:
    • a name and description of your audio visualizer.
    • a few screenshots that capture various parts of your visualizer in action.
    • a polished high-resolution video (1.5-3 minutes, with audio, screen capture or with camera) of both your visualizer in action AND your narrative.
      • Please don't include ChuGL development UIs in your final video. They are for development purpose only.
      • hint: capture your video in full-screen (GG.fullscreen(); will fullscreen ChuGL program).
      • upload to YouTube or Vimeo (or CCRMA) and embed the video from your webpage.
      • Show, don't tell.
    • instructions for using your visualizers, including any keyboard/mouse control.
    • all your ChucK code.
    • a final short text section that:
      • conveys your ideas/comments in constructing each program.
      • writes a short reflection on creating this visualizer (How did you feel as a designer creating your visualizer?)
      • describes any difficulties you encountered in the process.
      • acknowledges help you received for this project.
    • feel free to include (or not include) your previous HW2 milestones. If you do, these previous milestones should appear AT THE BOTTOM of your HW2 webpage.
  • 2) submit to Canvas: URL to webpage and your ChucK code.

Note

  • have fun with it!!!
  • comment your code!
  • you are welcome to work together, but you must do/turn in your own work.