Deluge Firmware 1.3.0
Build date: 2025.07.05
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:
  • src/deluge/model/voice/voice.h
  • src/deluge/model/voice/voice.cpp