Digital Music Programming II: Homework 2




The sad object

Your assignment, should you choose to pass the class, is to create a Max object which outputs sad music.

The object has two inlets: the first inlet is for the MIDI key number information, and the second inlet is for the velocity that goes with the key. There are also two outlets: the first is for the output key numbers, and the second outlet is for the velocities that go with the key number. Here is the graphical object specification:

The sad object will convert notes in the C major scale into notes in the C-minor scale (harmonic minor). For example, if the performer plays an E note, then the sad object will output an E=flat note instead of an E note. This also holds for the key A. Other notes not in the C major scale will be unaffected. For example, C-sharp will remain C-sharp.

Here is an example of how the object will filter notes in the C major scale and convert them to C minor:

Input melody:

Output melody:

Additional requirements:

  1. The note translation must occur in all octaves.
  2. Output note durations must be the same as input note durations.
  3. No stuck note-ons should be generated by the object.



Extra Credit

  1. Write a Max object called happy which converts C-minor scale degrees into C-major scale degrees. (See Andre Previn's 1991 memoir No Minor Chords: My Days in Hollywood.)

  2. Write a Max object called mood which converts C-minor scale degrees into C-major scale degrees or vice-versa depending on two messages:
    1. a "happy" message which makes the object translate C-minor scale degrees into C-major scale degrees.
    2. a "sad" message which makes the object translate C-major scale degrees into C-minor scale degrees.

  3. Add another inlet into your object(s) which accepts the pitch class of the tonic note (for example 0 = C major/minor, 1 = C# major/minor, ... 7 = G major/minor, etc.). You could also have it input any MIDI note, and then you can extract the pitch-class and remove the octave information. Test your transposing object by inputting a key analysis from the key object.

  4. Write an object called rescale which can map other scales onto the C major scale, or any other pitch-class mapping you want to do. Here are some scales to try:
    • Dorian scale: C D E-flat F G A B-flat
    • Phrygian scale: C D-flat E-flat F G A-flat B-flat
    • Lydian scale: C D E F-sharp G A B
    • Lydian Minor scale: C D E F-sharp G A-flat B-flat
    • Mixolydian scale: C D E F G A B-flat
    • Aeolian (Natural Minor) scale: C D E-flat F G A-flat B-flat
    • Ethiopian scale: C D E-flat F G A-flat B
    • Arabian (Major Locrian) scale: C D E F G-flat A-flat B-flat
    • Blues scale: C E-flat F F-sharp G B-flat
    • Spanish Gypsy (Spanish, Jewish) scale: C D-flat E F G A-flat B-flat
    • Double Harmonic (Gypsy, Byzantine) scale: C D-flat E F G A-flat B
    • Hungarian Minor (Algerian) scale: C D E-flat F-sharp G A-flat B
    • Hungarian Gypsy (Gypsy) scale: C D E-flat F-sharp G A-flat B-flat
    • Hungarian Major scale: C D-sharp E F-sharp G A B-flat
    • Persian scale: C D-flat E F G-flat A-flat B
    • Balinese scale: C D-flat E-flat G A-flat
    • Bebop scale: C D E F G A B-flat B
    • Egyptian scale: C D F G B-flat
    • Oriental scale: C D-flat E F G-flat A B-flat
    • Chinese (Mongolian, Country Pentatonic) scale: C D E G A
    • Hira scale: C D-flat F G A-flat
    • Kumoi scale: C D E-flat G A-flat
    • Iwato scale: C D-flat F G-flat B-flat
    • Kokin scale: C D-flat F G B-flat
    • Prometheus scale: C D E F-sharp B-flat
    See Scaleopia for other scales.

  5. Write a sad object which converts C-major into the C melodic minor.

  6. Write an object named bipolar which will play happy music when the attack velocities are loud, and will play sad music when the attack velocities are soft.
    The Quigmans, 23 May 2003
    Mother Goose and Grimm, 29 July 2003