Course Outline  

  • 97/09/04: Introduction to Digital Music Programming
  • 97/09/09-11: Max
  • 97/09/16-18: Advanced Max
  • 97/09/23-29: Introduction to Unix and Web authoring (Charles Kim)
  • 97/10/02-09: Introduction to CodeWarrior
  • 97/10/14: Midterm holiday (no class)
  • 97/10/16: Character Strings and Formatted I/O
  • 97/10/21: Operators, Expressions, and Statements
  • 97/10/23: C Control Statements: Looping, Branching and Jumps
  • 97/10/28: Character Input/Output and Redirection
  • 97/10/30: Mid-term exam (open book)
  • 97/11/04: Functions
  • 97/11/07: Arrays and Pointers
  • 97/11/11: Character Strings and String Functions
  • 97/11/13: File Input/Output
  • 97/11/18: Storage Classes and Program Development
  • 97/11/20: Structures and Other Data Forms
  • 97/11/25: Bit Fiddling
  • 97/11/27: Thanksgiving (no class)
  • 97/12/02: The C Preprocessor and the C Library
  • 97/12/04: Advanced Data Representation
  • 97/12/09-11: Writing MAX external objects
  • 97/12/16: Final exam (open book, C314, 1430-1520)

  • Assignment #12: (Due December 9)

    Repeat the last assignment except read the input from a file using fopen() and the output should be written out to another file. The filenames should be specified on the command line or use fopen_mac().

    Assignment #11: (Due December 2)

    Write a program that accepts any number of notes in pitch-octave notation, e.g., a4, gs5, df3, from stdin then prints out, in ascending order of pitches, the original name, their pitch in frequency, MIDI number, and its pitch class (0-11). Do not use malloc().
    The output should look like:

            df3   300  49  1
            a4    440  69  9
            gs5   850  80  8

    Assignment #10: (Due November 20)

    Modify the program in #7 so that the user can rotate the matrix.

    NB: you should not use ccommand()

    Assignment #9: (Due November 14)

    Write a word count program. Input should be any ASCII text file. It should output number of lines, number of words, and average number of letters in a word. Do not include punctuations, quote marks, parenthesis, etc. when calculating the average. Use redirection for the input.

    Assignment #8: (Due November 6)

    Modify the tone row program in #7, so that the program will take a file input and produce file output using redirection. The program should be able to process any number of rows contained in the file (one row per line), resulting in multiple matrices in the output file.

    Assignment #7: (Due October 28)

    1. Write a program that accepts an integer as input and then displays all the prime numbers smaller than or equal to that number. Make it as efficient as posible.

    2. Write a program that accepts a 12-tone row and output the row matrix. Be sure to check for correct input. Use letters A, and B, for pitch class 10, and 11, for both input and output.

    Assignment #6: (Due October 21)

    p. 117 (Waite): #1, 4; p.158: #3, 6; p.202 #3.

    Assignment #5 (Due October 9)
    Write a "Hello Ich" program for the Unix environment and for the Code Warrior environment. Submit both the source code and the binary for Unix and CW project.

    Assignment #4 (Due October 7)
    Make your own personal home page. It should have at least some graphics, pictures, and sounds.

    Assignment #3 (Due October 2, extended to October 7)
    Write a short (1-5 minutes) multimedia piece including movies, animated pictures, MIDI sequence, SND resource, and AIFF files. Use the following objects: snd, movie, pics, pict, AIFFPlayer, etc.

    Place the patch in (314):Departmental:Faculty:ich:Classes:DMP:Assignment 3. Present it in class.

    Assignment #2 (Due September 18)
    Write a small piece that include simple algorithmic composition and ability to control the outcome using one or more of the following controllers: Zeta violin, PitchRider, MalletKat, WX11, DMP7, Lexicon MRC, Vocalist. You may augmented by use of modulation wheels, mouse, foot pedal/switch, but not keyboard.

    Place the patch in (314):Departmental:Faculty:ich:Classes:DMP:Assignment 2. Present it in class.

    Assignment #1 (Due September 11)
    Study the Max Tutorials at least up to Tutorial 20. Make a patch that perform adjustable (slider) multiple harmonizer. A MIDI note-on input is accompanied by other MIDI notes on the output at different intervals.

    Place the patch in (314):Departmental:Faculty:ich:Classes:DMP:Assignment 1. Present it in class.

    Style tips

    Go to Ich's Home Page

    Go to the Peabody Home Page

    For comments or questions email. to: