OSC-DCO profile — data-driven timing parameters, no waveform or hardware capture. More...
#include <dco.hpp>
Public Attributes | |
| double | master_clock_hz = 8'000'000.0 |
| f_clk in Hz. | |
| DcoDivider | divider_scheme = DcoDivider::integer_n |
| Selects the integer-N (perfectly periodic) or fractional-N (accurate average, jittered) path. | |
| int | accumulator_bits = 24 |
| B — accumulator width, fractional-N only. | |
| int | octave_shift = 0 |
| Footage / octave selection, in octaves relative to the commanded note. | |
| double | fine_tune_cents = 0.0 |
| Global detune folded into the note before N / Δ derivation, in cents. | |
OSC-DCO profile — data-driven timing parameters, no waveform or hardware capture.
N (integer) and Δ (fractional) are DERIVED from a commanded note plus this profile; they are the equality-test targets, not stored fields.
There is deliberately NO drift / jitter-depth parameter: a DCO's clock is crystal-stable, so its imperfection is quantization, not drift. Waveshaper selection is not a DCO-profile field either — it belongs to the shared shaping stage this profile feeds.
| int pulp::signal::osc::DcoProfile::accumulator_bits = 24 |
B — accumulator width, fractional-N only.
Sets the tuning resolution f_clk / 2^B and the reset-jitter quantum. Clamped to [1, 32] on use.
| DcoDivider pulp::signal::osc::DcoProfile::divider_scheme = DcoDivider::integer_n |
Selects the integer-N (perfectly periodic) or fractional-N (accurate average, jittered) path.
| double pulp::signal::osc::DcoProfile::fine_tune_cents = 0.0 |
Global detune folded into the note before N / Δ derivation, in cents.
| double pulp::signal::osc::DcoProfile::master_clock_hz = 8'000'000.0 |
f_clk in Hz.
Sets both the pitch-quantization scale (|e| ∝ 1/f_clk) and the fractional jitter grid.
| int pulp::signal::osc::DcoProfile::octave_shift = 0 |
Footage / octave selection, in octaves relative to the commanded note.
Positive is up (4' is one octave above 8'). The scaling is an exact power of two, so the cents error tracks |e| at the shifted pitch — a lower footage means a smaller error.