| |
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:
- 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).
- 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.
- 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.
- 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).
- 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.
- Try to make some progress on your Final Project!
Graduate students taking CPSC 531 must additionally do the following problem:
- TBD
|