Musical Timbrescapes/Generative Clouds

joel | Uncategorized | Thursday, February 26th, 2009

HW 1 Part 1 - Timbres

My moving timbres are based on static timbres, so I’ve kept them in the same file. (You can look in this directory if you want to see the original files.)

  • fmfm.ck
    Low pass filtered cascade of three oscillators (sin->tri->tri) so that the tones purity (spectral width) is changes slowly with time.
    The “static” version leaves out the pitch_control() and formant_control() functions which use the autonomous update every 50msec.
  • breathy.ck
    Noise => Array of four hi-Q BPF => ADSR
    Pitch control changes the center frequency of the BPF filters in a harmonic ratio that tracks a target harmonic frequency with some wobble.
    Note-on randomizes the starting position to create a big transient.
  • tone.ck
    A pair of triosc pumped into a ADSR.
    The frequency of the triOsc is very close so you get some nice rich beating effects.

HW 1 Part 2 - Computer Music of Changes

I spent a great deal of time trying to get automatic generation of songs using generative grammars. This directory contains a Makefile that you need. Here are the basic concepts:

  • Voice.ck - a general wrapper class to make many stk instruments and the timbres generated
  • Band.ck - a collection of voices with shared reverb, mix and pan controls
  • Measure.ck and Feel.ck - a way of generating random measures of notes based on abstract parameters like note density, syncopation
  • Progression.ck - a collection of measures with different progressions
  • Verse.ck - a collection of random progressions
  • Song.ck - a collection of random verses

The verses can be quite different, but many sound quite alien. Here are a few examples:

HW 2 - Generative Clouds

I really think of HW2 as an extension of my efforts in HW1, with the introduction of a live element.

See the files in the hwk directory

I can provide a zip file on request.

The basic change in hwk 2 is the introduction of a video controller based on some code I got from Visda. The processing code is in the cameraone/ directory.

To run the program:

  • Start processing and run the cameraone sketch. You should see a small camera window pop up with a line chart showing the total motion in the scene.
  • Start chuck by typing “make”. This will generate a random song. Progress through the song will be driven by “beats” which correspond to peaks in the camera motion.

On my PC the sampling rate of the camera is about 10-20Hz, so timing accuracy is not great. You do definitely get a feeling of driving the music though, so I think I now have the kernel of a decent idea. For example:

hw2.wav

For the final project I want to try the following extensions:

  • Right now the tones are selected against a randomly generated scale with a limited concept of a “chord” in that random scale. Refine this so we alternate between random scales and more familiar scales and progressions.
  • Add the following camera inputs:
    • Have the music keep driving more like a PLL than a simple trigger
    • Total motion maps to measure note density or intensity
    • Map colors to chords or tones
    • Simple blob tracking for melody
| Log in | Powered by WordPress | Theme by Roy Tanck