Alias-controlled wavefolding, harmonic shaping, and ring modulation. More...
#include <pulp/signal/osc/va.hpp>#include <pulp/signal/oversampling.hpp>#include <algorithm>#include <array>#include <cmath>#include <cstddef>#include <cstdint>#include <limits>#include <numbers>#include <type_traits>Go to the source code of this file.
Classes | |
| class | pulp::signal::detail::NonlinearOversamplingT< SampleType > |
| class | pulp::signal::MultistageWavefolderT< SampleType > |
| A sequential wavefolder whose stage drive increases through the chain. More... | |
| class | pulp::signal::ChebyshevHarmonicShaperT< SampleType > |
| A fixed-storage Chebyshev-series transfer function. More... | |
| class | pulp::signal::NonlinearRingModulatorT< SampleType > |
| An internally carried ring modulator with ideal and diode-ring models. More... | |
Namespaces | |
| namespace | pulp |
| namespace | pulp::signal |
| namespace | pulp::signal::detail |
| Round-2 effect-wave vocabulary. | |
Typedefs | |
| using | pulp::signal::MultistageWavefolder = MultistageWavefolderT<float> |
| using | pulp::signal::MultistageWavefolder64 = MultistageWavefolderT<double> |
| using | pulp::signal::ChebyshevHarmonicShaper = ChebyshevHarmonicShaperT<float> |
| using | pulp::signal::ChebyshevHarmonicShaper64 = ChebyshevHarmonicShaperT<double> |
| using | pulp::signal::NonlinearRingModulator = NonlinearRingModulatorT<float> |
| using | pulp::signal::NonlinearRingModulator64 = NonlinearRingModulatorT<double> |
Enumerations | |
| enum class | pulp::signal::NonlinearAliasPolicy : std::uint8_t { pulp::signal::oversample_4x , pulp::signal::oversample_2x , pulp::signal::off } |
| Antialiasing choices shared by the nonlinear-shaping processors. More... | |
| enum class | pulp::signal::RingModulationModel : std::uint8_t { pulp::signal::ideal_multiplier , pulp::signal::diode_ring } |
| enum class | pulp::signal::RingCarrierWaveform : std::uint8_t { pulp::signal::sine , pulp::signal::triangle , pulp::signal::square } |
| enum class | pulp::signal::RingCarrierMode : std::uint8_t { pulp::signal::bipolar , pulp::signal::unipolar } |
| enum class | pulp::signal::RingOutputPolarity : std::uint8_t { pulp::signal::normal , pulp::signal::inverted } |
Functions | |
| bool | pulp::signal::detail::valid_alias_policy (NonlinearAliasPolicy policy) noexcept |
| double | pulp::signal::detail::triangle_fold (double input) noexcept |
| double | pulp::signal::detail::triangle_fold_slope (double input) noexcept |
Variables | |
| constexpr double | pulp::signal::detail::kNonlinearMinimumSampleRate = 1000.0 |
| constexpr double | pulp::signal::detail::kNonlinearMaximumSampleRate = 768000.0 |
Alias-controlled wavefolding, harmonic shaping, and ring modulation.