Digital Music Programming II: Lab Resources




Programming Warm-Up: C++ command-line programs
    1. noise1 -- Creating whitenoise soundfiles.
    2. noise -- Command-line input/output options for the noise1 program.
    3. oscillator -- Making an oscillator program.
    4. biquad -- Implementing a biquad filter to process soundfiles on the command-line.
Writing Max Objects
    Basic Input and Output:
    1. How to make a CodeWarrior project and compile a Max/MSP object.
    2. bang -- Understanding primary components of a Max object.
    3. intin -- How to create multiple integer inputs.
    4. mydiff -- Example subtraction object.

    MIDI note filtering/generating:

    1. flip -- flip the key number and velocity values in a note message.
    2. voice -- monophonic voice manager.
    3. mirror -- mirror pitches.
    4. henon -- Fractal melody generator.
    5. sad -- convert music in a major key into parallel minor mode.
    6. markov1 -- First-order Markov chains.
    7. settheory -- Real-time set theory calculator (How to output lists).

    Timing:

    1. gettime -- How to keep track of time.
    2. duration -- How to measure the duration of notes.
    3. squelch -- Remove feedback notes from a Kawai PianoDisc MIDI piano.
    4. unsquelch -- Add feedback notes to simulate the behavior of a Kawai PianoDisc MIDI piano.
    5. key -- Key identification program.
    6. localtime -- How to create multiple outputs.

    Event Scheduling:

    1. floatmetro -- How to schedule events in the future.
    2. polymetro -- Polyrhythmic metronome which demonstrates multiple clocks being run at the same time.
    3. mymakenote -- How to schedule note events in the future.
    4. echo -- generate a repeated note echo.
    5. polyecho -- Polyphonic echo object.

Writing MSP Objects

    Basic Input and Output:

    1. How to make a CodeWarrior project and compile a Max/MSP object.
    2. thru -- getting MSP signals in and out of your object.
    3. thrustereo -- getting multiple MSP signals in and out of your object.

    Sound Generation

    1. whitenoise -- whitenoise signal generator.
    2. osc -- high-quality sinewave generator which does not use a wavetable (like cycle~).

    Linear Filters:

    1. average -- averaging filter.
    2. feedback -- basic one-pole filter.
    3. midismooth -- Scale 7-bit MIDI data into a new range and smooth the input data into a continuous function.
    4. dcblock -- remove DC signals from data.
    5. reson -- simple two-pole resonating filter.
    6. mybiquad -- generic two-pole, two-zero resonating filter.
    7. allpass -- filters which do not change the amplitude of sounding being filtered, but can delay different frequencies by different amounts.
    8. mycomb -- a comb filter.
    9. myflange -- a flange filter.

    Other Audio Objects:

    1. kola -- a windowed looping buffer.

    Physical Modeling:

    1. mydelayline -- a delayline.
    2. digitar -- recursive averaging filter model for a string.

    Sound Analysis

    1. sndpower -- analyze the power of sound flowing into the object.
    2. hps -- harmonic product spectrum for monophonic pitch tracking in the input signal.

Basic Stamp Microcontroller Programs

    1. cout -- send a MIDI note output from the basic stamp.
    2. switch1 -- user the basic stamp to send one on/off switch state though a MIDI cable.
    3. switch15 -- user the basic stamp to send 15 on/off switch states though a MIDI cable.
    4. Foot Pedal Machine -- SMPTE Time MachineTM recycled into a foot pedal controller based on the program from the switch15 lab.
    5. rcfsr -- Using an RC-timing circuit to measure the resistance of a Force Sensing Resistor.
    6. adflex -- measure a flex sensor's resistance with an A/D converting chip and send the data out with a MIDI message.
    7. flex8 -- send eight flex sensor's data over a MIDI cable using a continuous controller messages.
    8. 440 -- composition created using flex8 program to control audio processing in Max/MSP.

Other Lab Resources