|
Tabula Sonora 0.1.0
A native C++20 implementation of the Roland Sound Canvas VA synth voice
|
The GS receive switches, one per message class the module can be told to ignore. More...
#include <tabulasonora/part.hpp>
Public Attributes | |
| bool | pitch_bend = true |
| bool | channel_pressure = true |
| bool | program_change = true |
| bool | control_change = true |
| The master gate every controller shares; the channel-mode messages (CC#120 up) bypass it. | |
| bool | poly_pressure = true |
| bool | notes = true |
| bool | rpn = true |
| bool | nrpn = true |
| bool | modulation = true |
| bool | volume = true |
| bool | panpot = true |
| bool | expression = true |
| bool | hold = true |
| bool | portamento = true |
| bool | sostenuto = true |
| bool | soft = true |
| bool | bank_msb = true |
| Bank select, split MSB/LSB the way 40 1x 23/24 split it. | |
| bool | bank_lsb = true |
The GS receive switches, one per message class the module can be told to ignore.
The engine keeps these as a 16-bit mask at part+0x3d6 and every recovered handler opens with a test against it – cc11_expression requires 0x810, cc64_hold_damper 0x820, and so on. They are named booleans here rather than a mask because nothing needs the packed form: there is no bulk dump to emit, and the SysEx that writes them (40 1x 03-40 1x 12, plus the bank pair at 40 1x 23/24) arrives one switch at a time.
Everything defaults on, which is the GS-reset state.
| bool ts::RxSwitches::pitch_bend = true |
| bool ts::RxSwitches::channel_pressure = true |
| bool ts::RxSwitches::program_change = true |
| bool ts::RxSwitches::control_change = true |
The master gate every controller shares; the channel-mode messages (CC#120 up) bypass it.
| bool ts::RxSwitches::poly_pressure = true |
| bool ts::RxSwitches::notes = true |
| bool ts::RxSwitches::rpn = true |
| bool ts::RxSwitches::nrpn = true |
| bool ts::RxSwitches::modulation = true |
| bool ts::RxSwitches::volume = true |
| bool ts::RxSwitches::panpot = true |
| bool ts::RxSwitches::expression = true |
| bool ts::RxSwitches::hold = true |
| bool ts::RxSwitches::portamento = true |
| bool ts::RxSwitches::sostenuto = true |
| bool ts::RxSwitches::soft = true |
| bool ts::RxSwitches::bank_msb = true |
Bank select, split MSB/LSB the way 40 1x 23/24 split it.
| bool ts::RxSwitches::bank_lsb = true |