Differences

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

Link to this comparison view

Next revision Both sides next revision
dev:control_changes [2020/04/22 02:06]
tedfelix created
dev:control_changes [2020/04/22 02:12]
tedfelix
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.
  
 ===== Allow Reset All Controllers (CC 121) ===== ===== Allow Reset All Controllers (CC 121) =====
Line 9: Line 11:
   Edit > Preferences... > MIDI > General tab   Edit > Preferences... > MIDI > General tab
  
-The MIDI preferences are displayed by the MIDIConfigurationPage class.  The preference itself is stored in Rosegarden.conf as follows:+The MIDI preferences are displayed by the ''MIDIConfigurationPage'' class.  The preference itself is stored in Rosegarden.conf as follows:
  
   [Sequencer_Options]   [Sequencer_Options]
Line 25: Line 27:
 ===== Manage Controllers dialog ===== ===== Manage Controllers dialog =====
      
-The ControlEditorDialog class is the "Manage Controllers" dialog.+The ''ControlEditorDialog'' class is the "Manage Controllers" dialog.
          
-//A better name for this class might be "ManageControllers".//+//A better name for this class might be "''ManageControllers''".//
          
 Controllers can be added, modified and deleted here.  Deleting a controller here will prevent it from ever being sent out at composition load time, and playback time. Controllers can be added, modified and deleted here.  Deleting a controller here will prevent it from ever being sent out at composition load time, and playback time.
Line 33: Line 35:
 ===== MIDI Instrument Parameters ===== ===== MIDI Instrument Parameters =====
  
-The MIDIInstrumentParameterPanel class is the "Instrument Parameters" panel that appears in the lower left when a MIDI track is selected.  Here the user can adjust the initial settings for the various controllers that were configured in the "Manage Controllers" dialog for a Device.+The ''MIDIInstrumentParameterPanel'' class is the "Instrument Parameters" panel that appears in the lower left when a MIDI track is selected.  Here the user can adjust the initial settings for the various controllers that were configured in the "Manage Controllers" dialog for a Device.
  
 ===== Controller Rulers ===== ===== Controller Rulers =====
  
-The ControllerEventsRuler class provides the controller rulers that can be displayed in both the Matrix and Notation editors.  These can be enabled from both editors by:+The ''ControllerEventsRuler'' class provides the controller rulers that can be displayed in both the Matrix and Notation editors.  These can be enabled from both editors by:
  
   View > Rulers > Add Control Ruler > ...   View > Rulers > Add Control Ruler > ...
Line 47: Line 49:
 ===== Controller Sequence dialog ===== ===== Controller Sequence dialog =====
  
-The PitchbendSequenceDialog class provides both the controller sequence dialogs and the "PitchBend Sequence" dialog.+The ''PitchbendSequenceDialog'' class provides both the controller sequence dialogs and the "PitchBend Sequence" dialog.
  
 These dialogs are accessible from both the Matrix and Notation editors: These dialogs are accessible from both the Matrix and Notation editors:
Line 69: Line 71:
  
   * Called when a new Composition is loaded.   * Called when a new Composition is loaded.
-  * Calls RosegardenDocument::initialiseStudio()+  * Calls ''RosegardenDocument::initialiseStudio()''
  
 ==== RosegardenDocument::initialiseStudio() ==== ==== RosegardenDocument::initialiseStudio() ====
  
-  * Calls Instrument::sendChannelSetup()+  * Calls ''Instrument::sendChannelSetup()''
  
 ==== Instrument::sendChannelSetup() ==== ==== Instrument::sendChannelSetup() ====
Line 92: Line 94:
 ==== InternalSegmentMapper::makeReady() ==== ==== InternalSegmentMapper::makeReady() ====
  
-  * Calls InternalSegmentMapper::getControllers() to get the controllers that are needed for a channel setup. +  * Calls ''InternalSegmentMapper::getControllers()'' to get the controllers that are needed for a channel setup. 
-  * Calls ChannelManager::makeReady() to set up the channel.+  * Calls ''ChannelManager::makeReady()'' to set up the channel.
  
 ==== InternalSegmentMapper::getControllers() ==== ==== InternalSegmentMapper::getControllers() ====
  
-  * Eventually calls ControllerContextMap::getControllerValue() which gets the current CC values when in the middle of a Segment.+  * Eventually calls ''ControllerContextMap::getControllerValue()'' which gets the current CC values when in the middle of a Segment.
  
 ==== ControllerContextMap ==== ==== ControllerContextMap ====
  
-  * A map of CC values over the course of a Segment.+  * A map of CC values over the course of a ''Segment''.
   * Can be queried to find out the last CC that was sent prior to a given time.   * Can be queried to find out the last CC that was sent prior to a given time.
  
 ==== ChannelManager::makeReady() ==== ==== ChannelManager::makeReady() ====
  
-  * If playback is starting in the middle of the Segment, sends out a channel setup.+  * If playback is starting in the middle of the ''Segment'', sends out a channel setup.
  
 ===== Control Changes at MIDI File Export ===== ===== Control Changes at MIDI File Export =====
 
 
dev/control_changes.txt · 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