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:control_changes [2020/04/22 02:12]
tedfelix
dev:control_changes [2022/05/06 16:07] (current)
Line 1: Line 1:
 ====== Control Changes ====== ====== Control Changes ======
  
-The code that sends out control Changes in Rosegarden is pretty convoluted.  This document points out the key areas of interest.  Hopefully this will ease future maintenance.+The code that sends out Control Changes in Rosegarden is pretty convoluted.  This document points out the key areas of interest.  Hopefully this will ease future maintenance
 + 
 +Note that code related to sending out Bank Selects and Program Changes can be found along with the code related to Control Changes.  This will be pointed out below.
  
 ===== Allow Reset All Controllers (CC 121) ===== ===== Allow Reset All Controllers (CC 121) =====
Line 21: Line 23:
  
   [Sequencer_Options]   [Sequencer_Options]
-  forceChannelSetups=true+  forceChannelSetups=false
  
 When set to true, channel setups will be sent out every time play is pressed.  If outside of a Segment, the channel setups will be based on the track values in the Instrument Parameters panel (MIPP). When set to true, channel setups will be sent out every time play is pressed.  If outside of a Segment, the channel setups will be based on the track values in the Instrument Parameters panel (MIPP).
 +
 +The default for this preference is false.
  
 ===== Manage Controllers dialog ===== ===== Manage Controllers dialog =====
-  + 
 +To get there: Studio > Manage MIDI Devices > pick a playback device > Controllers... 
 The ''ControlEditorDialog'' class is the "Manage Controllers" dialog. The ''ControlEditorDialog'' class is the "Manage Controllers" dialog.
          
Line 65: Line 71:
 - RosegardenMainWindow::setDocument() - RosegardenMainWindow::setDocument()
   > RosegardenDocument::initialiseStudio()   > RosegardenDocument::initialiseStudio()
-    > Instrument::sendChannelSetup()+    > RosegardenDocument::sendChannelSetups()  (added January 2021) 
 +      > Instrument::sendChannelSetup()
 </file> </file>
  
Line 75: Line 82:
 ==== RosegardenDocument::initialiseStudio() ==== ==== RosegardenDocument::initialiseStudio() ====
  
 +  * Calls ''RosegardenDocument::sendChannelSetups()''
 +
 +==== RosegardenDocument::sendChannelSetups() ====
 +
 +  * Added January 2021.
   * Calls ''Instrument::sendChannelSetup()''   * Calls ''Instrument::sendChannelSetup()''
  
Line 80: Line 92:
  
   * Sends the channel setups at file load time.   * Sends the channel setups at file load time.
 +  * Sends BS/PC for the channel as well.
   * This also might be the code that sends channel setups at the beginning of a MIDI File export.   * This also might be the code that sends channel setups at the beginning of a MIDI File export.
  
Line 114: Line 127:
 If changes are made to the way CCs are sent, MIDI export needs to be regression tested to make sure nothing breaks. If changes are made to the way CCs are sent, MIDI export needs to be regression tested to make sure nothing breaks.
  
-//I need to expand this at some point.  MIDI Export reuses some portion of the above.//+<file> 
 +- MidiFile::convertToMidi() 
 +  > MappedBufMetaIterator::fetchFixedChannelSetup(inserter) 
 +    > InternalSegmentMapper::insertChannelSetup(inserter) 
 +      > ChannelManager::insertChannelSetup(TrackId, RealTime, ...) 
 +</file>
  
 
 
dev/control_changes.1587521529.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