Difference between revisions of "PLOrk spring2011"

From CSWiki
Jump to: navigation, search
(office hours)
(Tentative precept schedule)
Line 43: Line 43:
  
 
=== Tentative precept schedule ===
 
=== Tentative precept schedule ===
 +
(Much of this syllabus & assignments is inspired by Rebecca Fiebrink's 2010 syllabus)
 +
 +
* 2/2: Becoming PLOrk-worthy, Intro to the Universe and more
 +
** Introductions, Syllabus, Schedule, email list, wiki, setting up PLOrk rep
 +
** Brief history of electronic music / tech / PLOrk
 +
** Brief intro to sound: waves, frequency, consonance & dissonance, paritials, noise (more in psychoacoustics lecture)
 +
** Brief intro to digital audio: sampling and analog/digital conversion
 +
** Intro to UNIX structure, commands, scripts
 +
** Brief intro to miniAudicle & ChucK!
 +
** Coding in ChucK 101
 +
*** See Rebecca's [http://www.cs.princeton.edu/~fiebrink/314/2010/week1/chuck_basics.pdf handout on ChucK basics]
 +
*** patches, unit generators, and the dac
 +
*** primitive types (int, float) and numerical constants
 +
*** calling functions of UGens
 +
*** the Std.mtof special function
 +
*** controlling time in ChucK
 +
** See all [ Example code] from today
 +
** Assignment 1 assigned, due 2/8/10
 +
* 2/9: Further ChucK and synthesis fundamentals
 +
** Review concepts from 2/2
 +
** Intro to sound synthesis techniques
 +
** intro to Synthesis Toolkit (STK) UGens
 +
** Boolean logic
 +
*** ==, >=, <=, <, >, &&, ||, !=, ! operators
 +
**** see [http://chuck.cs.princeton.edu/doc/language/oper.html this page]
 +
*** true/false representations as 1/0
 +
** if and else statements
 +
** while loops
 +
** Misc. ChucK: ++ and --, the Std.rand() functions for random number generation, coding style conventions
 +
** See [ Example code] from today
 +
* 2/16: Intermediate ChucK
 +
** Arrays
 +
*** the @=> assignment operator for arrays and objects
 +
** For-loops with arrays
 +
** Intro to functions (void type)
 +
** Concurrency using spork~
 +
** More on harmonic series: vibrating strings; perception of pitch and timbre
 +
** [http://www.cs.princeton.edu/~fiebrink/314/2010/week3/ Example code] from today
 +
** Handouts
 +
*** [http://www.cs.princeton.edu/~fiebrink/314/functions101.pdf Handout on functions and concurrency]
 +
*** [http://www.cs.princeton.edu/~fiebrink/314/2009/chuck_arrays.pdf Handout on arrays]
 +
*** [http://www.cs.princeton.edu/~fiebrink/314/2009/chuck_loops.pdf Handout on for- and while-loops]
 +
* 2/23: More object-oriented programming and concurrency
 +
** SndBuf objects
 +
** Writing your own functions
 +
** Understanding and using user-defined classes
 +
** More on sporking
 +
*** vibrato
 +
** FM synthesis
 +
** More on harmonics and perception
 +
** Example code from today
 +
** See also
 +
*** On-the-fly coding examples: [http://chuck.cs.princeton.edu/doc/examples/ http://chuck.cs.princeton.edu/doc/examples/] (look for "otf")
 +
*** FM synthesis example: [http://chuck.cs.princeton.edu/doc/examples/basic/fm.ck http://chuck.cs.princeton.edu/doc/examples/basic/fm.ck]
 +
* 3/2: Events and interaction
 +
** NIMEs (new interfaces for musical expression)
 +
** HID devices and [http://smelt.cs.princeton.edu SMELT]
 +
*** Chuck's event model
 +
** Intro to supervised learning
 +
*** Intro to the algorithms
 +
*** Supervised learning & the mapping problem
 +
*** The wekinator learning model
 +
*** Using the wekinator with feature extractors & synthesizers
 +
** Using the [http://wekinator.cs.princeton.edu/ Wekinator] with HID devices and synthesis classes
 +
* 3/9
 +
** review of lots of stuff
 +
* 3/16: SPRING BREAK!
 +
* 3/23: MIDTERM PERFORMANCES!
 +
* 3/30: Frequency domain, plus lots of other useful things
 +
** Time/frequency representation of sound
 +
*** FFT and STFT
 +
*** See FFT handout [http://www.cs.princeton.edu/~fiebrink/314/2010/week8/FFT_handout_2010.pdf here]
 +
*** Using audacity and SPEAR for spectral analysis
 +
*** Analysis-resynthesis practice
 +
** Advanced coding practices / ChucK tips
 +
*** blackhole object
 +
*** scope, loops, and (no) garbage collection
 +
** Chuck's unit analyzer infrastructure
 +
*** See [http://chuck.cs.princeton.edu/uana/ Chuck UAna reference]
 +
*** Perry's FFT/IFFT examples: [http://www.cs.princeton.edu/~prc/314/FFT/ http://www.cs.princeton.edu/~prc/314/FFT/] from 2009
 +
* 4/6 Machine listening and audio analysis
 +
** Audio analysis techniques
 +
*** FFT continued
 +
*** Features, timbre, and perception
 +
*** UAnae and other audio feature extraction tools (see [http://chuck.cs.princeton.edu/doc/program/uana.html http://chuck.cs.princeton.edu/doc/program/uana.html])
 +
** Supervised learning algorithms
 +
** [http://www.cs.princeton.edu/~fiebrink/314/2010/week9/ Code examples from today (cross-synthesis)]
 +
*** Also see Perry's FFT examples from 2009 at [http://www.cs.princeton.edu/~prc/314/FFT/ http://www.cs.princeton.edu/~prc/314/FFT/] (includes SinOsc pitch tracker)
 +
* 4/14: More interactive coding techniques
 +
** MIDI, Events, LiSa introduction, coding strategies
 +
** [http://music.princeton.edu/~dan/plork/poly_midi.zip coding examples from class]
 +
** also, [http://wiki.cs.princeton.edu/index.php/LiSa_examples LiSa examples]
 +
** and [http://music.princeton.edu/~dan/LiSa/LiSa_tutorial.html LiSa tutorial]
 +
** and [http://chuck.cs.princeton.edu/doc/program/ugen_full.html#LiSa LiSa basic documentation]
 +
* 4/21
 +
** More on filters
 +
** OSC
 +
*** See basic OSC examples: [http://chuck.cs.princeton.edu/doc/examples/osc/s.ck sender] and [http://chuck.cs.princeton.edu/doc/examples/osc/r.ck receiver]
 +
*** Rebecca's [http://www.cs.princeton.edu/~fiebrink/314/2009/osc_handout.pdf OSC handout]
 +
** Examples from class: [http://www.cs.princeton.edu/~fiebrink/314/2010/week11/ here]
 +
* 4/28: What's left?

Revision as of 16:27, 30 January 2011

General Information

Welcome to COS/MUS 314 for Spring 2011. You will be assimilated into PLOrk, resistance is futile.

In addition to YOU, the following are involved in teaching these courses:

  • Daniel Iglesia, Visiting Lecturer/ Visiting Director of PLOrk
  • Jeffrey Snyder, Technical Director, Princeton Computer Music Studios, Associate Director of PLOrk
  • Michael Early, graduate student and TA, Assistant Director of PLOrk

Other Important People whose names will come up

  • Perry Cook and Dan Trueman, professors and PLOrk founders
  • Ge Wang, PLOrk founder, creator of ChucK, now leads rival Stanford LOrk
  • Rebecca Fiebrink, CS professor and PLOrk expert

Laptop Configuration

All PLOrk members must configure their laptops (Macbooks) as described here

The current version of the PLOrk Repository, broken down into subfolders that can be downloaded individually, can be found here

Schedule

Classes

Precepts WILL be held the first week of class!!

  • Precepts on Wednesdays from 7:30-9:20pm, Woolworth 102
  • Thursday rehearsal from 1:30-4:20pm, McAlpin and other rooms in Woolworth, when we break into smaller groups.

Important Dates

  • Class begins: February 2
  • Spring break: Week of March 14
  • Week of March 21st: informal midterm project presentations, location TBD
  • April 23rd: dress rehearsal and performance in Taplin Auditorium
  • April 29th: dress rehearsal and performance at 92nd St. Y Tribeca, NYC
  • Sometime Mid-May: final project presentations/open house

Resources

  • PLOrk Reader; lots and lots of reading relevant to PLOrk and this seminar in general. please add as you see fit, and ask us for the password for protected papers if you can't guess it.
  • Be sure you're on the PLOrk314-316 mailing list.
  • See the extensive list of resources at the Fall 2007 Wiki for starters.

COS/MUS 314 Info

office hours

  • Dan I. will be in Princeton on Wednesday and Thursdays. Office hours will be before/after class by request/appointment.
  • Jeff:
  • Michael:

Tentative precept schedule

(Much of this syllabus & assignments is inspired by Rebecca Fiebrink's 2010 syllabus)

  • 2/2: Becoming PLOrk-worthy, Intro to the Universe and more
    • Introductions, Syllabus, Schedule, email list, wiki, setting up PLOrk rep
    • Brief history of electronic music / tech / PLOrk
    • Brief intro to sound: waves, frequency, consonance & dissonance, paritials, noise (more in psychoacoustics lecture)
    • Brief intro to digital audio: sampling and analog/digital conversion
    • Intro to UNIX structure, commands, scripts
    • Brief intro to miniAudicle & ChucK!
    • Coding in ChucK 101
      • See Rebecca's handout on ChucK basics
      • patches, unit generators, and the dac
      • primitive types (int, float) and numerical constants
      • calling functions of UGens
      • the Std.mtof special function
      • controlling time in ChucK
    • See all [ Example code] from today
    • Assignment 1 assigned, due 2/8/10
  • 2/9: Further ChucK and synthesis fundamentals
    • Review concepts from 2/2
    • Intro to sound synthesis techniques
    • intro to Synthesis Toolkit (STK) UGens
    • Boolean logic
      • ==, >=, <=, <, >, &&, ||, !=, ! operators
      • true/false representations as 1/0
    • if and else statements
    • while loops
    • Misc. ChucK: ++ and --, the Std.rand() functions for random number generation, coding style conventions
    • See [ Example code] from today
  • 2/16: Intermediate ChucK
  • 2/23: More object-oriented programming and concurrency
  • 3/2: Events and interaction
    • NIMEs (new interfaces for musical expression)
    • HID devices and SMELT
      • Chuck's event model
    • Intro to supervised learning
      • Intro to the algorithms
      • Supervised learning & the mapping problem
      • The wekinator learning model
      • Using the wekinator with feature extractors & synthesizers
    • Using the Wekinator with HID devices and synthesis classes
  • 3/9
    • review of lots of stuff
  • 3/16: SPRING BREAK!
  • 3/23: MIDTERM PERFORMANCES!
  • 3/30: Frequency domain, plus lots of other useful things
    • Time/frequency representation of sound
      • FFT and STFT
      • See FFT handout here
      • Using audacity and SPEAR for spectral analysis
      • Analysis-resynthesis practice
    • Advanced coding practices / ChucK tips
      • blackhole object
      • scope, loops, and (no) garbage collection
    • Chuck's unit analyzer infrastructure
  • 4/6 Machine listening and audio analysis
  • 4/14: More interactive coding techniques
  • 4/21
  • 4/28: What's left?