103 std::span<const
float> in_right,
104 std::span<
float> out_left,
105 std::span<
float> out_right);
112 std::unique_ptr<Impl> impl_;
void select_type(int msb, int lsb)
Selects a type by its GS key and loads its defaults, exactly as 40 03 00/01 does.
const std::vector< EfxRecord > & directory() const
The directory, in file order: 65 named types plus the blank "no effect" record.
bool implemented() const
Whether the selected type's processor has been transcribed.
void reset()
Clears delay lines and scratch, keeping type and parameters.
void set_parameter(int address, int value)
Writes one byte of the 40 03 block, addresses 0x03–0x1E.
static constexpr int register_count
Registers in the file: engine numbers 0x80–0x1FF, stored zero-based.
Definition insertion_effect.hpp:60
InsertionEffect(const RomImage &rom)
static constexpr int parameter_bytes
Bytes in the live parameter block, addressed by 40 03 03–1E plus internal state.
Definition insertion_effect.hpp:63
double reverb_send() const noexcept
The block's common send levels, 40 03 17–19, as linear gains on the block's output.
double chorus_send() const noexcept
InsertionEffect(InsertionEffect &&) noexcept
void process(std::span< const float > in_left, std::span< const float > in_right, std::span< float > out_left, std::span< float > out_right)
Processes one block in place: EFX-part dry in, effect out.
const EfxRecord & current() const
The record currently selected, or the "no effect" record before any selection.
double delay_send() const noexcept
Read-only access to SCCore.dll as a data file.
Definition rom_image.hpp:39
Definition control_decode.hpp:7
One record of the DLL's own insertion-effect directory.
Definition insertion_effect.hpp:22
std::uint16_t type_key
GS type key, (MSB << 8) | LSB.
Definition insertion_effect.hpp:27
std::string name
Display name, exactly as the DLL spells it (Equalizer, Lo-Fi, OD / OD2, …).
Definition insertion_effect.hpp:24
std::array< std::uint8_t, 0x1C > defaults
The 0x1C default bytes the type loads: the 20 GS parameters (40 03 03–16), the three send levels (17–...
Definition insertion_effect.hpp:35
std::uint16_t dispatch
Index into the algorithm dispatch table.
Definition insertion_effect.hpp:31