Deluge Firmware 1.3.0
Build date: 2025.04.16
Loading...
Searching...
No Matches
Voice Class Referencefinal
Collaboration diagram for Voice:

Public Member Functions

 Voice (Sound &sound)
 
uint32_t getLocalLFOPhaseIncrement (LFO_ID lfoId, deluge::modulation::params::Local param)
 
void setAsUnassigned (ModelStackWithSoundFlags *modelStack, bool deletingSong=false)
 
bool render (ModelStackWithSoundFlags *modelStack, int32_t *soundBuffer, int32_t numSamples, bool soundRenderingInStereo, bool applyingPanAtVoiceLevel, uint32_t sourcesChanged, bool doLPF, bool doHPF, int32_t externalPitchAdjust)
 
void calculatePhaseIncrements (ModelStackWithSoundFlags *modelStack)
 
bool sampleZoneChanged (ModelStackWithSoundFlags *modelStack, int32_t s, MarkerType markerType)
 
bool noteOn (ModelStackWithSoundFlags *modelStack, int32_t newNoteCodeBeforeArpeggiation, int32_t newNoteCodeAfterArpeggiation, uint8_t velocity, uint32_t newSampleSyncLength, int32_t ticksLate, uint32_t samplesLate, bool resetEnvelopes, int32_t fromMIDIChannel, const int16_t *mpeValues)
 
void noteOff (ModelStackWithSoundFlags *modelStack, bool allowReleaseStage=true)
 
void randomizeOscPhases (const Sound &sound)
 
void changeNoteCode (ModelStackWithSoundFlags *modelStack, int32_t newNoteCodeBeforeArpeggiation, int32_t newNoteCodeAfterArpeggiation, int32_t newInputMIDIChannel, const int16_t *newMPEValues)
 
bool hasReleaseStage ()
 
void unassignStuff (bool deletingSong)
 
uint32_t getPriorityRating () const
 
void expressionEventImmediate (const Sound &sound, int32_t voiceLevelValue, int32_t s)
 
void expressionEventSmooth (int32_t newValue, int32_t s)
 
bool doFastRelease (uint32_t releaseIncrement=4096)
 
bool doImmediateRelease ()
 
bool forceNormalRelease ()
 
bool speedUpRelease ()
 
std::strong_ordering operator<=> (const Voice &other) const
 

Public Attributes

Patcher patcher
 
std::array< VoiceUnisonPart, kMaxNumVoicesUnison > unisonParts
 
std::array< VoiceSamplePlaybackGuide, kNumSources > guides
 
Soundsound
 
std::array< int32_t, deluge::modulation::params::LOCAL_LASTparamFinalValues
 
std::array< int32_t, kNumPatchSources > sourceValues
 
std::bitset< kNumExpressionDimensions > expressionSourcesCurrentlySmoothing
 
std::bitset< kNumExpressionDimensions > expressionSourcesFinalValueChanged
 
std::array< int32_t, kNumExpressionDimensions > localExpressionSourceValuesBeforeSmoothing
 
std::array< Envelope, kNumEnvelopes > envelopes
 
LFO lfo2
 
LFO lfo4
 
dsp::filter::FilterSet filterSet
 
std::array< int32_t, 2 > inputCharacteristics
 
int32_t noteCodeAfterArpeggiation
 
uint32_t portaEnvelopePos
 
int32_t portaEnvelopeMaxAmplitude
 
std::array< uint32_t, 2 > lastSaturationTanHWorkingValue
 
int32_t overallOscAmplitudeLastTime
 
std::array< int32_t, kNumSources > sourceAmplitudesLastTime
 
std::array< int32_t, kNumModulators > modulatorAmplitudeLastTime
 
std::array< uint32_t, kNumSources > sourceWaveIndexesLastTime
 
int32_t filterGainLastTime
 
bool doneFirstRender
 
bool previouslyIgnoredNoteOff
 
uint32_t orderSounded
 
int32_t overrideAmplitudeEnvelopeReleaseRate
 
bool justCreated {false}
 

Private Member Functions

void renderBasicSource (Sound &sound, ParamManagerForTimeline *paramManager, int32_t s, int32_t *oscBuffer, int32_t numSamples, bool stereoBuffer, int32_t sourceAmplitude, bool *unisonPartBecameInactive, int32_t overallPitchAdjust, bool doOscSync, uint32_t *oscSyncPos, uint32_t *oscSyncPhaseIncrements, int32_t amplitudeIncrement, uint32_t *getPhaseIncrements, bool getOutAfterPhaseIncrements, int32_t waveIndexIncrement)
 
void renderSineWaveWithFeedback (int32_t *thisSample, int32_t numSamples, uint32_t *phase, int32_t amplitude, uint32_t phaseIncrement, int32_t feedbackAmount, int32_t *lastFeedbackValue, bool add, int32_t amplitudeIncrement)
 
void renderFMWithFeedback (int32_t *thisSample, int32_t numSamples, int32_t *fmBuffer, uint32_t *phase, int32_t amplitude, uint32_t phaseIncrement, int32_t feedbackAmount, int32_t *lastFeedbackValue, int32_t amplitudeIncrement)
 
void renderFMWithFeedbackAdd (int32_t *thisSample, int32_t numSamples, int32_t *fmBuffer, uint32_t *phase, int32_t amplitude, uint32_t phaseIncrement, int32_t feedbackAmount, int32_t *lastFeedbackValue, int32_t amplitudeIncrement)
 
bool areAllUnisonPartsInactive (ModelStackWithSoundFlags &modelStack) const
 
void setupPorta (const Sound &sound)
 
int32_t combineExpressionValues (const Sound &sound, int32_t expressionDimension) const
 

Static Private Member Functions

static bool adjustPitch (uint32_t &phaseIncrement, int32_t adjustment)
 

Member Function Documentation

◆ doFastRelease()

bool Voice::doFastRelease ( uint32_t releaseIncrement = 4096)

Release immediately with provided release rate Returns whether voice should still be left active

◆ doImmediateRelease()

bool Voice::doImmediateRelease ( )

Sets envelope to off (will interpolate through this render window). Returns whether voice should still be left active

Member Data Documentation

◆ paramFinalValues

std::array<int32_t, deluge::modulation::params::LOCAL_LAST> Voice::paramFinalValues

This is just for the local params, specific to this Voice only


The documentation for this class was generated from the following files: