Deluge Firmware 1.3.0
Build date: 2025.04.16
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: