| Both sides previous revision
Previous revision
Next revision
|
Previous revision
|
dev:control_changes [2020/04/22 02:13] tedfelix [Force Channel Setups] |
dev:control_changes [2022/05/06 16:07] (current) |
| ====== 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) ===== |
| |
| ===== 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. |
| | |
| - RosegardenMainWindow::setDocument() | - RosegardenMainWindow::setDocument() |
| > RosegardenDocument::initialiseStudio() | > RosegardenDocument::initialiseStudio() |
| > Instrument::sendChannelSetup() | > RosegardenDocument::sendChannelSetups() (added January 2021) |
| | > Instrument::sendChannelSetup() |
| </file> | </file> |
| |
| ==== RosegardenDocument::initialiseStudio() ==== | ==== RosegardenDocument::initialiseStudio() ==== |
| |
| | * Calls ''RosegardenDocument::sendChannelSetups()'' |
| | |
| | ==== RosegardenDocument::sendChannelSetups() ==== |
| | |
| | * Added January 2021. |
| * Calls ''Instrument::sendChannelSetup()'' | * Calls ''Instrument::sendChannelSetup()'' |
| |
| |
| * 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. |
| |
| 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> |
| |