Sine oscillator based on an efficient recursion equation. More...
#include <Oscillator.h>
Public Member Functions | |
| SineR (Tv frq=440, Tv amp=1, Tv phs=0) | |
| Tv | freq () const |
| Get frequency. | |
| void | ampPhase (Tv a=1, Tv p=0) |
| Set amplitude and phase. | |
| void | freq (const Tv &v) |
| Set unit frequency. | |
| void | set (Tv frq, Tv amp, Tv phs=0) |
| Set all control parameters. | |
| Tv | operator[] (uint32_t i) const |
| Array get; generates next element. | |
| Tv & | operator[] (uint32_t i) |
| Array set; sets current value. | |
| Tv | operator() () const |
| Generate next value. | |
| Tv | amp () const |
| Get amplitude. | |
| RSin & | amp (const Tv &v) |
| Set amplitude. | |
| Tv | phase () const |
| Get unit phase. | |
| RSin & | phase (const Tv &v) |
| Set unit phase. | |
| RSin & | reset () |
| Reset state from stored parameters. | |
| RSin & | set (const Tv &frq, const Tv &phs, const Tv &=Tv(1)) |
| Set parameters from unit freq, phase, and amplitude. | |
Public Attributes | |
| Tv | mul |
| Multiplication factor. | |
| Tv | val |
| Value. | |
Sine oscillator based on an efficient recursion equation.
This oscillator is based on a recursion equation requiring only one multiply and add per sample computation. While calculation is fast, frequency and phase updates are rather expensive and 64-bit precision is required to prevent growing or decaying in amplitude over time. This generator is ideal in situations where a stationary sinusoid is all that is required, e.g. a grain or modulator.
| SineR | ( | Tv | frq = 440, |
| Tv | amp = 1, |
||
| Tv | phs = 0 |
||
| ) |
| [in] | frq | Frequency |
| [in] | amp | Amplitude |
| [in] | phs | Phase in [0, 1) |