Differences

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

Link to this comparison view

dev:program_changes [2015/01/10 18:31]
tedfelix
dev:program_changes [2018/02/07 17:07]
Line 1: Line 1:
-====== Program Changes ====== 
- 
-Some ideas for new Program Change features. 
- 
-See [[https://​sourceforge.net/​p/​rosegarden/​feature-requests/​455/​|Feature Request 455]]. 
- 
-===== "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 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 |}} 
- 
-//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 
-  2. Author 
-  3. Author email 
- 
-{{ :​dev:​pc-bank-editor.png?​500 |click for larger version}} 
- 
-Program Change Mode would be a combobox providing the following options: 
- 
-  1. All Numbers (the default?) 
-  2. Bank Selects and Program Changes (the usual) 
-  3. Variations by LSB 
-  4. Variations by MSB 
- 
-#1 is the new All Numbers mode.  It could be the default when creating a new device. ​ This would give the user full control at first. ​ Then they can switch to mode #2 (or import a device) and reduce the amount of control as they wish. 
- 
-#2 is the original banks and program changes mode.  This is another candidate for the default as it will be most familiar to veteran users. 
- 
-#3 is the "Show Variation list based on LSB" option that was on the various non-device pages in this editor. ​ That checkbox and combobox can be removed once this is in place. 
- 
-#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 ===== 
- 
-Once the above is in place, we could add a checkbox (on the device page) that would hide/show the bank/​program checkboxes on the MIPP: 
- 
-  Program Change Mode            [Bank Selects and Program Changes ​ v] 
-  Show Bank/​Program Checkboxes ​  [X] 
-  Author ​                        ​[ ​                                  ] 
-  Author email                   ​[ ​                                  ] 
- 
-This would simplify the MIPP for synths that have no need for disabling Bank Selects and Program Changes. 
- 
-  Bank    [Variation 1            v] 
-  Program [1. Wide Acoustic Grand v] 
- 
-===== Program Changes Only ===== 
- 
-We could also add a "​Program Changes Only" mode for older synths that can't handle Bank Selects. ​ This would get rid of the Bank line on the MIPP: 
- 
-  Percussion ​                [ ] 
-  Program ​   [1. Voice 1      v] 
-  Channel ​   [Fixed ​          v] 
- 
-===== 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 widget: 
- 
-  Name           ​Category ​ MSB  LSB  Program Change 
-  Grand Piano 1  Piano      0   ​122 ​      1 
-  Grand Piano 2  Piano      0   ​112 ​      1 
-  E. Piano 1     ​Piano ​     0   ​122 ​      6 
-  E. Piano 2     ​Piano ​     0   ​123 ​      6 
-  E. Piano 3     ​Piano ​     0   ​122 ​      5 
-  E. Piano 4     ​Piano ​     0   ​123 ​      5 
-  Jazz Organ     ​Organ ​     0   ​122 ​     17 
-  Pipe Organ     ​Organ ​     0   ​123 ​     20 
-  Rock Organ     ​Organ ​     0   ​122 ​     19 
-  Vibraphone ​    ​Misc ​      ​0 ​  ​122 ​     12 
-  Strings ​       Misc       ​0 ​  ​122 ​     49 
-  Harpsichord ​   Misc       ​0 ​  ​122 ​      7 
-  Wood Bass      Bass       ​0 ​  ​122 ​     33 
-  E. Bass        Bass       ​0 ​  ​122 ​     34 
- 
-That would then be transformed on the MIPP into a category combobox for selecting one of the categories, and a Program combobox for selecting one of the programs within that category. ​ This allows arbitrary reorganization of programs by the device file author. 
- 
-  Category ​ [Piano ​         v] 
-  Program ​  ​[Grand Piano 2  v] 
- 
-For a synth as simple as the above (Yamaha P-105) one could leave the Category column empty and then only the Program line would appear with all 14 programs. 
- 
-//Note: The microKORG device file uses the fact that the microKORG ignores bank selects to organize its patches into categories.//​ 
  
 
 
dev/program_changes.txt ยท Last modified: 2018/02/07 17:07 (external edit)
Recent changes RSS feed Creative Commons License Valid XHTML 1.0 Valid CSS Driven by DokuWiki