|
Tabula Sonora 0.1.0
A native C++20 implementation of the Roland Sound Canvas VA synth voice
|
The coefficient sets for the three GS send effects. More...
#include <tabulasonora/effect_presets.hpp>
Public Member Functions | |
| const ReverbPresets & | reverb () const noexcept |
| const ChorusPresets & | chorus () const noexcept |
| const DelayPresets & | delay () const noexcept |
| const EqPresets & | eq () const noexcept |
| The EQ coefficient tables. | |
| bool | has_eq () const noexcept |
| Whether EQ coefficients are available. | |
Static Public Member Functions | |
| static const EffectPresets & | defaults () |
| The presets in use. | |
| static void | ensure_from (const RomImage &rom) |
| Computes the presets from the DLL, unless a set is already in force. | |
| static void | use (EffectPresets presets) |
| Supplies presets explicitly, for a host that manages its own data files. | |
| static bool | available () |
| Whether presets are available, without throwing. | |
| static EffectPresets | from_parts (ReverbPresets reverb, ChorusPresets chorus, DelayPresets delay, EqPresets eq={}) |
| Assembles a preset set from computed parts. | |
| static EffectPresets | parse (std::string_view json) |
| Parses presets from a JSON document. | |
Static Public Attributes | |
| static constexpr std::string_view | path_variable = "TABULASONORA_PRESETS" |
| Environment variable that overrides where presets are read from. | |
The coefficient sets for the three GS send effects.
Computed from the DLL rather than fitted to audio: EffectProgrammer decodes the reverb and chorus coefficients out of the engine's own preset tables, and the delay presets come straight from its preset table. Within each effect the topology is identical across all types — only these numbers change, which is why one implementation runs every type unchanged.
|
staticnodiscard |
The presets in use.
Throws std::runtime_error if none have been supplied and none could be found. Ordinarily nothing needs to be done: opening a NoteRenderer computes them from its ROM.
|
static |
Computes the presets from the DLL, unless a set is already in force.
An explicit use, an environment override and a file beside the executable all take precedence — they exist so a host can pin a harvested set, and a computed set must not silently replace one. In the ordinary case none of those is present and this fills in the computed presets, which match a live harvest bit for bit — see EffectProgrammer.
|
static |
Supplies presets explicitly, for a host that manages its own data files.
|
staticnodiscard |
Whether presets are available, without throwing.
|
staticnodiscard |
Assembles a preset set from computed parts.
|
staticnodiscard |
Parses presets from a JSON document.
Throws std::runtime_error if the document is not a well-formed preset set.
|
inlinenodiscardnoexcept |
|
inlinenodiscardnoexcept |
|
inlinenodiscardnoexcept |
|
inlinenodiscardnoexcept |
The EQ coefficient tables.
These are read from the DLL and are not part of the JSON round trip, unlike the other three: there is nothing to harvest, because the engine stores every setting rather than deriving it. A set parsed from a pinned presets.json therefore carries no EQ, and is_present says so — the EQ stage passes audio through untouched rather than pretending to be flat.
|
inlinenodiscardnoexcept |
Whether EQ coefficients are available.
|
staticconstexpr |
Environment variable that overrides where presets are read from.