Difference between revisions of "220b-winter-2010/hw3"

From CCRMA Wiki
Jump to: navigation, search
 
(10 intermediate revisions by 2 users not shown)
Line 1: Line 1:
= Homework #2: "Generative Clouds" =
+
= Homework #3: "Generative Drum Machine + Soundscape" =
  
 
<div style="text-align: left;">[[Image:OmegaNebula.jpg]]</div>
 
<div style="text-align: left;">[[Image:OmegaNebula.jpg]]</div>
Line 6: Line 6:
 
In this assignment, you are to create a '''live generative musical system''' in ChucK, defining its parameters and creating a piece of music using the system (via real-time high-level input).
 
In this assignment, you are to create a '''live generative musical system''' in ChucK, defining its parameters and creating a piece of music using the system (via real-time high-level input).
  
Due date: 2010.2.2 11:59:59pm (or thereabout), Thursday.
+
Due date: 2011.2.22 11:59:59pm (or thereabout), Tuesday.
 +
 
 +
('''NOTE: no late submissions will be accepted for this assignment''')
  
  
Line 20: Line 22:
 
What to do:
 
What to do:
 
* create a software system in ChucK that generates music "automatically" or "semi-automatically" (i.e., with limited "high-level" human interaction)
 
* create a software system in ChucK that generates music "automatically" or "semi-automatically" (i.e., with limited "high-level" human interaction)
* use some of the synthesis elements we talked about (e.g., SinOsc, TriOsc, SqrOsc, Noise, Impulse, Step, ResonZ, OnePole, OneZero, BiQuad, LPF, HPF, ADSR, etc.)
+
** a core component of this should be a '''generative drum machine'''
* (optional): use audio analysis as a control for the synthesis (e.g., using ChucK Unit Analyzers)
+
** also think about a overall '''generative soundscape''' the envelopes the drum machine
 +
* use some of the synthesis elements we talked about (e.g., SinOsc, TriOsc, SqrOsc, Noise, Impulse, Step, ResonZ, OnePole, OneZero, BiQuad, LPF, HPF, ADSR, STK instruments, Comb filters etc.)
 +
* use some of the technique we talked about (e.g., shreds, events, chance, lookup tables, Markov chains, etc.)
 +
* expose some high level parameters (e.g., density, excitement, mood, texture) and control them using input
 +
** for example: mouse, keyboard,
 +
** (optional): use audio analysis as a control for the synthesis (e.g., using ChucK Unit Analyzers)
 
* here are some example ideas (you can use, combine, extend these, or go with something else altogether)
 
* here are some example ideas (you can use, combine, extend these, or go with something else altogether)
** modeling playing style of a particular instrument, or a group of instruments ("real" and/or imagined)
+
** modeling playing style of something percussive, or a group of instruments ("real" and/or imagined)
 
** model a particular compositional style (e.g., "classic" Musique Concrete, a certain approach to minimalism)
 
** model a particular compositional style (e.g., "classic" Musique Concrete, a certain approach to minimalism)
 
** leverage or musically sonify a mathematical model or a computer algorithm
 
** leverage or musically sonify a mathematical model or a computer algorithm
 
** a system that somehow evolves over time, giving a set of starting parameters
 
** a system that somehow evolves over time, giving a set of starting parameters
 
** invent something new/crazy!
 
** invent something new/crazy!
* figure out what parameters you want to expose/export from your system, these parameters might serve as "seeds" or starting points, or guidelines/rules for your music generator to follow
 
 
* it might be helpful to design/partition your system into modules that you can exert independent control over, or that take care of different types of tasks/sounds in the system
 
* it might be helpful to design/partition your system into modules that you can exert independent control over, or that take care of different types of tasks/sounds in the system
 
* create/perform a composition using your system, paying attention to overall form, density, and texture throughout (think "sonic clouds"...)
 
* create/perform a composition using your system, paying attention to overall form, density, and texture throughout (think "sonic clouds"...)
Line 41: Line 47:
 
* [http://chuck.cs.princeton.edu/doc/program/ugen.html ChucK unit generator reference] (check out the section on STK instruments, as potential starting points for ready-to-go instruments)
 
* [http://chuck.cs.princeton.edu/doc/program/ugen.html ChucK unit generator reference] (check out the section on STK instruments, as potential starting points for ready-to-go instruments)
 
* [http://chuck.cs.princeton.edu/doc/examples/ ChucK examples]
 
* [http://chuck.cs.princeton.edu/doc/examples/ ChucK examples]
* In particular, look at the examples under "STK".  These might serve as ideas or starting points.
+
* [http://chuck.cs.princeton.edu/doc/examples/stk/shake-o-matic.ck shake-o-matic] : virtual shaker player, again a potential building block.
** [http://ccrma.stanford.edu/~ge/stuff/ck/mand-o-matic2.ck mand-o-matic2] : caffeinated virtual mandolin player (note: by itself, this example probably isn't very interesting (for example, it doesn't come from or go anywhere).  However, by figuring out the parameters, and varying those over time somehow, and/or by arranging it with other "band members", one can use this as a building block.)
+
** [http://chuck.cs.princeton.edu/doc/examples/stk/shake-o-matic.ck shake-o-matic] : virtual shaker player, again a potential building block.
+
** [http://chuck.cs.princeton.edu/doc/examples/stk/stif-o-karp.ck karp-o-matic] : virtual stif karp player.
+
** [http://chuck.cs.princeton.edu/doc/examples/stk/wurley.ck wurley] : virtual wurlitzer player.
+
  
  
Line 51: Line 53:
 
=== Deliverables ===
 
=== Deliverables ===
  
'''As usual, turn in all files by putting them in your Library/Web/220b/hw2/ directory.'''
+
'''As usual, turn in all files by putting them in your Library/Web/220b/hw3/ directory and email the link to Ge and Nick.'''
  
* 1) create a hw2/ directory, and put all the stuff below in there:
+
* 1) create a hw3/ directory, and put all the stuff below in there:
* 2) index.html should go into the hw2/ directory
+
* 2) index.html should go into the hw3/ directory
* 3) all related source/sound files (.wav/.ck)
+
* 3) all related source/sound files (.wav/.ck) '''NOTE: You must turn in a .wav file showcasing a performance on your system. '''
 
* 4) a short README text ('''readme.txt''') file that:
 
* 4) a short README text ('''readme.txt''') file that:
 
** specifies instructions on running your programs
 
** specifies instructions on running your programs
Line 61: Line 63:
 
** gives credit, if needed, for the sounds you are using
 
** gives credit, if needed, for the sounds you are using
 
** describe any difficulties you encountered in the process
 
** describe any difficulties you encountered in the process
 
+
* 5) email Ge And Nick
  
 
Have fun with it!
 
Have fun with it!

Latest revision as of 11:02, 10 February 2011

Homework #3: "Generative Drum Machine + Soundscape"

OmegaNebula.jpg


In this assignment, you are to create a live generative musical system in ChucK, defining its parameters and creating a piece of music using the system (via real-time high-level input).

Due date: 2011.2.22 11:59:59pm (or thereabout), Tuesday.

(NOTE: no late submissions will be accepted for this assignment)


Tools at your disposal

  • ChucK
  • code
  • keyboard, mouse


Specification

What to do:

  • create a software system in ChucK that generates music "automatically" or "semi-automatically" (i.e., with limited "high-level" human interaction)
    • a core component of this should be a generative drum machine
    • also think about a overall generative soundscape the envelopes the drum machine
  • use some of the synthesis elements we talked about (e.g., SinOsc, TriOsc, SqrOsc, Noise, Impulse, Step, ResonZ, OnePole, OneZero, BiQuad, LPF, HPF, ADSR, STK instruments, Comb filters etc.)
  • use some of the technique we talked about (e.g., shreds, events, chance, lookup tables, Markov chains, etc.)
  • expose some high level parameters (e.g., density, excitement, mood, texture) and control them using input
    • for example: mouse, keyboard,
    • (optional): use audio analysis as a control for the synthesis (e.g., using ChucK Unit Analyzers)
  • here are some example ideas (you can use, combine, extend these, or go with something else altogether)
    • modeling playing style of something percussive, or a group of instruments ("real" and/or imagined)
    • model a particular compositional style (e.g., "classic" Musique Concrete, a certain approach to minimalism)
    • leverage or musically sonify a mathematical model or a computer algorithm
    • a system that somehow evolves over time, giving a set of starting parameters
    • invent something new/crazy!
  • it might be helpful to design/partition your system into modules that you can exert independent control over, or that take care of different types of tasks/sounds in the system
  • create/perform a composition using your system, paying attention to overall form, density, and texture throughout (think "sonic clouds"...)


Resources

Not all of these are directly relevant, but may serve as basic building blocks...


Deliverables

As usual, turn in all files by putting them in your Library/Web/220b/hw3/ directory and email the link to Ge and Nick.

  • 1) create a hw3/ directory, and put all the stuff below in there:
  • 2) index.html should go into the hw3/ directory
  • 3) all related source/sound files (.wav/.ck) NOTE: You must turn in a .wav file showcasing a performance on your system.
  • 4) a short README text (readme.txt) file that:
    • specifies instructions on running your programs
    • describes your process/adventure, and perhaps the ideas (technical/aesthetic) behind the composition
    • gives credit, if needed, for the sounds you are using
    • describe any difficulties you encountered in the process
  • 5) email Ge And Nick

Have fun with it!