Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
dev:program_changes [2014/11/22 16:48]
tedfelix Add link to feature request.
dev:program_changes [2022/05/06 16:07] (current)
Line 3: Line 3:
 Some ideas for new Program Change features. Some ideas for new Program Change features.
  
-See [[https://sourceforge.net/p/rosegarden/feature-requests/455/|Feature Request 455]].+  * [[https://sourceforge.net/p/rosegarden/feature-requests/60/|Feature #60: Categorized programs]] 
 +  * [[https://sourceforge.net/p/rosegarden/feature-requests/455/|Feature #455: Program Change Ideas]]
  
 ===== "All Numbers" Mode ===== ===== "All Numbers" Mode =====
  
-All Numbers mode will give the user full control over the banks and program changes sent for a track.  The MIDI Instrument Parameter Panel within the Instrument Parameters box (MIPP) will provide edit boxes for bank select msb, lsb, and program change.  Checkboxes will also be provided to turn on/off the sending of bank selects and program changes.+All Numbers mode will give the user full control over the banks and program changes sent for a track.  The MIDI Instrument Parameter Panel within the Instrument Parameters box (MIPP) will provide widgets for changing bank select msb, lsb, and program change.  Checkboxes will also be provided to turn on/off the sending of bank selects and program changes.
  
 {{ :dev:pc-mipp-all-numbers.png |}} {{ :dev:pc-mipp-all-numbers.png |}}
  
-To get to this mode, we'll need to modify the bank editor ("Manage MIDI Banks and Programs" window).  One approach would be to add a "device page" When the user selects a device in the tree on the left, the page on the right will show device-level information, such as:+//Note: There are at least three main ways we can implement the bank select and program change widgets.  The first would be as label widgets (QLabel/Label) that can be clicked to edit.  That's the approach used for the Segment Label in the SegmentParameterBox.  Second would be to use comboboxes with a complete list of values from 0 to 127 (1 to 128 for program changes).  This would be similar to the approach normally used for banks and programs in the MIPP.  The last would be to use edit boxes (QLineEdit/LineEdit) to allow the user to make modifications directly.  This last approach is not used anywhere in the main window, so it makes me wonder if there is a reason.  Perhaps it would interfere with keyboard shortcuts like Enter?  But Enter is already interfered with whenever a widget has focus.  It would be nice to have some insight as to why LineEdit is not used on the main window.// 
 + 
 +To get to "All Numbers" mode, we'll need to modify the bank editor ("Manage MIDI Banks and Programs" window).  One approach would be to add a "device page" When the user selects a device in the tree on the left, the page on the right will show device-level information, such as:
  
   1. Program Change Mode   1. Program Change Mode
Line 33: Line 36:
  
 #4 is the "Show Variation list based on MSB" option that was on the various non-device pages in this editor.  See #3. #4 is the "Show Variation list based on MSB" option that was on the various non-device pages in this editor.  See #3.
 +
 +//Implementation Thoughts: This sure smacks of polymorphism.  Too bad I hate polymorphism.  It's really hard to read.  The main advantage would be the untangling of the variations code from all the rest.  Variations mode is an evil beast.  If we could pull a MIPPVariations out of MIDIInstrumentParameterPanel, that would actually increase readability significantly.  Put some thought into pulling the Bank/Program/Variation widgets out of MIPP and into separate classes for each mode (maybe MIPPBankProgram, MIPPVariations, and MIPPAllNumbers).//
  
 ===== Hiding the Checkboxes ===== ===== Hiding the Checkboxes =====
Line 58: Line 63:
 ===== Program Organization ===== ===== Program Organization =====
  
-Farther into the future, it might be a good idea to provide some more options for organizing program changes in a more user-friendly manner.  Banks aren't necessarily organized logically.  We might want to offer the ability to organize program changes arbitrarily.  Perhaps something like a grid control:+Farther into the future, it might be a good idea to provide some more options for organizing program changes in a more user-friendly manner.  Banks aren't necessarily organized logically.  We might want to offer the ability to organize program changes arbitrarily.  Perhaps something like a grid widget:
  
   Name           Category  MSB  LSB  Program Change   Name           Category  MSB  LSB  Program Change
 
 
dev/program_changes.1416674890.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