Owns and oversamples one complete reed -> bore -> bell feedback loop. More...
#include <reed_waveguide_loop.hpp>
Public Member Functions | |
| bool | prepare (double base_sample_rate, double max_one_way_seconds, int oversampling_factor=2) |
| void | set_one_way_seconds (double seconds) noexcept |
| double | target_one_way_seconds () const noexcept |
| double | current_one_way_seconds () const noexcept |
| double | round_trip_seconds () const noexcept |
| void | set_closing_pressure (SampleType value) noexcept |
| void | set_flow_gain (SampleType value) noexcept |
| void | set_bore_impedance (SampleType value) noexcept |
| void | set_bell_reflection_gain (SampleType value) noexcept |
| void | set_bell_loss_pole (SampleType value) noexcept |
| Sets the bell pole in the base-rate domain. | |
| SampleType | bell_loss_pole () const noexcept |
| SampleType | internal_bell_loss_pole () const noexcept |
| SampleType | process (SampleType mouth_pressure) noexcept |
| Returns the pressure wave arriving at the bell before reflection. | |
| int | oversampling_factor () const noexcept |
| int | latency_samples () const noexcept |
| int | tail_samples () const noexcept |
| bool | prepared () const noexcept |
| void | reset () noexcept |
Static Public Attributes | |
| static constexpr double | default_one_way_seconds = 1.0 / (4.0 * 440.0) |
| static constexpr SampleType | maximum_base_rate_bell_loss_pole = SampleType{0.98} |
Owns and oversamples one complete reed -> bore -> bell feedback loop.
The public tuning unit is physical one-way seconds. The internal line runs at base_sample_rate * oversampling_factor, so every oversampled callback reads both boundaries, evaluates them, and advances both rails exactly once. The line delay is resonator state; latency_samples() reports only the linear-phase oversampler's base-rate algorithmic delay.
|
inlinenodiscardnoexcept |
|
inlinenodiscardnoexcept |
|
inlinenodiscardnoexcept |
|
inlinenodiscardnoexcept |
|
inlinenodiscardnoexcept |
|
inlinenodiscard |
|
inlinenodiscardnoexcept |
|
inlinenodiscardnoexcept |
Returns the pressure wave arriving at the bell before reflection.
This is an explicit bore pickup, not a calibrated acoustic-radiation model.
|
inlinenoexcept |
|
inlinenodiscardnoexcept |
|
inlinenoexcept |
Sets the bell pole in the base-rate domain.
The owned internal boundary receives pow(pole, 1/factor), preserving physical decay across 1x/2x/4x.
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenodiscardnoexcept |
|
inlinenodiscardnoexcept |
|
staticconstexpr |
|
staticconstexpr |