![]() |
Deluge Firmware 1.3.0
Build date: 2025.04.16
|
#include <GranularProcessor.h>
Public Member Functions | |
GranularProcessor (const GranularProcessor &other) | |
int32_t | getSamplesToShutdown () const |
void | startSkippingRendering () |
allows the buffer to be stolen | |
void | processGrainFX (std::span< StereoSample > buffer, int32_t grainRate, int32_t grainMix, int32_t grainDensity, int32_t pitchRandomness, int32_t *postFXVolume, bool anySoundComingIn, float tempoBPM, q31_t reverbAmount) |
preset is currently converted from a param to a 0-4 preset inside the grain, which is probably not great | |
void | clearGrainFXBuffer () |
void | grainBufferStolen () |
Private Member Functions | |
void | setupGrainFX (int32_t grainRate, int32_t grainMix, int32_t grainDensity, int32_t pitchRandomness, int32_t *postFXVolume, float timePerInternalTick) |
StereoSample | processOneGrainSample (StereoSample currentSample) |
void | getBuffer () |
void | setWrapsToShutdown () |
void | setupGrainsIfNeeded (int32_t writeIndex) |
Private Attributes | |
uint32_t | bufferWriteIndex |
int32_t | _grainSize |
int32_t | _grainRate |
int32_t | _grainShift |
int32_t | _grainFeedbackVol |
int32_t | _grainVol |
int32_t | _grainDryVol |
int32_t | _pitchRandomness |
bool | grainLastTickCountIsZero |
bool | grainInitialized |
Grain | grains [8] |
int32_t | wrapsToShutdown |
GrainBuffer * | grainBuffer |
int32_t | _densityKnobPos {0} |
int32_t | _rateKnobPos {0} |
int32_t | _mixKnobPos {0} |
deluge::dsp::filter::BasicFilterComponent | lpf_l {} |
deluge::dsp::filter::BasicFilterComponent | lpf_r {} |
bool | tempoSync {true} |
bool | bufferFull {false} |
The granular processor is the config and the grain states. It will seperately manage a 4mb stealable buffer for its memory