Difference between revisions of "PLOrk spring2013"

From CSWiki
Jump to: navigation, search
(Created page with " == General Information == Welcome to COS/MUS 314 for Spring 2011. You will be assimilated into [http://plork.cs.princeton.edu/ PLOrk], resistance is futile. In addition to YOU,...")
 
(Tentative precept schedule)
 
(19 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
 
== General Information ==
 
== General Information ==
Welcome to COS/MUS 314 for Spring 2011. You will be assimilated into [http://plork.cs.princeton.edu/ PLOrk], resistance is futile.
+
Welcome to COS/MUS 314 for Spring 2013. You will be assimilated into [http://plork.cs.princeton.edu/ PLOrk], resistance is futile.
  
 
In addition to YOU, the following are involved in teaching these courses:
 
In addition to YOU, the following are involved in teaching these courses:
 
* Daniel Iglesia, Visiting Lecturer/ Visiting Director of PLOrk
 
* Daniel Iglesia, Visiting Lecturer/ Visiting Director of PLOrk
 
* Jeffrey Snyder, Technical Director, Princeton Computer Music Studios, Associate 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
+
* Konrad Kaczmarek, graduate student, Assistant Director of PLOrk
  
 
Other Important People whose names will come up
 
Other Important People whose names will come up
Line 26: Line 25:
 
* Spring break: Week of March 18
 
* Spring break: Week of March 18
 
* April 24rd: dress rehearsal and performance in Taplin Auditorium
 
* April 24rd: dress rehearsal and performance in Taplin Auditorium
* May 17: final project presentations (public event)
+
* May 18: final project presentations (public event)
  
 
== Resources ==
 
== Resources ==
Line 35: Line 34:
 
== COS/MUS 314 Info ==
 
== COS/MUS 314 Info ==
 
=== office hours ===
 
=== office hours ===
*Dan I. (daniel.iglesia AT gmail )will be in Princeton on Wednesday and Thursdays. Office hours will be before/after class by request/appointment.
+
*Dan I. (daniel.iglesia AT gmail )will be in Princeton on Tuesdays and WEdnesdays. Office hours will be before/after class by request/appointment.
*Jeff: (josnyder AT princeton )
+
*Jeff: (josnyder AT princeton ) TBA
*Konrad: (kkaczmar AT princeton)
+
*Konrad: (kkaczmar AT princeton) TBA
  
 
=== Tentative precept schedule ===
 
=== Tentative precept schedule ===
There is a lot of new stuff coming into PLOrk practice this year (pieces! LANDimi! MobMuPlat! all-standalones!) and so this is very subject to change
+
There is a lot of new stuff coming into PLOrk practice this year (pieces! LANdini! MobMuPlat! all-standalones!) and so this is very subject to change
  
* 2/2: Becoming PLOrk-worthy, Intro to the ChucK Universe  
+
* 2/5: 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
 
** Brief intro to digital audio: sampling and analog/digital conversion
** Intro to UNIX structure, commands, scripts
 
 
** Brief intro to miniAudicle & ChucK!
 
** Brief intro to miniAudicle & ChucK!
 
** Coding in ChucK 101
 
** Coding in ChucK 101
Line 56: Line 51:
 
*** the Std.mtof special function
 
*** the Std.mtof special function
 
*** controlling time in ChucK
 
*** controlling time in ChucK
** Example code from today
+
***sporking
***[http://music.columbia.edu/~daniglesia/plork2011/class1code/HelloOsc.ck HelloOsc.ck] (monophonic)
+
**code:
***[http://music.columbia.edu/~daniglesia/plork2011/class1code/HelloOsc_sporked.ck HelloOsc_sporked.ck] (sporked)
+
***[http://music.columbia.edu/~daniglesia/plork2013/class1/BasicOsc.ck BasicOsc]
** Assignment 1 assigned, due 2/8/10
+
***[http://music.columbia.edu/~daniglesia/plork2013/class1/BasicOsc2.ck BasicOsc2]
** Rehearsal: [http://music.columbia.edu/~daniglesia/plork2011/coag.ck coag.ck]
+
***[http://music.columbia.edu/~daniglesia/plork2013/class1/BasicOsc3.ck BasicOsc3]
* 2/9: Further ChucK and synthesis fundamentals
+
***[http://music.columbia.edu/~daniglesia/plork2013/class1/BasicOsc4.ck BasicOsc4]
** Review concepts from 2/2
+
***[http://music.columbia.edu/~daniglesia/plork2013/class1/kicksnarehat.zip zip file of kick,snare,hat]
** Intro to historical sound synthesis techniques
+
** Assignment 1 assigned, due 2/11/13
** Implementation/visualization in other softwares/hardware
+
* 2/12: Further ChucK and synthesis  
** making it dynamic with LFOs
+
**lots of synth stuff, filters, lfos, envelope
** Boolean logic
+
**code:
*** ==, >=, <=, <, >, &&, ||, !=, ! operators
+
***[http://music.columbia.edu/~daniglesia/plork2013/class2/additive.ck additive (not super exciting)]
**** see [http://chuck.cs.princeton.edu/doc/language/oper.html this page]
+
***[http://music.columbia.edu/~daniglesia/plork2013/class2/subtractive1.ck subtractive1]
** if and else statements
+
***[http://music.columbia.edu/~daniglesia/plork2013/class2/subtractive2.ck subtractive2]
 
** while loops, a little more with time
 
** while loops, a little more with time
** See [Example code from today:
+
* 2/19 Objects and Events - real time control
***[http://music.columbia.edu/~daniglesia/plork2011/class2code/HelloOsc_drums.ck HelloOsc_drums.ck]
 
***[http://music.columbia.edu/~daniglesia/plork2011/class2code/MiniSynth1.ck MiniSynth1.ck]
 
***[http://music.columbia.edu/~daniglesia/plork2011/class2code/MiniSynth2.ck MiniSynth2.ck] )
 
* 2/16 Objects and Events - real time control
 
 
** object oriented programming, functions/variables/subclassing
 
** object oriented programming, functions/variables/subclassing
 
** events generated by devices: HID (mouse, keyboard, etc)  
 
** events generated by devices: HID (mouse, keyboard, etc)  
** MIDI events
+
**code:
** tying together in ChucK
+
***[http://music.columbia.edu/~daniglesia/plork2013/class3/mouse.ck mouse theremin]
** Example Code:
+
***[http://music.columbia.edu/~daniglesia/plork2013/class3/tether.ck tether oscillators]
*** [http://music.columbia.edu/~daniglesia/plork2011/class3code/class3_code1.ck class3_code1.ck ] (mouse)
+
***[http://music.columbia.edu/~daniglesia/plork2013/class3/tilt.ck tilt sound playback]
*** [http://music.columbia.edu/~daniglesia/plork2011/class3code/class3_code2tether.ck class3_code2tether.ck ]  
+
* 2/26 Polyphony, real-time audio input, time-based effects
*** [http://music.columbia.edu/~daniglesia/plork2011/class3code/class3_midi.ck class3_midi.ck ] (midi)
 
* 2/23 Polyphony, real-time audio input, time-based effects
 
 
** build polyphonic synth, do the bookkeeping
 
** build polyphonic synth, do the bookkeeping
 
** microphone input
 
** microphone input
 
** time-based delay effects
 
** time-based delay effects
 
*** delay, with feedback (echo)
 
*** delay, with feedback (echo)
*** variable delay time (record scratch speed effect, flanger, chorus)
+
*** variable delay time (vibrato/flanger effect)
*** tiny delay time (comb filter)
 
** pitch shifting, equal temperament function
 
 
** example code:
 
** example code:
*** [http://music.columbia.edu/~daniglesia/plork2011/class4code/class4poly.ck polyphonic synth!]
+
***[http://music.columbia.edu/~daniglesia/plork2013/class4/polyphonyWithEvents.ck polyphonic computer keyboard synth]
*** [http://music.columbia.edu/~daniglesia/plork2011/class4code/class4delay.ck delay] (with LFO on delay amount)
+
***[http://music.columbia.edu/~daniglesia/plork2013/class4/delayAndPitShift.ck pitch shifter]
*** [http://music.columbia.edu/~daniglesia/plork2011/class4code/class4combfilter.ck comb filter]
+
***[http://music.columbia.edu/~daniglesia/plork2013/class4/flanger.ck flanger effect]
*** [http://music.columbia.edu/~daniglesia/plork2011/class4code/class4pitchshift.ck polyphonic pitch shifter!]
+
***[http://music.columbia.edu/~daniglesia/plork2013/class4/flanger2.ck flanger effect]
*3/2 Lots of fun  
+
*3/5 Lots of fun  
**panning
+
**psychoacoustics
**Signals feeding/controlling signals
+
**syncing time by modding duration
**AM/FM synthesis
+
**object references
**Shred references
+
**creating a custom class
**Live sampling & playback with LiSa
 
**class code
 
***[http://music.columbia.edu/~daniglesia/plork2011/class5code/class5_pan.ck pan]
 
***[http://music.columbia.edu/~daniglesia/plork2011/class5code/class5_sync.ck sync]
 
***[http://music.columbia.edu/~daniglesia/plork2011/class5code/class5_FM.ck FM]
 
***[http://music.columbia.edu/~daniglesia/plork2011/class5code/class5_lisatest.ck basic lisa]
 
***[http://music.columbia.edu/~daniglesia/plork2011/class5code/class5_keyshred.ck shred references]
 
* 3/9 MIDTERM PERFORMANCES!
 
* 3/16: SPRING BREAK!
 
*3/23 object orientation and more
 
**operations on Time and Duration, modding time to sync timing across shreds
 
**gradual volume ramp over time with concurrent shred, user reference to shred to exit existing ramp
 
**creating your own objects
 
***instances, inheritance, static variables/methods, fake "constructor" code
 
***using pointers to hold a reference to an objects
 
***randomly choose an stk instrument with "StkInstrument superclass = subclasses can be referred to with a pointer from a superclass
 
***reconnect object circuit in instance variable, with un-chuck and reference to new UGen to chuck to
 
**create your own "fake" UGen by running a loop every sample and feeding a Step object
 
***digital clipping distortion
 
***quantization distortion (bringing down sampling rate and/or bit depth)
 
**class code
 
***[http://music.columbia.edu/~daniglesia/plork2011/class6code/class6_gradual.ck fadeToVol ramp]
 
***[http://music.columbia.edu/~daniglesia/plork2011/class6code/class6_objects.ck MyMelodyMaker object (Just ModalBar)]
 
***[http://music.columbia.edu/~daniglesia/plork2011/class6code/class6_objects2.ck MyMelodyMaker part 2 with variable STK instrument]
 
***[http://music.columbia.edu/~daniglesia/plork2011/class6code/class6_customgen.ck "fake" clipping distortion UGen via sample loop]
 
***[http://music.columbia.edu/~daniglesia/plork2011/class6code/degrade.ck "fake" UGen: sample rate and bit depth degradation]
 
*3/29 ANALYSIS
 
**classical parameters: pitch, volume, duration, timbre
 
**psychoacoustics and recording technology shows us that all of them are more complex than a simple one-dimensional measurement
 
**psychoacoustics of virtual pitch, loudness curves, timbral envelope
 
**time domain and frequency domain approaches to analyzing signals
 
**time domain approach to volume (and by extension, duration) tracking with keeping average of last N samples
 
**FFTs are fun with lots of math: N samples turns to N/2 pairs of cartesian coordinates describing a phasor rotating in a complex plane
 
**UAna objects for analysis in Chuck: FFT, Centroid, SpectralRMS, etc.
 
**upchuck(), UAnaBlob, blob.fval(i)
 
 
**class code
 
**class code
***[http://music.columbia.edu/~daniglesia/plork2011/class7code/class7_volumetracking.ck time domain volume tracking]
+
***[http://music.columbia.edu/~daniglesia/plork2013/class5/customclass.ck custom class]
***[http://music.columbia.edu/~daniglesia/plork2011/class7code/class7_volumetrackingduration.ck time domain volume tracking, with threshold for duration]
+
**we didn't get to LiSa, but quick example for the curious
***[http://music.columbia.edu/~daniglesia/plork2011/class7code/class7_fft.ck FFT bin values]
+
***[http://music.columbia.edu/~daniglesia/plork2013/class5/lisatest.ck LiSa demo]  
***[http://music.columbia.edu/~daniglesia/plork2011/class7code/class7_fftcentroid.ck FFT=^Centroid]
+
* 3/12 MIDTERM PERFORMANCES!
*4/6 Networking
+
* 3/19: SPRING BREAK!
**MIDI, OSC
+
*3/26 OSC messages & networking
 
**custom addressing and values
 
**custom addressing and values
**network routing, multicasting vs direct connect, ports
+
**network routing, multicasting vs direct connect, ports, between applications
 
**code
 
**code
***[http://music.columbia.edu/~daniglesia/plork2011/class8code/class8notes_multiclient.ck multicasting client] (use with either chuck multicast server OR max multicast UI server)
+
***[http://music.columbia.edu/~daniglesia/plork2013/class6/oscSender1.ck simple send]
***[http://music.columbia.edu/~daniglesia/plork2011/class8code/class8notes_directclient.ck direct connect client] (use with chuck direct server AND max direct UI )
+
***[http://music.columbia.edu/~daniglesia/plork2013/class6/oscRecv1.ck simple receive]
***[http://music.columbia.edu/~daniglesia/plork2011/class8code/class8notes_multiserver.ck multicasting server]  
+
***[http://music.columbia.edu/~daniglesia/plork2013/class6/oscSender2.ck multi-param send]
***[http://music.columbia.edu/~daniglesia/plork2011/class8code/class8notes_directserver.ck direct client]  
+
***[http://music.columbia.edu/~daniglesia/plork2013/class6/oscRecv2.ck multi-param receive]
***[http://music.columbia.edu/~daniglesia/plork2011/class8code/class8notes_paramcontrol_multi.maxpat max multicast UI server]
+
***[http://music.columbia.edu/~daniglesia/plork2013/class6/pdinterface.pd PD interface to control oscRecv2 ]
***[http://music.columbia.edu/~daniglesia/plork2011/class8code/class8notes_paramcontrol_direct.maxpat max direct UI]
+
***[http://music.columbia.edu/~daniglesia/plork2013/class6/maxinterface.maxpat Max interface to control oscRecv2]
*4/13 User Interfaces and Video with Max
+
*4/2 lots more OSC messages & networking & GUIs
**code(if you click on them, they will show up as text in browser...you can actually copy and paste it into a max patch, or download the .maxpat file and open in max)
+
**all the many code snippets in a zip
***[http://music.columbia.edu/~daniglesia/plork2011/class9code/class9_max1.maxpat user interface doodads]  
+
***[http://music.columbia.edu/~daniglesia/plork2013/class7/class7networkingcode.zip many servers and clients and guis in a zip]
***[http://music.columbia.edu/~daniglesia/plork2011/class9code/class9_playback.maxpat basic video playback, plus fun effects]  
+
*4/16 SPECIAL GUEST VISIT from L2Ork
***[http://music.columbia.edu/~daniglesia/plork2011/class9code/class9_maxvidsynth.maxpat video synth: epilepsy maker]  
+
*4/30 : analysis, pitch tracker, vocoder, custom processing
***[http://music.columbia.edu/~daniglesia/plork2011/class9code/class9_openGL.maxpat messy openGL patch, see tutorials for better intro]
+
***[http://music.columbia.edu/~daniglesia/plork2013/class12/class12RMS.ck get volume]
 +
***[http://music.columbia.edu/~daniglesia/plork2013/class12/class12pitch.ck pitch tracking]
 +
***[http://music.columbia.edu/~daniglesia/plork2013/class12/class12pitch2.ck pitch tracking take 2]
 +
***[http://music.columbia.edu/~daniglesia/plork2013/class12/class12vocod.ck vocoder]
 +
***[http://music.columbia.edu/~daniglesia/plork2013/class12/class12distort.ck distortion via sample loop]
 +
 
 +
*Friday 5/18, late afternoon/early evening: final project presentations.
  
 
=== Assignments ===
 
=== Assignments ===
 
Please submit Assignments in Blackboard unless the instructions say otherwise.  
 
Please submit Assignments in Blackboard unless the instructions say otherwise.  
  
* Assignment 1: due 2/8/10
+
* Assignment 1: due 2/11/13
 
** [http://music.columbia.edu/~daniglesia/plork2011/assig1.pdf download]
 
** [http://music.columbia.edu/~daniglesia/plork2011/assig1.pdf download]
 
** Frere Jacques skeleton is [http://music.columbia.edu/~daniglesia/plork2011/frere_skeleton1.ck here]
 
** Frere Jacques skeleton is [http://music.columbia.edu/~daniglesia/plork2011/frere_skeleton1.ck here]
* Assignment 2: due 2/15/10
+
* Assignment 2: due 2/18/13
** [http://music.columbia.edu/~daniglesia/plork2011/assig2.pdf download]
+
** [http://music.columbia.edu/~daniglesia/plork2013/assig2.pdf download]
* Assignment 3: due 2/23/10
+
* Assignment 3: due 2/26/13
** [http://music.columbia.edu/~daniglesia/plork2011/assig3.pdf download]
+
** [http://music.columbia.edu/~daniglesia/plork2013/assig3.pdf download]
* Assignment 4 - MIDTERM: due 3/8 (to be presented in class 3/9)
+
* Assignment 4 (midterm): due 3/11/13
** [http://music.columbia.edu/~daniglesia/plork2011/assig4midterm.pdf download]
+
** [http://music.columbia.edu/~daniglesia/plork2013/assig4.pdf download]
* Assignment 5 due 3/29
+
* Assignment 5 : due 4/8/13
** [http://music.columbia.edu/~daniglesia/plork2011/assig5.pdf download]
+
** [http://music.columbia.edu/~daniglesia/plork2013/assig5.pdf download]
* Assignment 6 due 4/05
+
* Assignment 6 : due 4/22/13
** [http://music.columbia.edu/~daniglesia/plork2011/assig6.pdf download]
+
** [http://music.columbia.edu/~daniglesia/plork2013/assig6.pdf download]
* Assignment 7 -  due 4/19
 
** [http://music.columbia.edu/~daniglesia/plork2011/assig7.pdf download]
 

Latest revision as of 18:28, 1 May 2013

General Information

Welcome to COS/MUS 314 for Spring 2013. 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
  • Konrad Kaczmarek, graduate student, 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

In an astounding break from previous semesters, we will _not_ be doing the initial plork computer setup. We hope that all pieces will instead be double-clickable standalone applications. It is a big hope. We'll see how it goes, this may change!

Schedule

Classes

Precepts WILL be held the first week of class!!

  • Precepts (actually the real lecture) on TUESDAYS from 7:30-9:20pm, Woolworth 106 (for 314) and Studio B (second floor, for 316)
  • WEDNESDAY rehearsal from 1:30-4:20pm, McAlpin and other rooms in Woolworth, when we break into smaller groups.

Important Dates

  • Class begins: February 5
  • Spring break: Week of March 18
  • April 24rd: dress rehearsal and performance in Taplin Auditorium
  • May 18: final project presentations (public event)

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. (daniel.iglesia AT gmail )will be in Princeton on Tuesdays and WEdnesdays. Office hours will be before/after class by request/appointment.
  • Jeff: (josnyder AT princeton ) TBA
  • Konrad: (kkaczmar AT princeton) TBA

Tentative precept schedule

There is a lot of new stuff coming into PLOrk practice this year (pieces! LANdini! MobMuPlat! all-standalones!) and so this is very subject to change

  • Friday 5/18, late afternoon/early evening: final project presentations.

Assignments

Please submit Assignments in Blackboard unless the instructions say otherwise.