Deluge Firmware 1.3.0
Build date: 2025.04.16
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 (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)
 
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
 
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 {}
 

Protected Member Functions

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 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 (std::span< StereoSample > 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: