|
MayaFlux 1.0.0
Digital-First Multimedia Processing Framework
|
Pure functions of a newest-first window and an array of numbers. More...
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Namespaces | |
| namespace | MayaFlux |
| Main namespace for the Maya Flux audio engine. | |
| namespace | MayaFlux::Kinesis |
| namespace | MayaFlux::Kinesis::Discrete |
Functions | |
| double | MayaFlux::Kinesis::Discrete::breakpoint_curve (std::span< const double > window, std::span< const double > coefs) noexcept |
| Piecewise linear curve through (x, y) points. | |
| double | MayaFlux::Kinesis::Discrete::chebyshev_series (std::span< const double > window, std::span< const double > coefs) noexcept |
| Sum of coefs[k] * T_k(window[0]) over Chebyshev polynomials. | |
| double | MayaFlux::Kinesis::Discrete::coupled_map_lattice (std::span< const double > window, std::span< double > coefs) noexcept |
| Ring of logistic maps with nearest neighbour coupling. | |
| std::vector< double > | MayaFlux::Kinesis::Discrete::coupled_map_lattice_state (std::span< const double > cells, double r, double epsilon) |
| Builds the array coupled_map_lattice reads and writes. | |
| double | MayaFlux::Kinesis::Discrete::dilate (std::span< const double > window, std::span< const double > coefs) noexcept |
| Maximum over the window of window[k] + coefs[k], the grayscale dilation. | |
| double | MayaFlux::Kinesis::Discrete::erode (std::span< const double > window, std::span< const double > coefs) noexcept |
| Minimum over the window of window[k] - coefs[k], the grayscale erosion. | |
| double | MayaFlux::Kinesis::Discrete::fourier_series (std::span< const double > window, std::span< const double > coefs) noexcept |
| Fourier series of a phase. | |
| double | MayaFlux::Kinesis::Discrete::goertzel (std::span< const double > window, std::span< const double > coefs) noexcept |
| Weighted energy of the window at chosen frequencies. | |
| double | MayaFlux::Kinesis::Discrete::horner (std::span< const double > coefficients, double x) noexcept |
| Horner evaluation, coefficients highest power first. | |
| double | MayaFlux::Kinesis::Discrete::iterated_polynomial (std::span< const double > window, std::span< const double > coefs) noexcept |
| Polynomial of the previous value, coefs highest power first. | |
| double | MayaFlux::Kinesis::Discrete::kuramoto (std::span< const double > window, std::span< double > coefs) noexcept |
| Kuramoto oscillators pulled toward their mean phase. | |
| std::vector< double > | MayaFlux::Kinesis::Discrete::kuramoto_state (std::span< const double > omegas, double coupling, std::span< const double > phases={}) |
| Builds the array kuramoto reads and writes. | |
| double | MayaFlux::Kinesis::Discrete::lorenz_attractor (std::span< const double > window, std::span< double > coefs) noexcept |
| Lorenz system stepped once by fourth order Runge-Kutta, returning x. | |
| std::vector< double > | MayaFlux::Kinesis::Discrete::lorenz_state (double dt=0.005, double sigma=10.0, double rho=28.0, double beta=8.0/3.0, double x=1.0, double y=1.0, double z=1.0) |
| Builds the array lorenz_attractor reads and writes. | |
| double | MayaFlux::Kinesis::Discrete::modular_recurrence (std::span< const double > window, std::span< const double > coefs) noexcept |
| Weighted sum wrapped into [0, modulus). | |
| double | MayaFlux::Kinesis::Discrete::pattern_lookup (std::span< const double > window, std::span< const double > coefs) noexcept |
| Table indexed by the recent shape of the window. | |
| double | MayaFlux::Kinesis::Discrete::phasor_bank (std::span< const double > window, std::span< double > coefs) noexcept |
| Sum of N sinusoidal partials, each with its own slow amplitude swell. | |
| std::vector< double > | MayaFlux::Kinesis::Discrete::phasor_bank_state (std::span< const double > increments, std::span< const double > scales={}, std::span< const double > am_increments={}, std::span< const double > phases={}, std::span< const double > am_phases={}) |
| Builds the array phasor_bank reads and writes. | |
| double | MayaFlux::Kinesis::Discrete::polynomial_lags (std::span< const double > window, std::span< const double > coefs) noexcept |
| Polynomial in several lags at once. | |
| double | MayaFlux::Kinesis::Discrete::quantile (std::span< const double > window, std::span< const double > coefs) |
| Quantile of the whole window, interpolating between ranks. | |
| double | MayaFlux::Kinesis::Discrete::radians_per_sample (double frequency, double sample_rate) noexcept |
| Radians per sample for a frequency, for building phasor_bank state. | |
| double | MayaFlux::Kinesis::Discrete::rotor_bank (std::span< const double > window, std::span< double > coefs) noexcept |
| Sum of N sinusoids advanced by complex rotation instead of a sine call. | |
| std::vector< double > | MayaFlux::Kinesis::Discrete::rotor_bank_state (std::span< const double > increments, std::span< const double > scales={}, std::span< const double > phases={}) |
| Builds the array rotor_bank reads and writes. | |
| double | MayaFlux::Kinesis::Discrete::step_sequence (std::span< const double > window, std::span< double > coefs) noexcept |
| Table of values advanced by a trigger. | |
| std::vector< double > | MayaFlux::Kinesis::Discrete::step_sequence_state (std::span< const double > values, double threshold=0.5) |
| Builds the array step_sequence reads and writes. | |
| double | MayaFlux::Kinesis::Discrete::table_lookup (std::span< const double > window, std::span< const double > coefs) noexcept |
| Transfer table indexed by the current value. | |
| double | MayaFlux::Kinesis::Discrete::table_lookup_previous (std::span< const double > window, std::span< const double > coefs) noexcept |
| table_lookup indexed by window[1] instead of window[0]. | |
| double | MayaFlux::Kinesis::Discrete::tapped_sum (std::span< const double > window, std::span< const double > coefs) noexcept |
| Sum of gain * window[lag] over (lag, gain) pairs. | |
| double | MayaFlux::Kinesis::Discrete::weighted_sum (std::span< const double > window, std::span< const double > coefs) noexcept |
| Sum of window[k] * coefs[k] over the shorter of the two. | |
| double | MayaFlux::Kinesis::Discrete::zscore (std::span< const double > window, std::span< const double > coefs) noexcept |
| How far the newest value sits from the rest of the window, in standard deviations. | |
Pure functions of a newest-first window and an array of numbers.
Every kernel has the shape double(window, coefs) and reads the window as a newest-first span: window[0] is the current value, window[k] is k steps back. In a recursive Polynomial, window[0] is the new input and window[k] is the output k steps ago. The array is whatever the kernel documents it to be, and nothing about it is a mode: the numbers in it are the behaviour.
The functions convert directly to Polynomial::CoefBufferFunction, so Polynomial(Kinesis::Discrete::weighted_sum, mode, size, weights) is a complete node. Read-only kernels take a const array; phasor_bank writes its phases back into the array and takes a mutable one.
Definition in file Kernels.hpp.