This is an old revision of the document!


TrackButtons Notification Project

Goal

To implement a consistent notification mechanism whereby Boundary (User Interface) objects make changes directly to Entity (Document) objects and use a notification (Observer) mechanism within the Entities to inform the rest of the system of changes.

Secondary Goal

To remove the call to TrackButtons::slotUpdateTracks() in TrackEditor::paintEvent(). At one point, this resulted in a substantial performance improvement when recording MIDI. However, this is no longer the case. So we are now pursuing this goal in the interests of code quality. We'll get back to MIDI record performance once this project is complete.

Scope

This project is limited to those areas of the system touched by TrackButtons.

Test Plans

TrackButtons Test Plan

  1. Add a track.
  2. Delete a track.
  3. Rename a track.
  4. Run the Mute Test Plan
  5. Run the TrackLabel Test Plan
  6. Arm/disarm tracks for record. Click on LED. Use “R” key.
  7. Move track up/down. Menu. Keyboard: Shift-Up/Down.
    • fails with m_trackButtons→slotUpdateTracks() call in TrackEditor::paintEvent() removed
  8. Select next track via menu and down arrow.
  9. Select previous track via menu and up arrow.
  10. Contemporaneous segments on a track.
    • fails with m_trackButtons→slotUpdateTracks() call in TrackEditor::paintEvent() removed
  11. Right click and switch from MIDI to audio to synth plugin. The record LED color will change. Yellow for MIDI, red for audio, and orange for synth.
  12. ??? more…

TrackLabel Test Plan

  1. Track Names
    1. Make sure View > Show Track Labels is checked
    2. Load a sequence
    3. Note that the track names are displayed
    4. Double-click on a track name
    5. Change it
    6. Note that the change takes
  2. Instrument Program Change Names
    1. Make sure View > Show Track Labels is unchecked
    2. Load a sequence (if one isn't loaded already)
    3. Note that the instrument names (e.g. Flute) are displayed
    4. Select a track
    5. Change the program in the Instrument Parameters box
    6. Note that the change takes
  3. Instrument Presentation Name
    1. Make sure View > Show Track Labels is unchecked
    2. Load a sequence (if one isn't loaded already)
    3. Note that the instrument program change names (e.g. Flute) are displayed
    4. Select a track
    5. Uncheck the Program checkbox in the Instrument Parameters box
    6. Note that the track label now shows the “Presentation Name” (“General MIDI Device #1”)
    7. Check the Program checkbox.
    8. Note that the track label now shows the program change name.
  4. Context Menu and Instrument Presentation Name
    1. Make sure View > Show Track Labels is checked
    2. Right-click on a track label
    3. Note that the label changes to the “Presentation Name” (“General MIDI Device #1”)
    4. Dismiss the context menu and the original label returns
    5. Make sure View > Show Track Labels is unchecked
    6. Right-click on a track label
    7. Note that the label changes to the “Presentation Name” (“General MIDI Device #1”)
    8. Dismiss the context menu and the original label returns
  5. Context menu
    1. Make sure View > Show Track Labels is checked (probably not important)
    2. Right-click on a track label
    3. Change to “General MIDI Device #2” or something different.
    4. Right-click on the same track label and note that it shows “General MIDI Device #2”
    5. Repeat the above with the other kinds of devices: audio and synth plug-ins.
    6. Note that since audio tracks and synth plug-in tracks have no program change name, the presentation name is displayed. (“Audio #1” or “Synth plugin #1”)
  6. Edit Banks
    1. Make sure View > Show Track Labels is unchecked
    2. Studio > Manage MIDI Devices > Banks…
    3. Import
    4. Import the Casio MT-540 bank.
    5. Complete the various dialogs and close them to get back to the tracks.
    6. Note that the track labels are all now “Piano” (except for #10)
    7. Right-click to make sure the Presentation Name is “Casio MT-540 #1”.
  7. Remap Instruments
    1. Tracks > Remap Instruments…
    2. Click Ok.
    3. Make sure track labels haven't been clobbered.

Mute Test Plan

  1. Mute button on the track.
    • With a sequence running, mute and unmute the track and make sure the MIDI events stop and restart.
  2. “U” hotkey
  3. Menu: Tracks > Mute or Unmute Track
  4. Mute/Unmute All via toolbar
  5. Mute/Unmute All via menu
  6. LIRC and Tranzport
    • LircCommander::trackMute()
    • TranzportClient::trackMute()
 
 
dev/tnp.1330139474.txt.gz · Last modified: 2022/05/06 16:07 (external edit)
Recent changes RSS feed Creative Commons License Valid XHTML 1.0 Valid CSS Driven by DokuWiki