VisiChord Chord Visualizer
Software Requirements Specification

Adrian Mettler, Gabriel Neer, Erika Rice, Jeff Scherpelz

1   General product description

The chord visualizer will be used to demonstrate chords in a music class. It will be formatted so that it will display nicely if an LCD projector is used. Chords can be input from a mouse, keyboard, file or via a MIDI device. Once entered, there will be various manipulations that can be done on the chords.

2   Appearance

  1. A title bar will be at the top of the display if entered.
    1. The title is input by clicking in the appropriate text box and typing it in.
  2. The chords will be displayed on a musical staff.
    1. The staff will have treble and bass clefs.
    2. At least four chords can be displayed in the staff at once. Actual number will depend on resolution.
    3. The user will be able to scroll to select different chords.
    4. Notes on the staff will be whole notes.
    5. A highlighted box will indicate the currently selected chord.
    6. The user can configure whether notes of intermediate value will be displayed on the treble or bass clef.
  3. Above each chord will be a chord title if one is input.
    1. The title is input by clicking in the respective text box and typing it in.
  4. The currently selected chord will be displayed on a piano display.
    1. Piano keys involved in the chord will be indicated by a contrasting dot on the key.

3   Slot insertion

  1. Inserted slots are added to the right of the currently selected slot. Chords following the currently selected slot all move to the right.
  2. Slots can be inserted via the mouse
    1. User clicks on a button to insert a slot.
  3. Slots can be inserted via the tty keyboard
    1. User presses a key or combination of keys to insert a slot.
  4. Slots can be inserted via the MIDI keyboard
    1. User presses a predetermined key on the MIDI keyboard to insert a slot.

4   Chord editing

  1. Chords can be edited via the mouse.
    1. The user can click on the staff to add or modify notes.
      1. The note will be added if it is not present.
      2. The note will be removed if it is present.
      3. Flats and sharps will be indicated by the use of modifier keys.
    2. The user can click on the piano display to add or modify notes.
      1. A note will be added if the key clicked is not highlighted.
      2. A note will be removed if the key clicked is highlighted.
  2. Chords can be edited via the tty keyboard.
    1. User will click in the chord input box to indicate that they want to add notes to a chord.
    2. Notes are input using standard designation.
    3. Flats are indicated by `b' and sharps as `#', e.g. C#5.
    4. The end of the input will be indicated by the user hitting enter.
    5. Input is cancelled by deleting all of the text or hitting escape.
  3. Chords can be edited via a MIDI keyboard.
    1. A chord starts when a key is pressed on the keyboard.
    2. The chord is finished when all keys have been released.
    3. All keys pressed between when the first key is pressed and the last one released are added to the chord.
    4. Newly entered chords are added to the right end of the chord list if the current chord is not empty.

5   Chord clearing and deletion

  1. There will be a way to clear a chord with the mouse and the keyboard.
  2. There will be a way to delete a chord with the mouse and the keyboard.
  3. There will be a way to clear all chords with the mouse and the keyboard.
  4. The user will be able to undo one (possibly more) chord deletions by use of an Undelete option.
  5. The user will be able to paste the most recently cleared or deleted chord into the currently selected slot. If the slot pasted into is not empty, the previous contents of the slot are considered cleared and are thus placed onto the clipboard.

6   File interactions

  1. Chords can be entered via a text file.
    1. The first line of the file must be the title that appears at the top of the display.
    2. Chords are sequences of notes in standard designation that are grouped within parentheses.
      1. The chord title may optionally appear before the opening parenthesis.
  2. Chords can be saved to a file to be loaded later.

7   Other general requirements

  1. Chords can be transposed.
  2. There will be an option to play back a chord when selecting it.
  3. Help
    1. Installation guide will be available.
    2. A manual will be provided.

8   Non-functional requirements

  1. Display will be convenient for projection onto a LCD screen.
  2. Will be written to work under Windows or Macintosh.

This document was translated from LATEX by HEVEA.