Deluge Firmware 1.3.0
Build date: 2025.07.07
Loading...
Searching...
No Matches
SoundInstrument Class Referencefinal
Inheritance diagram for SoundInstrument:
Collaboration diagram for SoundInstrument:

Public Member Functions

bool writeDataToFile (Serializer &writer, Clip *clipForSavingOutputOnly, Song *song) override
Error readFromFile (Deserializer &reader, Song *song, Clip *clip, int32_t readAutomationUpToPos) override
void cutAllSound () override
bool noteIsOn (int32_t noteCode, bool resetTimeEntered)
void renderOutput (ModelStack *modelStack, std::span< StereoSample > buffer, int32_t *reverbBuffer, int32_t reverbAmountAdjust, int32_t sideChainHitPending, bool shouldLimitDelayFeedback, bool isClipActive) override
void offerReceivedCCToLearnedParams (MIDICable &cable, uint8_t channel, uint8_t ccNumber, uint8_t value, ModelStackWithTimelineCounter *modelStack) override
bool offerReceivedPitchBendToLearnedParams (MIDICable &cable, uint8_t channel, uint8_t data1, uint8_t data2, ModelStackWithTimelineCounter *modelStack) override
 Pitch bend is available in the mod matrix as X and shouldn't be learned to params anymore (post 4.0)
Error loadAllAudioFiles (bool mayActuallyReadFiles) override
void resyncLFOs () override
ModControllabletoModControllable () override
bool setActiveClip (ModelStackWithTimelineCounter *modelStack, PgmChangeSend maySendMIDIPGMs) override
void setupPatchingForAllParamManagers (Song *song) override
void setupPatching (ModelStackWithTimelineCounter *modelStack) override
void deleteBackedUpParamManagers (Song *song) override
void polyphonicExpressionEventOnChannelOrNote (int32_t newValue, int32_t expressionDimension, int32_t channelOrNoteNumber, MIDICharacteristic whichCharacteristic) override
void monophonicExpressionEvent (int32_t newValue, int32_t expressionDimension) override
void sendNote (ModelStackWithThreeMainThings *modelStack, bool isOn, int32_t noteCode, int16_t const *mpeValues, int32_t fromMIDIChannel, uint8_t velocity, uint32_t sampleSyncLength, int32_t ticksLate, uint32_t samplesLate) override
ArpeggiatorSettingsgetArpSettings (InstrumentClip *clip=nullptr) override
bool readTagFromFile (Deserializer &reader, char const *tagName) override
void prepareForHibernationOrDeletion () override
void compensateInstrumentVolumeForResonance (ModelStackWithThreeMainThings *modelStack) override
bool isSkippingRendering () override
void loadCrucialAudioFilesOnly () override
void beenEdited (bool shouldMoveToEmptySlot=true) override
int32_t doTickForwardForArp (ModelStack *modelStack, int32_t currentPos) override
void setupWithoutActiveClip (ModelStack *modelStack) override
void getThingWithMostReverb (Sound **soundWithMostReverb, ParamManager **paramManagerWithMostReverb, GlobalEffectableForClip **globalEffectableWithMostReverb, int32_t *highestReverbAmountFound) override
uint8_t * getModKnobMode () override
ArpeggiatorBasegetArp () override
char const * getXMLTag () override
Public Member Functions inherited from Sound
virtual void setSkippingRendering (bool newSkipping)
ModFXType getModFXType () override
bool setModFXType (ModFXType newType) final
void patchedParamPresetValueChanged (uint8_t p, ModelStackWithSoundFlags *modelStack, int32_t oldValue, int32_t newValue)
void render (ModelStackWithThreeMainThings *modelStack, std::span< StereoSample > output, int32_t *reverbBuffer, int32_t sideChainHitPending, int32_t reverbAmountAdjust=134217728, bool shouldLimitDelayFeedback=false, int32_t pitchAdjust=kMaxSampleValue, SampleRecorder *recorder=nullptr)
void ensureInaccessibleParamPresetValuesWithoutKnobsAreZero (Song *song) final
void ensureInaccessibleParamPresetValuesWithoutKnobsAreZero (ModelStackWithThreeMainThings *modelStack)
void ensureInaccessibleParamPresetValuesWithoutKnobsAreZeroWithMinimalDetails (ParamManager *paramManager)
void ensureParamPresetValueWithoutKnobIsZero (ModelStackWithAutoParam *modelStack)
void ensureParamPresetValueWithoutKnobIsZeroWithMinimalDetails (ParamManager *paramManager, int32_t p)
PatchCableAcceptance maySourcePatchToParam (PatchSource s, uint8_t p, ParamManager *paramManager)
void resyncGlobalLFOs ()
int8_t getKnobPos (uint8_t p, ParamManagerForTimeline *paramManager, uint32_t timePos, TimelineCounter *counter)
int32_t getKnobPosBig (int32_t p, ParamManagerForTimeline *paramManager, uint32_t timePos, TimelineCounter *counter)
bool learnKnob (MIDICable *cable, ParamDescriptor paramDescriptor, uint8_t whichKnob, uint8_t modKnobMode, uint8_t midiChannel, Song *song) final
bool hasFilters ()
void sampleZoneChanged (MarkerType markerType, int32_t s, ModelStackWithSoundFlags *modelStack)
void setNumUnison (int32_t newNum, ModelStackWithSoundFlags *modelStack)
void setUnisonDetune (int32_t newAmount, ModelStackWithSoundFlags *modelStack)
void setUnisonStereoSpread (int32_t newAmount)
void setModulatorTranspose (int32_t m, int32_t value, ModelStackWithSoundFlags *modelStack)
void setModulatorCents (int32_t m, int32_t value, ModelStackWithSoundFlags *modelStack)
Error readFromFile (Deserializer &reader, ModelStackWithModControllable *modelStack, int32_t readAutomationUpToPos, ArpeggiatorSettings *arpSettings)
void writeToFile (Serializer &writer, bool savingSong, ParamManager *paramManager, ArpeggiatorSettings *arpSettings, const char *pathAttribute=NULL)
void voiceUnassigned (ModelStackWithSoundFlags *modelStack)
bool isSourceActiveCurrently (int32_t s, ParamManagerForTimeline *paramManager)
bool isSourceActiveEverDisregardingMissingSample (int32_t s, ParamManager *paramManager)
bool isSourceActiveEver (int32_t s, ParamManager *paramManager)
bool isNoiseActiveEver (ParamManagerForTimeline *paramManager)
void noteOn (ModelStackWithThreeMainThings *modelStack, ArpeggiatorBase *arpeggiator, int32_t noteCode, int16_t const *mpeValues, uint32_t sampleSyncLength=0, int32_t ticksLate=0, uint32_t samplesLate=0, int32_t velocity=64, int32_t fromMIDIChannel=16)
void noteOff (ModelStackWithThreeMainThings *modelStack, ArpeggiatorBase *arpeggiator, int32_t noteCode)
void allNotesOff (ModelStackWithThreeMainThings *modelStack, ArpeggiatorBase *arpeggiator)
void noteOffPostArpeggiator (ModelStackWithSoundFlags *modelStack, int32_t noteCode=-32768)
void noteOnPostArpeggiator (ModelStackWithSoundFlags *modelStack, int32_t newNoteCodeBeforeArpeggiation, int32_t newNoteCodeAfterArpeggiation, int32_t velocity, int16_t const *mpeValues, uint32_t sampleSyncLength, int32_t ticksLate, uint32_t samplesLate, int32_t fromMIDIChannel=16)
int16_t getMaxOscTranspose (InstrumentClip *clip)
int16_t getMinOscTranspose ()
void setSynthMode (SynthMode value, Song *song)
SynthMode getSynthMode () const
virtual bool isDrum ()
void setupAsSample (ParamManagerForTimeline *paramManager)
void recalculateAllVoicePhaseIncrements (ModelStackWithSoundFlags *modelStack)
Error loadAllAudioFiles (bool mayActuallyReadFiles)
bool envelopeHasSustainCurrently (int32_t e, ParamManagerForTimeline *paramManager)
bool envelopeHasSustainEver (int32_t e, ParamManagerForTimeline *paramManager)
bool renderingOscillatorSyncCurrently (ParamManagerForTimeline *paramManager)
bool renderingOscillatorSyncEver (ParamManager *paramManager)
void setupAsBlankSynth (ParamManager *paramManager, bool is_dx=false)
void setupAsDefaultSynth (ParamManager *paramManager)
void modButtonAction (uint8_t whichModButton, bool on, ParamManagerForTimeline *paramManager) final
bool modEncoderButtonAction (uint8_t whichModEncoder, bool on, ModelStackWithThreeMainThings *modelStack) final
int32_t hasAnyTimeStretchSyncing (ParamManagerForTimeline *paramManager, bool getSampleLength=false, int32_t note=0)
int32_t hasCutOrLoopModeSamples (ParamManagerForTimeline *paramManager, int32_t note, bool *anyLooping=nullptr)
bool hasCutModeSamples (ParamManagerForTimeline *paramManager)
bool allowsVeryLateNoteStart (InstrumentClip *clip, ParamManagerForTimeline *paramManager)
void fastReleaseAllVoices (ModelStackWithSoundFlags *modelStack)
void recalculatePatchingToParam (uint8_t p, ParamManagerForTimeline *paramManager)
void doneReadingFromFile ()
void compensateVolumeForResonance (ModelStackWithThreeMainThings *modelStack)
ModelStackWithAutoParamgetParamFromModEncoder (int32_t whichModEncoder, ModelStackWithThreeMainThings *modelStack, bool allowCreation=true) final
void reassessRenderSkippingStatus (ModelStackWithSoundFlags *modelStack, bool shouldJustCutModFX=false)
void getThingWithMostReverb (Sound **soundWithMostReverb, ParamManager **paramManagerWithMostReverb, GlobalEffectableForClip **globalEffectableWithMostReverb, int32_t *highestReverbAmountFound, ParamManagerForTimeline *paramManager)
void detachSourcesFromAudioFiles ()
int32_t getSmoothedPatchedParamValue (int32_t p, ParamManager &paramManager) const
void notifyValueChangeViaLPF (int32_t p, bool shouldDoParamLPF, ModelStackWithThreeMainThings const *modelStack, int32_t oldValue, int32_t newValue, bool fromAutomation)
void deleteMultiRange (int32_t s, int32_t r)
void wontBeRenderedForAWhile () override
ModelStackWithAutoParamgetParamFromMIDIKnob (MIDIKnob &knob, ModelStackWithThreeMainThings *modelStack) final
 Check that autoParam isn't NULL, after calling this.
void possiblySetupDefaultExpressionPatching (ParamManager *paramManager)
void saturate (int32_t *data, uint32_t *workingValue)
uint32_t getSyncedLFOPhaseIncrement (const LFOConfig &config)
bool hasActiveVoices () const override
 Does this sound have any active voices?
size_t numActiveVoices () const
 Get the number of active voices.
void killAllVoices () override
 Immediately ends all active voices.
const ActiveVoice & getLowestPriorityVoice () const
 Get the voice with the lowest priority.
const deluge::fast_vector< ActiveVoice > & voices () const
 Get the voices for this sound.
void freeActiveVoice (const ActiveVoice &voice, ModelStackWithSoundFlags *modelStack=nullptr, bool erase=true)
 Releases a given voice from the Sound.
bool anyNoteIsOn () override
bool allowNoteTails (ModelStackWithSoundFlags *modelStack, bool disregardSampleLoop=false) override
void prepareForHibernation () override
Public Member Functions inherited from ModControllableAudio
virtual void cloneFrom (ModControllableAudio *other)
void processStutter (std::span< StereoSample > buffer, ParamManager *paramManager)
void processReverbSendAndVolume (std::span< StereoSample > buffer, int32_t *reverbBuffer, int32_t postFXVolume, int32_t postReverbVolume, int32_t reverbSendAmount, int32_t pan=0, bool doAmplitudeIncrement=false)
void writeAttributesToFile (Serializer &writer)
void writeTagsToFile (Serializer &writer)
virtual Error readTagFromFile (Deserializer &reader, char const *tagName, ParamManagerForTimeline *paramManager, int32_t readAutomationUpToPos, ArpeggiatorSettings *arpSettings, Song *song)
void processSRRAndBitcrushing (std::span< StereoSample > buffer, int32_t *postFXVolume, ParamManager *paramManager)
void beginStutter (ParamManagerForTimeline *paramManager)
void endStutter (ParamManagerForTimeline *paramManager)
bool offerReceivedCCToLearnedParamsForClip (MIDICable &cable, uint8_t channel, uint8_t ccNumber, uint8_t value, ModelStackWithTimelineCounter *modelStack, int32_t noteRowIndex=-1)
bool offerReceivedCCToLearnedParamsForSong (MIDICable &cable, uint8_t channel, uint8_t ccNumber, uint8_t value, ModelStackWithThreeMainThings *modelStackWithThreeMainThings)
bool offerReceivedPitchBendToLearnedParams (MIDICable &cable, uint8_t channel, uint8_t data1, uint8_t data2, ModelStackWithTimelineCounter *modelStack, int32_t noteRowIndex=-1)
bool unlearnKnobs (ParamDescriptor paramDescriptor, Song *song)
bool isBitcrushingEnabled (ParamManager *paramManager)
bool isSRREnabled (ParamManager *paramManager)
bool hasBassAdjusted (ParamManager *paramManager)
bool hasTrebleAdjusted (ParamManager *paramManager)
Public Member Functions inherited from ModControllable
virtual bool isKit ()
virtual bool isSong ()
virtual bool isEditingComp ()
virtual bool valueChangedEnoughToMatter (int32_t old_value, int32_t new_value, deluge::modulation::params::Kind kind, uint32_t paramID)
virtual int32_t getKnobPosForNonExistentParam (int32_t whichModEncoder, ModelStackWithAutoParam *modelStack)
virtual ActionResult modEncoderActionForNonExistentParam (int32_t offset, int32_t whichModEncoder, ModelStackWithAutoParam *modelStack)
Public Member Functions inherited from MelodicInstrument
 MelodicInstrument (OutputType newType)
virtual void ccReceivedFromInputMIDIChannel (int32_t cc, int32_t value, ModelStackWithTimelineCounter *modelStack)
bool writeMelodicInstrumentAttributesToFile (Serializer &writer, Clip *clipForSavingOutputOnly, Song *song)
void writeMelodicInstrumentTagsToFile (Serializer &writer, Clip *clipForSavingOutputOnly, Song *song)
void offerReceivedNote (ModelStackWithTimelineCounter *modelStackWithTimelineCounter, MIDICable &cable, bool on, int32_t channel, int32_t note, int32_t velocity, bool shouldRecordNotes, bool *doingMidiThru) override
void receivedNote (ModelStackWithTimelineCounter *modelStack, MIDICable &cable, bool on, int32_t midiChannel, MIDIMatchType match, int32_t note, int32_t velocity, bool shouldRecordNotes, bool *doingMidiThru)
void offerReceivedPitchBend (ModelStackWithTimelineCounter *modelStackWithTimelineCounter, MIDICable &cable, uint8_t channel, uint8_t data1, uint8_t data2, bool *doingMidiThru) override
void receivedPitchBend (ModelStackWithTimelineCounter *modelStackWithTimelineCounter, MIDICable &cable, MIDIMatchType match, uint8_t channel, uint8_t data1, uint8_t data2, bool *doingMidiThru)
void offerReceivedCC (ModelStackWithTimelineCounter *modelStackWithTimelineCounter, MIDICable &cable, uint8_t channel, uint8_t ccNumber, uint8_t value, bool *doingMidiThru) override
void receivedCC (ModelStackWithTimelineCounter *modelStackWithTimelineCounter, MIDICable &cable, MIDIMatchType match, uint8_t channel, uint8_t ccNumber, uint8_t value, bool *doingMidiThru)
void offerReceivedAftertouch (ModelStackWithTimelineCounter *modelStackWithTimelineCounter, MIDICable &cable, int32_t channel, int32_t value, int32_t noteCode, bool *doingMidiThru) override
void receivedAftertouch (ModelStackWithTimelineCounter *modelStackWithTimelineCounter, MIDICable &cable, MIDIMatchType match, int32_t channel, int32_t value, int32_t noteCode, bool *doingMidiThru)
bool isNoteRowStillAuditioningAsLinearRecordingEnded (NoteRow *noteRow) final
void stopAnyAuditioning (ModelStack *modelStack) final
bool isNoteAuditioning (int32_t noteCode)
bool isAnyAuditioningHappening () final
void beginAuditioningForNote (ModelStack *modelStack, int32_t note, int32_t velocity, int16_t const *mpeValues, int32_t fromMIDIChannel=MIDI_CHANNEL_NONE, uint32_t sampleSyncLength=0)
void endAuditioningForNote (ModelStack *modelStack, int32_t note, int32_t velocity=kDefaultLiftValue)
virtual ModelStackWithAutoParamgetParamToControlFromInputMIDIChannel (int32_t cc, ModelStackWithThreeMainThings *modelStack)
void processParamFromInputMIDIChannel (int32_t cc, int32_t newValue, ModelStackWithTimelineCounter *modelStack) override
void polyphonicExpressionEventPossiblyToRecord (ModelStackWithTimelineCounter *modelStack, int32_t newValue, int32_t expressionDimension, int32_t channelOrNoteNumber, MIDICharacteristic whichCharacteristic)
ArpeggiatorSettingsgetArpSettings (InstrumentClip *clip=nullptr)
void offerBendRangeUpdate (ModelStack *modelStack, MIDICable &cable, int32_t channelOrZone, int32_t whichBendRange, int32_t bendSemitones) override
ModelStackWithAutoParamgetModelStackWithParam (ModelStackWithTimelineCounter *modelStack, Clip *clip, int32_t paramID, deluge::modulation::params::Kind paramKind, bool affectEntire, bool useMenuStack) override
Public Member Functions inherited from Instrument
 Instrument (OutputType newType)
bool matchesPreset (OutputType otherType, int32_t channel, int32_t channelSuffix, char const *otherName, char const *otherPath) override
virtual bool doAnySoundsUseCC (uint8_t channel, uint8_t ccNumber, uint8_t value)
void deleteAnyInstancesOfClip (InstrumentClip *clip)
char const * getNameXMLTag () override
virtual char const * getSlotXMLTag ()
virtual char const * getSubSlotXMLTag ()
Public Member Functions inherited from Output
 Output (OutputType newType)
ClipgetActiveClip () const
void pickAnActiveClipForArrangementPos (ModelStack *modelStack, int32_t arrangementPos, PgmChangeSend maySendMIDIPGMs)
void pickAnActiveClipIfPossible (ModelStack *modelStack, bool searchSessionClipsIfNeeded=true, PgmChangeSend maySendMIDIPGMs=PgmChangeSend::ONCE, bool setupWithoutActiveClipIfNeeded=true)
void detachActiveClip (Song *currentSong)
bool clipHasInstance (Clip *clip)
bool isEmpty (bool displayPopup=true)
void clipLengthChanged (Clip *clip, int32_t oldLength)
ClipgetClipFromName (String *name)
 If there's a clip matching the name on this output, returns it.
void endAnyArrangementRecording (Song *song, int32_t actualEndPos, uint32_t timeRemainder)
virtual bool wantsToBeginArrangementRecording ()
void writeToFile (Clip *clipForSavingOutputOnly, Song *song)
virtual void sendMIDIPGM ()
virtual ParamManagergetParamManager (Song *song)
Error possiblyBeginArrangementRecording (Song *song, int32_t newPos)
void endArrangementPlayback (Song *song, int32_t actualEndPos, uint32_t timeRemainder)
virtual bool needsEarlyPlayback () const
bool hasRecorder ()
bool shouldRenderInSong ()
void setRenderingToAudioOutput (bool monitoring, Output *output)
 disable rendering to the song buffer if this clip is the input to an audio output that's monitoring
bool addRecorder (SampleRecorder *newRecorder)
bool removeRecorder ()
OutputgetOutputRecordingThis ()

Public Attributes

ArpeggiatorSettings defaultArpSettings
Public Attributes inherited from Sound
Patcher patcher
ParamLPF paramLPF {}
Source sources [kNumSources]
std::array< int32_t, deluge::modulation::params::kNumParams - deluge::modulation::params::FIRST_GLOBAL > paramFinalValues {}
std::array< int32_t, util::to_underlying(kFirstLocalSource)> globalSourceValues {}
uint32_t sourcesChanged {}
LFO globalLFO1
LFO globalLFO3
LFOConfig lfoConfig [LFO_COUNT]
bool invertReversed {}
ModKnob modKnobs [kNumModButtons][kNumPhysicalModKnobs]
int32_t sideChainSendLevel = 0
PolyphonyMode polyphonic = PolyphonyMode::POLY
uint8_t maxVoiceCount = 8
int16_t transpose = 0
uint8_t numUnison = 1
int8_t unisonDetune = 8
uint8_t unisonStereoSpread = 0
uint8_t outputMidiChannel = MIDI_CHANNEL_NONE
uint8_t outputMidiNoteForDrum = MIDI_NOTE_NONE
int16_t modulatorTranspose [kNumModulators] = {0, -12}
int8_t modulatorCents [kNumModulators] = {0, 0}
PhaseIncrementFineTuner modulatorTransposers [kNumModulators]
PhaseIncrementFineTuner unisonDetuners [kMaxNumVoicesUnison]
int32_t unisonPan [kMaxNumVoicesUnison] {}
SynthMode synthMode = SynthMode::SUBTRACTIVE
bool modulator1ToModulator0 = false
int32_t volumeNeutralValueForUnison {0}
int32_t lastNoteCode = std::numeric_limits<int32_t>::min()
bool oscillatorSync = false
VoicePriority voicePriority = VoicePriority::MEDIUM
bool skippingRendering = true
std::bitset< kNumExpressionDimensions > expressionSourcesChangedAtSynthLevel {0}
std::array< int32_t, kNumExpressionDimensions > monophonicExpressionValues {}
std::array< uint32_t, kNumSources > oscRetriggerPhase {}
std::array< uint32_t, kNumModulators > modulatorRetriggerPhase {}
uint32_t timeStartedSkippingRenderingModFX {0}
uint32_t timeStartedSkippingRenderingLFO {0}
uint32_t timeStartedSkippingRenderingArp {0}
uint32_t startSkippingRenderingAtTime = 0
Public Attributes inherited from ModControllableAudio
int32_t bassFreq {}
int32_t trebleFreq {}
int32_t withoutTrebleL
int32_t bassOnlyL
int32_t withoutTrebleR
int32_t bassOnlyR
Delay delay
StutterConfig stutterConfig
bool sampleRateReductionOnLastTime
uint8_t clippingAmount
FilterMode lpfMode
FilterMode hpfMode
FilterRoute filterRoute
ModFXType modFXType_
ModFXProcessor modfx {}
RMSFeedbackCompressor compressor
GranularProcessorgrainFX {nullptr}
uint32_t lowSampleRatePos {}
uint32_t highSampleRatePos {}
StereoSample lastSample
StereoSample grabbedSample
StereoSample lastGrabbedSample
SideChain sidechain
deluge::fast_vector< MIDIKnobmidi_knobs
int32_t postReverbVolumeLastTime {}
Public Attributes inherited from MelodicInstrument
Arpeggiator arpeggiator
deluge::fast_map< int16_t, EarlyNoteInfoearlyNotes
deluge::fast_map< int16_t, EarlyNoteInfonotesAuditioned
Public Attributes inherited from Instrument
String dirPath
bool editedByUser = false
bool existsOnCard = false
bool shouldHibernate {true}
uint8_t defaultVelocity = FlashStorage::defaultVelocity
LearnedMIDI midiInput
Public Attributes inherited from Output
ClipInstanceVector clipInstances
String name
Outputnext
const OutputType type
bool mutedInArrangementMode
bool mutedInArrangementModeBeforeStemExport
bool exportStem
bool soloingInArrangementMode
bool inValidState
bool wasCreatedForAutoOverdub
bool armedForRecording
int16_t colour {0}
uint8_t modKnobMode
bool alreadyGotItsNewClip
bool isGettingSoloingClip
bool nextClipFoundShouldGetArmed
bool recordingInArrangement

Additional Inherited Members

Public Types inherited from Sound
using ActiveVoice = AudioEngine::VoicePool::pointer_type
Static Public Member Functions inherited from Sound
static void writeParamsToFile (Serializer &writer, ParamManager *paramManager, bool writeAutomation)
static void readParamsFromFile (Deserializer &reader, ParamManagerForTimeline *paramManager, int32_t readAutomationUpToPos)
static bool readParamTagFromFile (Deserializer &reader, char const *tagName, ParamManagerForTimeline *paramManager, int32_t readAutomationUpToPos)
static void initParams (ParamManager *paramManager)
static Error createParamManagerForLoading (ParamManagerForTimeline *paramManager)
Static Public Member Functions inherited from ModControllableAudio
static void writeParamAttributesToFile (Serializer &writer, ParamManager *paramManager, bool writeAutomation, int32_t *valuesForOverride=nullptr)
static void writeParamTagsToFile (Serializer &writer, ParamManager *paramManager, bool writeAutomation, int32_t *valuesForOverride=nullptr)
static bool readParamTagFromFile (Deserializer &reader, char const *tagName, ParamManagerForTimeline *paramManager, int32_t readAutomationUpToPos)
static void initParams (ParamManager *paramManager)
Protected Member Functions inherited from ModControllableAudio
void processFX (std::span< StereoSample > buffer, ModFXType modFXType, int32_t modFXRate, int32_t modFXDepth, const Delay::State &delayWorkingState, int32_t *postFXVolume, ParamManager *paramManager, bool anySoundComingIn, q31_t reverbSendAmount)
void switchDelayPingPong ()
void switchDelayAnalog ()
void switchDelaySyncType ()
void switchDelaySyncLevel ()
void switchLPFMode ()
void switchHPFMode ()
void clearModFXMemory ()
char const * getFilterTypeDisplayName (FilterType currentFilterType)
char const * getFilterModeDisplayName (FilterType currentFilterType)
char const * getLPFModeDisplayName ()
char const * getHPFModeDisplayName ()
char const * getDelayTypeDisplayName ()
char const * getDelayPingPongStatusDisplayName ()
char const * getDelaySyncTypeDisplayName ()
void getDelaySyncLevelDisplayName (char *displayName)
char const * getSidechainDisplayName ()
void displayFilterSettings (bool on, FilterType currentFilterType)
void displayDelaySettings (bool on)
void displaySidechainAndReverbSettings (bool on)
void displayOtherModKnobSettings (uint8_t whichModButton, bool on)
 displays names of parameters assigned to gold knobs
bool enableGrain ()
void disableGrain ()
Protected Member Functions inherited from Instrument
ClipcreateNewClipForArrangementRecording (ModelStack *modelStack) final
Error setupDefaultAudioFileDir ()
Protected Member Functions inherited from Output
virtual void clearRecordingFrom ()
Protected Attributes inherited from ModControllableAudio
deluge::modulation::params::Kind unpatchedParamKind_
Protected Attributes inherited from ModControllable
deluge::modulation::params::Kind unpatchedParamKind_
Protected Attributes inherited from Output
bool recorderIsEchoing {false}
OutputoutputRecordingThisOutput {nullptr}
ClipactiveClip {nullptr}
SampleRecorderrecorder {nullptr}

Member Function Documentation

◆ beenEdited()

void SoundInstrument::beenEdited ( bool shouldMoveToEmptySlot = true)
overridevirtual

Reimplemented from Instrument.

◆ compensateInstrumentVolumeForResonance()

void SoundInstrument::compensateInstrumentVolumeForResonance ( ModelStackWithThreeMainThings * modelStack)
overridevirtual

Reimplemented from Instrument.

◆ cutAllSound()

void SoundInstrument::cutAllSound ( )
overridevirtual

Reimplemented from Output.

◆ deleteBackedUpParamManagers()

void SoundInstrument::deleteBackedUpParamManagers ( Song * song)
overridevirtual

Reimplemented from Output.

◆ doTickForwardForArp()

int32_t SoundInstrument::doTickForwardForArp ( ModelStack * modelStack,
int32_t currentPos )
overridevirtual

Reimplemented from Output.

◆ getArp()

ArpeggiatorBase * SoundInstrument::getArp ( )
overridevirtual

Implements Sound.

◆ getArpSettings()

ArpeggiatorSettings * SoundInstrument::getArpSettings ( InstrumentClip * clip = nullptr)
overridevirtual

Implements Sound.

◆ getModKnobMode()

uint8_t * SoundInstrument::getModKnobMode ( )
inlineoverridevirtual

Reimplemented from ModControllable.

◆ getThingWithMostReverb()

void SoundInstrument::getThingWithMostReverb ( Sound ** soundWithMostReverb,
ParamManager ** paramManagerWithMostReverb,
GlobalEffectableForClip ** globalEffectableWithMostReverb,
int32_t * highestReverbAmountFound )
overridevirtual

Reimplemented from Output.

◆ getXMLTag()

char const * SoundInstrument::getXMLTag ( )
inlineoverridevirtual

Implements Output.

◆ isSkippingRendering()

bool SoundInstrument::isSkippingRendering ( )
inlineoverridevirtual

Reimplemented from Output.

◆ loadAllAudioFiles()

Error SoundInstrument::loadAllAudioFiles ( bool mayActuallyReadFiles)
overridevirtual

Reimplemented from Output.

◆ loadCrucialAudioFilesOnly()

void SoundInstrument::loadCrucialAudioFilesOnly ( )
overridevirtual

Reimplemented from Output.

◆ monophonicExpressionEvent()

void SoundInstrument::monophonicExpressionEvent ( int32_t newValue,
int32_t expressionDimension )
overridevirtual

Reimplemented from ModControllable.

◆ offerReceivedCCToLearnedParams()

void SoundInstrument::offerReceivedCCToLearnedParams ( MIDICable & cable,
uint8_t channel,
uint8_t ccNumber,
uint8_t value,
ModelStackWithTimelineCounter * modelStack )
inlineoverridevirtual

Reimplemented from Output.

◆ offerReceivedPitchBendToLearnedParams()

bool SoundInstrument::offerReceivedPitchBendToLearnedParams ( MIDICable & cable,
uint8_t channel,
uint8_t data1,
uint8_t data2,
ModelStackWithTimelineCounter * modelStack )
inlineoverridevirtual

Pitch bend is available in the mod matrix as X and shouldn't be learned to params anymore (post 4.0)

Reimplemented from Output.

◆ polyphonicExpressionEventOnChannelOrNote()

void SoundInstrument::polyphonicExpressionEventOnChannelOrNote ( int32_t newValue,
int32_t expressionDimension,
int32_t channelOrNoteNumber,
MIDICharacteristic whichCharacteristic )
overridevirtual

Reimplemented from Sound.

◆ prepareForHibernationOrDeletion()

void SoundInstrument::prepareForHibernationOrDeletion ( )
overridevirtual

Reimplemented from Output.

◆ readFromFile()

Error SoundInstrument::readFromFile ( Deserializer & reader,
Song * song,
Clip * clip,
int32_t readAutomationUpToPos )
overridevirtual

Reimplemented from Output.

◆ readTagFromFile()

bool SoundInstrument::readTagFromFile ( Deserializer & reader,
char const * tagName )
overridevirtual

Implements Sound.

◆ renderOutput()

void SoundInstrument::renderOutput ( ModelStack * modelStack,
std::span< StereoSample > buffer,
int32_t * reverbBuffer,
int32_t reverbAmountAdjust,
int32_t sideChainHitPending,
bool shouldLimitDelayFeedback,
bool isClipActive )
overridevirtual

Implements Output.

◆ resyncLFOs()

void SoundInstrument::resyncLFOs ( )
overridevirtual

Reimplemented from Output.

◆ sendNote()

void SoundInstrument::sendNote ( ModelStackWithThreeMainThings * modelStack,
bool isOn,
int32_t noteCode,
int16_t const * mpeValues,
int32_t fromMIDIChannel,
uint8_t velocity,
uint32_t sampleSyncLength,
int32_t ticksLate,
uint32_t samplesLate )
overridevirtual

Implements MelodicInstrument.

◆ setActiveClip()

bool SoundInstrument::setActiveClip ( ModelStackWithTimelineCounter * modelStack,
PgmChangeSend maySendMIDIPGMs )
overridevirtual

Reimplemented from MelodicInstrument.

◆ setupPatching()

void SoundInstrument::setupPatching ( ModelStackWithTimelineCounter * modelStack)
overridevirtual

Reimplemented from Instrument.

◆ setupPatchingForAllParamManagers()

void SoundInstrument::setupPatchingForAllParamManagers ( Song * song)
overridevirtual

Reimplemented from Sound.

◆ setupWithoutActiveClip()

void SoundInstrument::setupWithoutActiveClip ( ModelStack * modelStack)
overridevirtual

Reimplemented from Output.

◆ toModControllable()

ModControllable * SoundInstrument::toModControllable ( )
overridevirtual

Reimplemented from Output.

◆ writeDataToFile()

bool SoundInstrument::writeDataToFile ( Serializer & writer,
Clip * clipForSavingOutputOnly,
Song * song )
overridevirtual

Reimplemented from Instrument.


The documentation for this class was generated from the following files:
  • src/deluge/processing/sound/sound_instrument.h
  • src/deluge/processing/sound/sound_instrument.cpp