|
Tabula Sonora 0.1.0
A native C++20 implementation of the Roland Sound Canvas VA synth voice
|
#include <cstdint>#include <optional>#include <span>Go to the source code of this file.
Classes | |
| struct | ts::ControlUpdate |
| One parameter set by one message. More... | |
| struct | ts::XgAddress |
| An XG message split into the parts a front end needs to act on it. More... | |
Namespaces | |
| namespace | ts |
Enumerations | |
| enum class | ts::ControlTarget { ts::volume , ts::expression , ts::pan , ts::modulation , ts::damper , ts::reverb_send , ts::chorus_send , ts::delay_send , ts::bank , ts::bend_range , ts::vibrato_rate , ts::vibrato_depth , ts::vibrato_delay , ts::tvf_cutoff , ts::env_attack , ts::env_decay , ts::env_release , ts::velocity_depth , ts::velocity_offset , ts::channel_pressure , ts::matrix_modulation_pitch , ts::matrix_pressure_pitch , ts::eq_low_frequency , ts::eq_low_gain , ts::eq_high_frequency , ts::eq_high_gain , ts::eq_enabled } |
| Every part parameter a MIDI message can set to a value. More... | |
| enum class | ts::XgMessage { ts::none , ts::system_on , ts::all_parameter_reset , ts::system_parameter , ts::effect1 , ts::multi_part , ts::drum_setup } |
| What an XG message is, for a caller deciding whether it has the machinery to act. More... | |
Functions | |
| std::optional< ControlUpdate > | ts::decode_control_change (int channel, int controller, int value) noexcept |
| Which parameter a Control Change writes, if it writes one. | |
| std::optional< ControlUpdate > | ts::decode_gs_sysex (std::span< const std::uint8_t > bytes, int port=0) noexcept |
| Which parameter a Roland GS DT1 message writes, if it writes one. | |
| bool | ts::gs_checksum_ok (std::span< const std::uint8_t > bytes) noexcept |
| Whether a GS DT1 message is well formed and its checksum folds to zero. | |
| XgAddress | ts::decode_xg_sysex (std::span< const std::uint8_t > bytes) noexcept |
| Classifies an XG message and remaps its part number, without deciding what to do about it. | |
| std::optional< ControlUpdate > | ts::decode_xg_multi_part (const XgAddress &address) noexcept |
| Which parameter an XG Multi Part message writes, if it writes one this vocabulary covers. | |