Assignment 8
Home Up Assignment 1 Assignment 2 Assignment 3 Assignment 4 Assignment 5 Assignment 6 Assignment 7 Assignment 8

 

Midi and the Graphical Music Interface

Due: Wed Nov 19 at noon.

Read Chapters 13, 14, and 15 in HSOM.

Create one UI for each of the following.  Each UI should have Midi Output Device selection (see Section 15.3.3. in HSOM), and furthermore:

  1. Provide two pushbuttons, one labeled "Up", the other "Down", such that pressing the up button will increment a note and play it, and pressing the down button will decrement the note and play it.  You can start with any note that you like.  Be sure to test for "underflow" (going below 0) and "overflow" (going above 127).
  2. Modify (1) so that it also has two windows, one labeled "PitchClass" and the other labeled "Octave" that display the current pitchclass and octave, respectively.
  3. Provide a set of 13 radio buttons, labeled C, Cs, D, ..., C to represent, essentially, a one-octave keyboard.  Also provide an integral slider labeled "Octave" whose range is 0 to 10.  Finally, provide a single pushbutton that will play the selected note once.
  4. Modify (3) so that there is checkbox labeled "Pedal".  If it is checked, then every time the "Play" button is pressed, the note is "held".  So by selecting several different notes and pressing "Play" each time, a chord will be heard.  When the checkbox is de-selected, all the note should turn off.  If the "Play" button is pressed when the checkbox is off, the behavior should be the same as (3).
  5. Modify the "echo" example from Haskore/src/Haskore/UI/GMIExamples.lhs so that instead of taking Midi keyboard input, the program takes its input from the radio buttons defined in (3) above.
  6. Try to make some progress on your Final Project!

Graduate students taking CPSC 531 must additionally do the following problem:

  1. TBD