Tabula Sonora 0.1.0
A native C++20 implementation of the Roland Sound Canvas VA synth voice
Loading...
Searching...
No Matches
table_set.hpp
Go to the documentation of this file.
1#pragma once
2
5
6#include <cstdint>
7#include <filesystem>
8#include <span>
9#include <string>
10#include <string_view>
11#include <unordered_map>
12#include <vector>
13
14namespace ts {
15
30class TableSet {
31public:
33 struct names {
34 static constexpr std::string_view amp_curve_hi = "curve_amp_hi_2ba0.bin";
35 static constexpr std::string_view amp_curve_lo = "curve_amp_lo_2da0.bin";
36 static constexpr std::string_view tvf_env_depth = "curve_filtenvdepth_2f00.bin";
37 static constexpr std::string_view filter_type_coef = "curve_filttype_987b00.bin";
38 static constexpr std::string_view level_curve = "curve_level_2a00.bin";
39 static constexpr std::string_view pitch_bias = "curve_pitchbias_2890.bin";
40 static constexpr std::string_view pitch_depth_vs = "curve_pitchdepthvs_28d0.bin";
41 static constexpr std::string_view pitch_env = "curve_pitchenv_2578.bin";
42 static constexpr std::string_view env_rate_out = "curve_rateout_3060.bin";
43 static constexpr std::string_view reso_curve = "curve_reso_2b88.bin";
44 static constexpr std::string_view env_scale_curve = "curve_scale_28e8.bin";
45 static constexpr std::string_view rate_curve = "curve_segrate_2900.bin";
46 static constexpr std::string_view vel_curve = "curve_vel_2b00.bin";
47 static constexpr std::string_view vel_sens = "curve_velsens_01520.bin";
48 static constexpr std::string_view vel_xfade = "curve_velxfade_01020.bin";
49 static constexpr std::string_view env_shape = "env_shape_7a90.bin";
50 static constexpr std::string_view env_start_phase = "env_startphase_7a30.bin";
51 static constexpr std::string_view interp_coef = "interp_coef_a0f210.bin";
52 static constexpr std::string_view kf_pitch = "kf_pitch_01b20.bin";
53 static constexpr std::string_view kf_pitch_rate0 = "kf_pitchrate0_01f20.bin";
54 static constexpr std::string_view kf_pitch_rate1 = "kf_pitchrate1_01aa0.bin";
55 static constexpr std::string_view kf_tva_level = "kf_tvalevel_026a0.bin";
56 static constexpr std::string_view kf_tva_level2 = "kf_tvalevel2_01fa0.bin";
57 static constexpr std::string_view kf_tva_rate0 = "kf_tvarate0_023a0.bin";
58 static constexpr std::string_view kf_tva_rate1 = "kf_tvarate1_020a0.bin";
59 static constexpr std::string_view kf_tvf_env = "kf_tvfenv_02a20.bin";
60 static constexpr std::string_view kf_tvf_rate = "kf_tvfrate_03920.bin";
61 static constexpr std::string_view layered = "layered_1896690.bin";
62 static constexpr std::string_view lfo_cents = "lfo_cents_2690.bin";
63 static constexpr std::string_view lfo_delay = "lfo_delay_a2590.bin";
64 static constexpr std::string_view lfo_rate = "lfo_rate_2790.bin";
65 static constexpr std::string_view portamento_step = "porta_step_7800.bin";
66 static constexpr std::string_view lfo_wave = "lfo_wave_1740.bin";
67 static constexpr std::string_view lfo_wave_bank = "lfo_wavebank_a17f0.bin";
68 static constexpr std::string_view lfo_wave_map = "lfo_wavemap_87ae0.bin";
69 static constexpr std::string_view dir_lut1 = "lut1_2e30.bin";
70 static constexpr std::string_view dir_lut2 = "lut2_28b0.bin";
71 static constexpr std::string_view dir_lut3 = "lut3_32b0.bin";
72 static constexpr std::string_view multisample = "multisample_a.bin";
73 static constexpr std::string_view pan = "pan_a2fa1.bin";
74 static constexpr std::string_view ramp_divider = "ramp_divider_a03e00.bin";
75 static constexpr std::string_view ramp_exp = "ramp_exp_986420.bin";
76 static constexpr std::string_view ramp_flagword = "ramp_flagword_a84d8.bin";
77 static constexpr std::string_view svf_f_ceil = "svf_fceil_986860.bin";
78 static constexpr std::string_view tone = "tone_a.bin";
79 static constexpr std::string_view tvf_cutoff_ceil = "tvf_ceil_a7ed0.bin";
80 static constexpr std::string_view tvf_q_lp = "tvf_q_lp_a7cd0.bin";
81 static constexpr std::string_view tvf_q_t6 = "tvf_q_t6_a7fd0.bin";
82 static constexpr std::string_view tvf_cutoff_warp = "tvf_warp_a83d0.bin";
83 static constexpr std::string_view wavedesc = "wavedesc_a.bin";
84 };
85
87 [[nodiscard]] static TableSet from_rom(const RomImage& rom);
88
94 [[nodiscard]] static TableSet from_cache_directory(const std::filesystem::path& directory,
95 const TableManifest* manifest = nullptr);
96
97 TableSet(TableSet&&) noexcept;
98 TableSet& operator=(TableSet&&) noexcept;
99 TableSet(const TableSet&) = delete;
100 TableSet& operator=(const TableSet&) = delete;
102
104 [[nodiscard]] const TableManifest& manifest() const noexcept { return *manifest_; }
105
109 [[nodiscard]] std::span<const std::uint8_t> raw(std::string_view name) const;
110
112 [[nodiscard]] std::span<const std::uint16_t> amp_curve_hi() const noexcept
113 {
114 return amp_curve_hi_;
115 }
116
118 [[nodiscard]] std::span<const std::uint16_t> amp_curve_lo() const noexcept
119 {
120 return amp_curve_lo_;
121 }
122
124 [[nodiscard]] std::span<const std::uint8_t> tvf_env_depth() const noexcept
125 {
126 return tvf_env_depth_;
127 }
128
130 [[nodiscard]] std::span<const std::uint32_t> filter_type_coef() const noexcept
131 {
132 return filter_type_coef_;
133 }
134
136 [[nodiscard]] std::span<const std::uint16_t> level_curve() const noexcept
137 {
138 return level_curve_;
139 }
140
142 [[nodiscard]] std::span<const std::uint8_t> pitch_bias() const noexcept { return pitch_bias_; }
143
145 [[nodiscard]] std::span<const std::uint16_t> pitch_depth_vs() const noexcept
146 {
147 return pitch_depth_vs_;
148 }
149
151 [[nodiscard]] std::span<const std::uint8_t> pitch_env() const noexcept { return pitch_env_; }
152
154 [[nodiscard]] std::span<const std::uint16_t> env_rate_out() const noexcept
155 {
156 return env_rate_out_;
157 }
158
160 [[nodiscard]] std::span<const std::int16_t> reso_curve() const noexcept { return reso_curve_; }
161
163 [[nodiscard]] std::span<const std::uint8_t> env_scale_curve() const noexcept
164 {
165 return env_scale_curve_;
166 }
167
169 [[nodiscard]] std::span<const std::uint16_t> rate_curve() const noexcept { return rate_curve_; }
170
172 [[nodiscard]] std::span<const std::uint8_t> vel_curve() const noexcept { return vel_curve_; }
173
178 [[nodiscard]] std::span<const std::uint8_t> vel_sens() const noexcept { return vel_sens_; }
179
183 [[nodiscard]] std::span<const std::uint8_t> vel_xfade() const noexcept { return vel_xfade_; }
184
188 [[nodiscard]] std::span<const std::uint16_t> env_shape() const noexcept { return env_shape_; }
189
191 [[nodiscard]] std::span<const std::uint16_t> env_start_phase() const noexcept
192 {
193 return env_start_phase_;
194 }
195
198 [[nodiscard]] std::span<const float> interp_coef() const noexcept { return interp_coef_; }
199
201 [[nodiscard]] std::span<const std::int16_t> kf_pitch() const noexcept { return kf_pitch_; }
202
204 [[nodiscard]] std::span<const std::uint8_t> kf_pitch_rate0() const noexcept
205 {
206 return kf_pitch_rate0_;
207 }
208
210 [[nodiscard]] std::span<const std::uint8_t> kf_pitch_rate1() const noexcept
211 {
212 return kf_pitch_rate1_;
213 }
214
216 [[nodiscard]] std::span<const std::uint8_t> kf_tva_level() const noexcept
217 {
218 return kf_tva_level_;
219 }
220
222 [[nodiscard]] std::span<const std::uint8_t> kf_tva_level2() const noexcept
223 {
224 return kf_tva_level2_;
225 }
226
228 [[nodiscard]] std::span<const std::uint8_t> kf_tva_rate0() const noexcept
229 {
230 return kf_tva_rate0_;
231 }
232
234 [[nodiscard]] std::span<const std::uint8_t> kf_tva_rate1() const noexcept
235 {
236 return kf_tva_rate1_;
237 }
238
241 [[nodiscard]] std::span<const std::int16_t> kf_tvf_env() const noexcept { return kf_tvf_env_; }
242
245 [[nodiscard]] std::span<const std::uint8_t> kf_tvf_rate() const noexcept
246 {
247 return kf_tvf_rate_;
248 }
249
251 [[nodiscard]] std::span<const std::uint8_t> layered() const noexcept { return layered_; }
252
254 [[nodiscard]] std::span<const std::uint16_t> lfo_cents() const noexcept { return lfo_cents_; }
255
257 [[nodiscard]] std::span<const std::uint16_t> lfo_delay() const noexcept { return lfo_delay_; }
258
260 [[nodiscard]] std::span<const std::uint16_t> lfo_rate() const noexcept { return lfo_rate_; }
261
267 [[nodiscard]] std::span<const std::uint16_t> portamento_step() const noexcept
268 {
269 return portamento_step_;
270 }
271
273 [[nodiscard]] std::span<const std::uint8_t> lfo_wave() const noexcept { return lfo_wave_; }
274
276 [[nodiscard]] std::span<const std::int16_t> lfo_wave_bank() const noexcept
277 {
278 return lfo_wave_bank_;
279 }
280
282 [[nodiscard]] std::span<const std::uint8_t> lfo_wave_map() const noexcept
283 {
284 return lfo_wave_map_;
285 }
286
288 [[nodiscard]] std::span<const std::uint8_t> dir_lut1() const noexcept { return dir_lut1_; }
289
291 [[nodiscard]] std::span<const std::uint8_t> dir_lut2() const noexcept { return dir_lut2_; }
292
294 [[nodiscard]] std::span<const std::uint16_t> dir_lut3() const noexcept { return dir_lut3_; }
295
297 [[nodiscard]] std::span<const std::uint8_t> multisample() const noexcept
298 {
299 return multisample_;
300 }
301
304 [[nodiscard]] std::span<const std::uint8_t> pan() const noexcept { return pan_; }
305
307 [[nodiscard]] std::span<const std::uint8_t> ramp_divider() const noexcept
308 {
309 return ramp_divider_;
310 }
311
313 [[nodiscard]] std::span<const std::int32_t> ramp_exp() const noexcept { return ramp_exp_; }
314
316 [[nodiscard]] std::span<const std::uint8_t> ramp_flagword() const noexcept
317 {
318 return ramp_flagword_;
319 }
320
325 [[nodiscard]] std::span<const float> svf_f_ceil() const noexcept { return svf_f_ceil_; }
326
328 [[nodiscard]] std::span<const std::uint8_t> tone() const noexcept { return tone_; }
329
331 [[nodiscard]] std::span<const std::uint16_t> tvf_cutoff_ceil() const noexcept
332 {
333 return tvf_cutoff_ceil_;
334 }
335
337 [[nodiscard]] std::span<const std::uint16_t> tvf_q_lp() const noexcept { return tvf_q_lp_; }
338
340 [[nodiscard]] std::span<const std::uint16_t> tvf_q_t6() const noexcept { return tvf_q_t6_; }
341
343 [[nodiscard]] std::span<const std::uint16_t> tvf_cutoff_warp() const noexcept
344 {
345 return tvf_cutoff_warp_;
346 }
347
349 [[nodiscard]] std::span<const std::uint8_t> wavedesc() const noexcept { return wavedesc_; }
350
351private:
352 TableSet(std::unordered_map<std::string, std::vector<std::uint8_t>> raw,
353 const TableManifest& manifest);
354
355 void bind();
356
364 template<typename T>
365 [[nodiscard]] static std::vector<T> reinterpret_as(std::span<const std::uint8_t> bytes);
366
367 std::unordered_map<std::string, std::vector<std::uint8_t>> raw_;
368 const TableManifest* manifest_;
369
370 std::vector<std::uint16_t> amp_curve_hi_;
371 std::vector<std::uint16_t> amp_curve_lo_;
372 std::span<const std::uint8_t> tvf_env_depth_;
373 std::vector<std::uint32_t> filter_type_coef_;
374 std::vector<std::uint16_t> level_curve_;
375 std::span<const std::uint8_t> pitch_bias_;
376 std::vector<std::uint16_t> pitch_depth_vs_;
377 std::span<const std::uint8_t> pitch_env_;
378 std::vector<std::uint16_t> env_rate_out_;
379 std::vector<std::int16_t> reso_curve_;
380 std::span<const std::uint8_t> env_scale_curve_;
381 std::vector<std::uint16_t> rate_curve_;
382 std::span<const std::uint8_t> vel_curve_;
383 std::span<const std::uint8_t> vel_sens_;
384 std::span<const std::uint8_t> vel_xfade_;
385 std::vector<std::uint16_t> env_shape_;
386 std::vector<std::uint16_t> env_start_phase_;
387 std::vector<float> interp_coef_;
388 std::vector<std::int16_t> kf_pitch_;
389 std::span<const std::uint8_t> kf_pitch_rate0_;
390 std::span<const std::uint8_t> kf_pitch_rate1_;
391 std::span<const std::uint8_t> kf_tva_level_;
392 std::span<const std::uint8_t> kf_tva_level2_;
393 std::span<const std::uint8_t> kf_tva_rate0_;
394 std::span<const std::uint8_t> kf_tva_rate1_;
395 std::vector<std::int16_t> kf_tvf_env_;
396 std::span<const std::uint8_t> kf_tvf_rate_;
397 std::span<const std::uint8_t> layered_;
398 std::vector<std::uint16_t> lfo_cents_;
399 std::vector<std::uint16_t> lfo_delay_;
400 std::vector<std::uint16_t> lfo_rate_;
401 std::vector<std::uint16_t> portamento_step_;
402 std::span<const std::uint8_t> lfo_wave_;
403 std::vector<std::int16_t> lfo_wave_bank_;
404 std::span<const std::uint8_t> lfo_wave_map_;
405 std::span<const std::uint8_t> dir_lut1_;
406 std::span<const std::uint8_t> dir_lut2_;
407 std::vector<std::uint16_t> dir_lut3_;
408 std::span<const std::uint8_t> multisample_;
409 std::span<const std::uint8_t> pan_;
410 std::span<const std::uint8_t> ramp_divider_;
411 std::vector<std::int32_t> ramp_exp_;
412 std::span<const std::uint8_t> ramp_flagword_;
413 std::vector<float> svf_f_ceil_;
414 std::span<const std::uint8_t> tone_;
415 std::vector<std::uint16_t> tvf_cutoff_ceil_;
416 std::vector<std::uint16_t> tvf_q_lp_;
417 std::vector<std::uint16_t> tvf_q_t6_;
418 std::vector<std::uint16_t> tvf_cutoff_warp_;
419 std::span<const std::uint8_t> wavedesc_;
420};
421
422} // namespace ts
Read-only access to SCCore.dll as a data file.
Definition rom_image.hpp:39
The machine-readable map of everything the engine needs out of SCCore.dll: the pinned build identity,...
Definition table_manifest.hpp:94
std::span< const std::uint8_t > kf_tva_level2() const noexcept
g_kf_tvalevel2 — 128×128; TVA level key-follow, second term.
Definition table_set.hpp:222
std::span< const std::uint8_t > layered() const noexcept
g_layered_table — 50 alternate-articulation records of 0x18 bytes.
Definition table_set.hpp:251
std::span< const std::uint8_t > lfo_wave_map() const noexcept
g_lfo_wavemap — 32 entries; waveform selector nibble to table index.
Definition table_set.hpp:282
std::span< const std::int16_t > kf_tvf_env() const noexcept
g_kf_tvfenv — TVF env-depth key-follow.
Definition table_set.hpp:241
std::span< const std::uint16_t > lfo_rate() const noexcept
g_lfo_rate_tbl — 128 entries; LFO1 rate byte to 16-bit phase increment.
Definition table_set.hpp:260
std::span< const std::uint8_t > pitch_env() const noexcept
g_pitch_env — pitch-envelope conversion region, addressed by VA-relative offset.
Definition table_set.hpp:151
TableSet(TableSet &&) noexcept
std::span< const std::uint8_t > lfo_wave() const noexcept
g_lfo_wave — the half-sine LFO waveform used by selector 0.
Definition table_set.hpp:273
std::span< const std::int16_t > kf_pitch() const noexcept
g_kf_pitch — 8 rows of 128; pitch key-follow, indexed row * 0x80 + key.
Definition table_set.hpp:201
std::span< const std::uint8_t > raw(std::string_view name) const
Returns the untouched bytes of one table; see names.
const TableManifest & manifest() const noexcept
The offset map these tables were loaded through.
Definition table_set.hpp:104
std::span< const float > svf_f_ceil() const noexcept
g_svf_f_ceil — 1024 entries; the stability ceiling the filter's f is clamped to, indexed by the dampi...
Definition table_set.hpp:325
std::span< const std::uint16_t > tvf_cutoff_warp() const noexcept
g_tvf_cutoff_warp — 129 entries; the cutoff warp applied at stage C.
Definition table_set.hpp:343
std::span< const std::uint32_t > filter_type_coef() const noexcept
g_filter_type_coef — 16 entries; filter TYPE byte to tap/coefficient word.
Definition table_set.hpp:130
std::span< const std::uint8_t > kf_tva_rate1() const noexcept
g_kf_tvarate1 — 128×128; TVA envelope rate key-follow for the release.
Definition table_set.hpp:234
std::span< const std::uint8_t > vel_curve() const noexcept
g_vel_curve — 256 entries; velocity response curve.
Definition table_set.hpp:172
std::span< const std::uint8_t > tvf_env_depth() const noexcept
g_tvf_env_depth — TVF env-depth conversion region, addressed by VA-relative offset.
Definition table_set.hpp:124
std::span< const std::uint8_t > env_scale_curve() const noexcept
g_env_scale_curve — 256 entries; envelope rate/level scale, 0x40-neutral.
Definition table_set.hpp:163
std::span< const std::uint8_t > pitch_bias() const noexcept
g_pitch_bias — 128 entries; pitch-envelope bias sub-table.
Definition table_set.hpp:142
std::span< const std::uint16_t > dir_lut3() const noexcept
g_dir_lut3 — 32768 entries; program to tone number.
Definition table_set.hpp:294
std::span< const std::uint8_t > kf_tva_rate0() const noexcept
g_kf_tvarate0 — 128×128; TVA envelope rate key-follow for the segments.
Definition table_set.hpp:228
std::span< const std::uint8_t > dir_lut2() const noexcept
g_dir_lut2 — bank to LUT3 row.
Definition table_set.hpp:291
std::span< const std::uint16_t > amp_curve_hi() const noexcept
g_amp_curve_hi — 256 entries, high half of the log-to-linear amplitude lookup.
Definition table_set.hpp:112
std::span< const std::uint16_t > lfo_delay() const noexcept
g_lfo_delay_tbl — 128 entries; LFO1 delay byte to delay ticks.
Definition table_set.hpp:257
std::span< const std::uint8_t > kf_pitch_rate1() const noexcept
g_kf_pitchrate1 — 128×128; pitch-envelope rate key-follow for the release.
Definition table_set.hpp:210
std::span< const std::uint16_t > tvf_q_t6() const noexcept
g_tvf_q_t6 — 256 entries; Q trim for filter type 6.
Definition table_set.hpp:340
std::span< const std::uint8_t > dir_lut1() const noexcept
g_dir_lut1 — 128 entries; tone-map to LUT2 row.
Definition table_set.hpp:288
std::span< const std::uint8_t > ramp_flagword() const noexcept
g_ramp_flagword — per-destination ramp-divider selector bits.
Definition table_set.hpp:316
std::span< const std::uint8_t > ramp_divider() const noexcept
g_ramp_divider — the anti-zipper zero-order-hold masks [0, 7, 31, 127].
Definition table_set.hpp:307
std::span< const std::uint16_t > env_rate_out() const noexcept
g_env_rate_out — 512 entries; the rate-scale output curve, exactly 2^((i−0x80)/32) in 8....
Definition table_set.hpp:154
std::span< const std::uint16_t > tvf_cutoff_ceil() const noexcept
g_tvf_cutoff_ceil — 128 entries; cutoff ceiling by resonance byte.
Definition table_set.hpp:331
std::span< const std::uint8_t > vel_sens() const noexcept
g_vel_sens — the velocity response curves, 16 rows of 0x80 bytes.
Definition table_set.hpp:178
std::span< const std::uint16_t > amp_curve_lo() const noexcept
g_amp_curve_lo — 256 entries, low half of the log-to-linear amplitude lookup.
Definition table_set.hpp:118
static TableSet from_rom(const RomImage &rom)
Loads every table by slicing the DLL at its manifest offset.
std::span< const std::uint8_t > tone() const noexcept
g_tone_table — tone records of stride 0x100: 0x24 header plus partial blocks of 0x6e.
Definition table_set.hpp:328
std::span< const std::uint16_t > portamento_step() const noexcept
g_porta_step — 128 entries; portamento glide in milli-semitones per control tick, indexed by the CC#5...
Definition table_set.hpp:267
std::span< const std::uint8_t > multisample() const noexcept
g_multisample_table — key/velocity zone to wave number, stride 0x8c.
Definition table_set.hpp:297
std::span< const std::uint8_t > pan() const noexcept
g_pan_tbl — 128 entries.
Definition table_set.hpp:304
std::span< const float > interp_coef() const noexcept
g_interp_coef_table — the 4-tap FIR resample kernel as 128 phases of 4 taps, flattened to 512 floats.
Definition table_set.hpp:198
std::span< const std::int16_t > reso_curve() const noexcept
g_reso_curve — 64 entries; resonance curve for partial block byte 0x4a.
Definition table_set.hpp:160
std::span< const std::uint16_t > pitch_depth_vs() const noexcept
g_pitch_depth_vs — 64 entries; pitch-envelope depth versus velocity.
Definition table_set.hpp:145
std::span< const std::int32_t > ramp_exp() const noexcept
g_ramp_exp_tbl — 257 entries of 2^17 · 2^(i/256), the SVF f-coefficient decode.
Definition table_set.hpp:313
static TableSet from_cache_directory(const std::filesystem::path &directory, const TableManifest *manifest=nullptr)
Loads every table from a directory of extracted .bin slices.
std::span< const std::uint16_t > env_shape() const noexcept
g_env_shape — the fast-approach segment shape.
Definition table_set.hpp:188
std::span< const std::uint16_t > level_curve() const noexcept
g_level_curve — 128 entries; envelope stage byte to 16-bit log attenuation.
Definition table_set.hpp:136
std::span< const std::uint8_t > kf_pitch_rate0() const noexcept
g_kf_pitchrate0 — 128×128; pitch-envelope rate key-follow for the segments.
Definition table_set.hpp:204
std::span< const std::int16_t > lfo_wave_bank() const noexcept
g_lfo_wavebank — LFO wavetables 8..0x1f, 24 rows of 0x81 entries.
Definition table_set.hpp:276
std::span< const std::uint16_t > rate_curve() const noexcept
g_rate_curve — 128 entries; rate byte to segment time.
Definition table_set.hpp:169
std::span< const std::uint16_t > env_start_phase() const noexcept
g_env_startphase — 128 entries; per-segment initial phase seed.
Definition table_set.hpp:191
std::span< const std::uint8_t > vel_xfade() const noexcept
g_vel_xfade — the multisample velocity-crossfade curve, 16 rows of 0x80 bytes.
Definition table_set.hpp:183
std::span< const std::uint16_t > lfo_cents() const noexcept
g_lfo_cents_tbl — 128 entries; LFO pitch-depth byte to milli-semitones.
Definition table_set.hpp:254
std::span< const std::uint8_t > kf_tvf_rate() const noexcept
g_kf_tvfrate — 128×128; TVF envelope rate key-follow.
Definition table_set.hpp:245
std::span< const std::uint8_t > kf_tva_level() const noexcept
g_kf_tvalevel — 128×128; TVA base-level key-follow.
Definition table_set.hpp:216
std::span< const std::uint8_t > wavedesc() const noexcept
g_wavedesc_table — wave descriptors of stride 0x16: ROM coordinates, root key, loop.
Definition table_set.hpp:349
std::span< const std::uint16_t > tvf_q_lp() const noexcept
g_tvf_q_lp — 256 entries; Q trim for filter type 0 at neutral resonance.
Definition table_set.hpp:337
Definition control_decode.hpp:7
Cache file names for every table in the manifest.
Definition table_set.hpp:33
static constexpr std::string_view interp_coef
Definition table_set.hpp:51
static constexpr std::string_view pitch_env
Definition table_set.hpp:41
static constexpr std::string_view kf_pitch_rate1
Definition table_set.hpp:54
static constexpr std::string_view reso_curve
Definition table_set.hpp:43
static constexpr std::string_view env_start_phase
Definition table_set.hpp:50
static constexpr std::string_view layered
Definition table_set.hpp:61
static constexpr std::string_view svf_f_ceil
Definition table_set.hpp:77
static constexpr std::string_view tvf_env_depth
Definition table_set.hpp:36
static constexpr std::string_view dir_lut1
Definition table_set.hpp:69
static constexpr std::string_view kf_tva_rate0
Definition table_set.hpp:57
static constexpr std::string_view rate_curve
Definition table_set.hpp:45
static constexpr std::string_view lfo_wave_map
Definition table_set.hpp:68
static constexpr std::string_view vel_curve
Definition table_set.hpp:46
static constexpr std::string_view env_shape
Definition table_set.hpp:49
static constexpr std::string_view dir_lut3
Definition table_set.hpp:71
static constexpr std::string_view tvf_q_lp
Definition table_set.hpp:80
static constexpr std::string_view lfo_wave_bank
Definition table_set.hpp:67
static constexpr std::string_view env_scale_curve
Definition table_set.hpp:44
static constexpr std::string_view vel_sens
Definition table_set.hpp:47
static constexpr std::string_view portamento_step
Definition table_set.hpp:65
static constexpr std::string_view multisample
Definition table_set.hpp:72
static constexpr std::string_view tvf_q_t6
Definition table_set.hpp:81
static constexpr std::string_view pitch_depth_vs
Definition table_set.hpp:40
static constexpr std::string_view ramp_flagword
Definition table_set.hpp:76
static constexpr std::string_view wavedesc
Definition table_set.hpp:83
static constexpr std::string_view amp_curve_hi
Definition table_set.hpp:34
static constexpr std::string_view kf_pitch_rate0
Definition table_set.hpp:53
static constexpr std::string_view lfo_rate
Definition table_set.hpp:64
static constexpr std::string_view kf_tva_level
Definition table_set.hpp:55
static constexpr std::string_view dir_lut2
Definition table_set.hpp:70
static constexpr std::string_view kf_tvf_env
Definition table_set.hpp:59
static constexpr std::string_view lfo_wave
Definition table_set.hpp:66
static constexpr std::string_view amp_curve_lo
Definition table_set.hpp:35
static constexpr std::string_view level_curve
Definition table_set.hpp:38
static constexpr std::string_view ramp_divider
Definition table_set.hpp:74
static constexpr std::string_view lfo_delay
Definition table_set.hpp:63
static constexpr std::string_view filter_type_coef
Definition table_set.hpp:37
static constexpr std::string_view pan
Definition table_set.hpp:73
static constexpr std::string_view lfo_cents
Definition table_set.hpp:62
static constexpr std::string_view pitch_bias
Definition table_set.hpp:39
static constexpr std::string_view tvf_cutoff_ceil
Definition table_set.hpp:79
static constexpr std::string_view kf_tva_rate1
Definition table_set.hpp:58
static constexpr std::string_view vel_xfade
Definition table_set.hpp:48
static constexpr std::string_view ramp_exp
Definition table_set.hpp:75
static constexpr std::string_view env_rate_out
Definition table_set.hpp:42
static constexpr std::string_view tvf_cutoff_warp
Definition table_set.hpp:82
static constexpr std::string_view kf_tvf_rate
Definition table_set.hpp:60
static constexpr std::string_view kf_pitch
Definition table_set.hpp:52
static constexpr std::string_view tone
Definition table_set.hpp:78
static constexpr std::string_view kf_tva_level2
Definition table_set.hpp:56