Difference between revisions of "PLOrk spring2011"

From CSWiki
Jump to: navigation, search
(Tentative precept schedule)
(Tentative precept schedule)
Line 45: Line 45:
 
(Much of this syllabus & assignments is inspired by Rebecca Fiebrink's 2010 syllabus)
 
(Much of this syllabus & assignments is inspired by Rebecca Fiebrink's 2010 syllabus)
  
* 2/2: Becoming PLOrk-worthy, Intro to the Universe and more
+
* 2/2: Becoming PLOrk-worthy, Intro to the ChucK Universe  
 
** Introductions, Syllabus, Schedule, email list, wiki, setting up PLOrk rep
 
** Introductions, Syllabus, Schedule, email list, wiki, setting up PLOrk rep
 
** Brief history of electronic music / tech / PLOrk
 
** Brief history of electronic music / tech / PLOrk
Line 63: Line 63:
 
* 2/9: Further ChucK and synthesis fundamentals
 
* 2/9: Further ChucK and synthesis fundamentals
 
** Review concepts from 2/2
 
** Review concepts from 2/2
** Intro to sound synthesis techniques
+
** Intro to historical sound synthesis techniques
** intro to Synthesis Toolkit (STK) UGens
+
** Implementation/visualization in other softwares/hardware
 
** Boolean logic
 
** Boolean logic
 
*** ==, >=, <=, <, >, &&, ||, !=, ! operators
 
*** ==, >=, <=, <, >, &&, ||, !=, ! operators
Line 73: Line 73:
 
** Misc. ChucK: ++ and --, the Std.rand() functions for random number generation, coding style conventions
 
** Misc. ChucK: ++ and --, the Std.rand() functions for random number generation, coding style conventions
 
** See [ Example code] from today
 
** See [ Example code] from today
* 2/16: Intermediate ChucK
+
* 2/16: Intermediate ChucK and Psychoacoustics
** Arrays
+
** More Arrays
*** the @=> assignment operator for arrays and objects
+
** Intro to functions
** For-loops with arrays
+
** intro to Synthesis Toolkit (STK) UGens
** Intro to functions (void type)
 
 
** Concurrency using spork~
 
** Concurrency using spork~
 
** More on harmonic series: vibrating strings; perception of pitch and timbre
 
** More on harmonic series: vibrating strings; perception of pitch and timbre
Line 90: Line 89:
 
** Understanding and using user-defined classes
 
** Understanding and using user-defined classes
 
** More on sporking
 
** More on sporking
*** vibrato
+
*** vibrato, blackhole
 
** FM synthesis
 
** FM synthesis
** More on harmonics and perception
 
 
** Example code from today
 
** Example code from today
 
** See also  
 
** See also  
Line 108: Line 106:
 
** Using the [http://wekinator.cs.princeton.edu/ Wekinator] with HID devices and synthesis classes
 
** Using the [http://wekinator.cs.princeton.edu/ Wekinator] with HID devices and synthesis classes
 
* 3/9
 
* 3/9
** review of lots of stuff
+
** Transcoding, multimedia, data sets
 +
**  Max/MSP, SuperCollider, Processing intro
 
* 3/16: SPRING BREAK!
 
* 3/16: SPRING BREAK!
 
* 3/23: MIDTERM PERFORMANCES!
 
* 3/23: MIDTERM PERFORMANCES!
Line 117: Line 116:
 
*** Using audacity and SPEAR for spectral analysis
 
*** Using audacity and SPEAR for spectral analysis
 
*** Analysis-resynthesis practice
 
*** Analysis-resynthesis practice
** Advanced coding practices / ChucK tips
 
*** blackhole object
 
 
*** scope, loops, and (no) garbage collection
 
*** scope, loops, and (no) garbage collection
 
** Chuck's unit analyzer infrastructure
 
** Chuck's unit analyzer infrastructure
Line 126: Line 123:
 
** Audio analysis techniques
 
** Audio analysis techniques
 
*** FFT continued
 
*** FFT continued
*** Features, timbre, and perception
+
*** Features, timbre, and perception - pitch, volume, etc.
 
*** 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])
 
*** 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
 
** Supervised learning algorithms
Line 133: Line 130:
 
* 4/13: More interactive coding techniques
 
* 4/13: More interactive coding techniques
 
** MIDI, Events, LiSa introduction, coding strategies
 
** MIDI, Events, LiSa introduction, coding strategies
** [http://music.princeton.edu/~dan/plork/poly_midi.zip coding examples from class]
+
** [ coding examples from class]
 
** also, [http://wiki.cs.princeton.edu/index.php/LiSa_examples LiSa examples]
 
** 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://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]
 
** and [http://chuck.cs.princeton.edu/doc/program/ugen_full.html#LiSa LiSa basic documentation]
 
* 4/20
 
* 4/20
** More on filters
+
** OSC and networking
** 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]
 
*** 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]
 
*** 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]
 
** Examples from class: [http://www.cs.princeton.edu/~fiebrink/314/2010/week11/ here]
* 4/27: other stuff
+
* 4/27: TBD

Revision as of 13:04, 1 February 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 ChucK Universe
    • 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 historical sound synthesis techniques
    • Implementation/visualization in other softwares/hardware
    • 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 and Psychoacoustics
  • 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
    • Transcoding, multimedia, data sets
    • Max/MSP, SuperCollider, Processing intro
  • 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
      • scope, loops, and (no) garbage collection
    • Chuck's unit analyzer infrastructure
  • 4/6 Machine listening and audio analysis
  • 4/13: More interactive coding techniques
  • 4/20
  • 4/27: TBD