Deluge Firmware 1.3.0
Build date: 2025.08.09
Loading...
Searching...
No Matches
ModControllableAudio Class Referenceabstract
Inheritance diagram for ModControllableAudio:
Collaboration diagram for ModControllableAudio:

Public Member Functions

virtual void cloneFrom (ModControllableAudio *other)
void processStutter (deluge::dsp::StereoBuffer< q31_t > buffer, ParamManager *paramManager)
void processReverbSendAndVolume (deluge::dsp::StereoBuffer< q31_t > 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 (deluge::dsp::StereoBuffer< q31_t > buffer, int32_t *postFXVolume, ParamManager *paramManager)
virtual void wontBeRenderedForAWhile ()
void beginStutter (ParamManagerForTimeline *paramManager)
void endStutter (ParamManagerForTimeline *paramManager)
virtual ModFXType getModFXType ()=0
virtual bool setModFXType (ModFXType newType)
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)
virtual bool learnKnob (MIDICable *cable, ParamDescriptor paramDescriptor, uint8_t whichKnob, uint8_t modKnobMode, uint8_t midiChannel, Song *song)
bool unlearnKnobs (ParamDescriptor paramDescriptor, Song *song)
virtual void ensureInaccessibleParamPresetValuesWithoutKnobsAreZero (Song *song)
bool isBitcrushingEnabled (ParamManager *paramManager)
bool isSRREnabled (ParamManager *paramManager)
bool hasBassAdjusted (ParamManager *paramManager)
bool hasTrebleAdjusted (ParamManager *paramManager)
ModelStackWithAutoParamgetParamFromMIDIKnob (MIDIKnob &knob, ModelStackWithThreeMainThings *modelStack) override
 Check that autoParam isn't NULL, after calling this.
Public Member Functions inherited from ModControllable
virtual bool modEncoderButtonAction (uint8_t whichModEncoder, bool on, ModelStackWithThreeMainThings *modelStack)
virtual void modButtonAction (uint8_t whichModButton, bool on, ParamManagerForTimeline *paramManager)
virtual ModelStackWithAutoParamgetParamFromModEncoder (int32_t whichModEncoder, ModelStackWithThreeMainThings *modelStack, bool allowCreation=true)
virtual uint8_t * getModKnobMode ()
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)
virtual bool allowNoteTails (ModelStackWithSoundFlags *modelStack, bool disregardSampleLoop=false)
virtual void polyphonicExpressionEventOnChannelOrNote (int32_t newValue, int32_t expressionDimension, int32_t channelOrNoteNumber, MIDICharacteristic whichCharacteristic)
virtual void monophonicExpressionEvent (int32_t newValue, int32_t expressionDimension)

Static Public Member Functions

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)

Public Attributes

int32_t bassFreq {}
int32_t trebleFreq {}
int32_t withoutTrebleL
int32_t bassOnlyL
int32_t withoutTrebleR
int32_t bassOnlyR
deluge::dsp::Delay delay
StutterConfig stutterConfig
bool sampleRateReductionOnLastTime
uint8_t clippingAmount
FilterMode lpfMode
FilterMode hpfMode
FilterRoute filterRoute
ModFXType modFXType_
ModFXProcessor modfx {}
deluge::dsp::RMSFeedbackCompressor compressor
deluge::dsp::GranularProcessorgrainFX {nullptr}
uint32_t lowSampleRatePos {}
uint32_t highSampleRatePos {}
deluge::dsp::StereoSample< q31_t > lastSample
deluge::dsp::StereoSample< q31_t > grabbedSample
deluge::dsp::StereoSample< q31_t > lastGrabbedSample
SideChain sidechain
deluge::fast_vector< MIDIKnobmidi_knobs
int32_t postReverbVolumeLastTime {}

Protected Member Functions

void processFX (deluge::dsp::StereoBuffer< q31_t > buffer, ModFXType modFXType, int32_t modFXRate, int32_t modFXDepth, const deluge::dsp::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 Attributes

deluge::modulation::params::Kind unpatchedParamKind_
Protected Attributes inherited from ModControllable
deluge::modulation::params::Kind unpatchedParamKind_

Private Member Functions

void doEQ (bool doBass, bool doTreble, int32_t *inputL, int32_t *inputR, int32_t bassAmount, int32_t trebleAmount)
ModelStackWithThreeMainThingsaddNoteRowIndexAndStuff (ModelStackWithTimelineCounter *modelStack, int32_t noteRowIndex)
void switchHPFModeWithOff ()
void switchLPFModeWithOff ()
void processGrainFX (deluge::dsp::StereoBuffer< q31_t > buffer, int32_t modFXRate, int32_t modFXDepth, int32_t *postFXVolume, UnpatchedParamSet *unpatchedParams, bool anySoundComingIn, q31_t verbAmount)

Member Function Documentation

◆ getParamFromMIDIKnob()

ModelStackWithAutoParam * ModControllableAudio::getParamFromMIDIKnob ( MIDIKnob & knob,
ModelStackWithThreeMainThings * modelStack )
overridevirtual

Check that autoParam isn't NULL, after calling this.

Reimplemented from ModControllable.

Reimplemented in Sound.

◆ learnKnob()

bool ModControllableAudio::learnKnob ( MIDICable * cable,
ParamDescriptor paramDescriptor,
uint8_t whichKnob,
uint8_t modKnobMode,
uint8_t midiChannel,
Song * song )
virtual

Learna knob to a particular parameter.

Parameters
cableThe source MIDI cable, or null if learning a mod knob

Reimplemented in Sound.

Member Data Documentation

◆ unpatchedParamKind_

deluge::modulation::params::Kind ModControllableAudio::unpatchedParamKind_
protected

What kind of unpatched parameters this ModControllable uses.

This should be UNPATCHED_GLOBAL for GlobalEffectable and UNPATCHED_SOUND for Sound. If a new ModControllable subclass is


The documentation for this class was generated from the following files:
  • src/deluge/model/mod_controllable/mod_controllable_audio.h
  • src/deluge/model/mod_controllable/mod_controllable_audio.cpp