Synthesis Theory


Course Outline   (spring, 1998)

  • 98/01/13-15: Writing Max External Objects
  • 98/01/20-22: Chap. 10 Basic Concepts of Signal Processing
  • 98/01/27-29: Chap. 11 Sound Spatialization and Reverberation
  • 98/02/03-05: Chap. 12 Pitch and Rhythm Recognition
  • 98/02/10-12: Audition week.
  • 98/02/17-26: Chap. 13 Spectrum Analysis (class on 2/20 instead of 2/19)
  • 98/03/03: Chap. 14 Musical Input Devices
  • 98/03/05-10: Chap. 15 PerformanceSoftware
  • 98/03/12: Mid-term exam
  • 98/03/17-19: Spring Break
  • 98/03/24: Chap. 16 Music Editors
  • 98/03/26: Chap. 17 Music Languages
  • 98/03/30: Chap. 18 Algorithmic Composition Systems
  • 98/04/02-09: Chap. 19 Representations and Strategies for Algorithmic Composition
  • 98/04/14: Chap. 20 Internals of Digital Signal Processors
  • 98/04/16: (Class canceled SEAMUS)
  • 98/04/21: Chap. 21 MIDI
  • 98/04/23: Chap. 22 System Interconnections
  • 98/04/28-30: Chap. 23 Psychoacoustics in Computer Music
  • SoundHack0.4


    Note: Please do not collaborate on assignments. Helping others is ok, but you should all work independently. 


    Assignment #8: (Due May 13)

    Implment FFT display. It should allow for different number of points and starting time (bonus: windowing and overlaps).


    Assignment #7: (Due May 5)

    Be able to save to your soundfile format based on the linked list internal data representation developed in the DMP class.


    Assignment #6: (Due Apr. 21)

    Add "Normailze" routine in SoundHack to work with any soundfile, including the MenuItem.


    Assignment #5: (Due Apr. 9)

    Write the java class for your soundfile format. Write all accessor and mutator methods that are particular to your soundfile format, as well as constructor methods. Work closely with TJ who will work on the superclass Audiofile (Soundfile?).

    As a test:
    1. "Open..." and "Save As..." your soundfile type.
    2. Internally generate one sec. of 1000Hz sin wave and save to a file in your sound file format.

    Here's a draft version of the superclass Audiofile:

    //private data
    
    int sampleRate;  // samples per second
    int channelCount; 
    int sampleSize;  // number of bits in a sample
    int dataSize;    // number of bytes in a sample
    int fileFormat;
    
    // public methods
    public int getSampleRate(){return sampleRate};
    getChanelCount(){};
    getSampleSize(){};
    getDataSize(){};
    set...
    
    readFile();
    writeFile();
    readHeader();
    writeHeader();
    readData();
    writeData();
    


    Assignment #4: (Due Mar. 31)

    1. Use Csound (pvanal) phase vocoder for  pitch shifting and time scaling. Use a sound file of 2-5 sec. as the source of processing. Submit the following:
    2. Each resultig soudfiles should be accompanied by the Csound orch file also explaining the parameters used for pvanal. 
       

    3. Create a Web page documenting the file structures of the following audio file formats:
      au (Sun)
    AIFF
    QuickTime
    NeXT/Sun
    MPEG3
    WAV
    Philho
    Stephan
    Lilit
    Eun-Hee
    TJ
    Dave


    Assignment #3: (Due Mar. 5)

    1. Implement a tempo tracker using Max. The current tempo (number of quarter notes per minute) should be displayed in the Max window periodically, say every second (bonus point for using table to display the tempo curves). You should also display the note values (quater notes, half note, eigth note, etc.) of incoming notes from either the computer keyboard taps or MIDI keyboard. You may assume duple meter so that it is easier to track tempo changes. (Hint: you'll probably want to use the timer object.) Submit the ptach in 314.
    2. Implement a FFT program in C (or JAVA). You can use Moore (83-87) or find


    Assignment #2: (Due Feb. 20)

    Implement a phaser either in SuperCollider or MSP. You may model it after Sony M7 (Algorithm 10). There should be multiple allpass filters in parallel and/or serial. LFO should be used to control the amount of delay in the allpass filter.

    Refrences:


    Assignment #1: (Due Feb. 5)

    Find the frequency (magnitude) response of the filter : y(n) = x(n) + x(n-2).
    Derive using only real numbers (cos()) then repeat the derivation using z-transform. 


    Ichiro Fujinaga 1998.04.21