Deluge Firmware
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
SoundDrum Class Referencefinal

#include <sounddrum.h>

Inheritance diagram for SoundDrum:
Inheritance graph
Collaboration diagram for SoundDrum:
Collaboration graph

Public Member Functions

 SoundDrum ()
 
bool isDrum ()
 
bool allowNoteTails (ModelStackWithSoundFlags *modelStack, bool disregardSampleLoop=false)
 
bool anyNoteIsOn ()
 
bool hasAnyVoices ()
 
void noteOn (ModelStackWithThreeMainThings *modelStack, uint8_t velocity, Kit *kit, int16_t const *mpeValues, int fromMIDIChannel=MIDI_CHANNEL_NONE, uint32_t sampleSyncLength=0, int32_t ticksLate=0, uint32_t samplesLate=0)
 
void noteOff (ModelStackWithThreeMainThings *modelStack, int velocity)
 
void unassignAllVoices ()
 
void setupPatchingForAllParamManagers (Song *song)
 
bool readTagFromFile (char const *tagName)
 
int loadAllSamples (bool mayActuallyReadFiles)
 
void prepareForHibernation ()
 
void writeToFile (bool savingSong, ParamManager *paramManager)
 
void getName (char *buffer)
 
int readFromFile (Song *song, Clip *clip, int32_t readAutomationUpToPos)
 
void choke (ModelStackWithSoundFlags *modelStack)
 
void setSkippingRendering (bool newSkipping)
 
uint8_t * getModKnobMode ()
 
void drumWontBeRenderedForAWhile ()
 
ModControllabletoModControllable ()
 
void expressionEvent (int newValue, int whichExpressionDimension)
 
void polyphonicExpressionEventOnChannelOrNote (int newValue, int whichExpressionDimension, int channelOrNoteNumber, int whichCharacteristic)
 
ArpeggiatorBasegetArp ()
 
ArpeggiatorSettingsgetArpSettings (InstrumentClip *clip=NULL)
 
- Public Member Functions inherited from Sound
 Sound ()
 
virtual ArpeggiatorSettingsgetArpSettings (InstrumentClip *clip=NULL)=0
 
virtual void setSkippingRendering (bool newSkipping)
 
bool setModFXType (int newType) final
 
void patchedParamPresetValueChanged (uint8_t p, ModelStackWithSoundFlags *modelStack, int32_t oldValue, int32_t newValue)
 
void render (ModelStackWithThreeMainThings *modelStack, StereoSample *outputBuffer, int numSamples, int32_t *reverbBuffer, int32_t sideChainHitPending, int32_t reverbAmountAdjust=134217728, bool shouldLimitDelayFeedback=false, int32_t pitchAdjust=16777216)
 
void unassignAllVoices ()
 
void ensureInaccessibleParamPresetValuesWithoutKnobsAreZero (Song *song) final
 
void ensureInaccessibleParamPresetValuesWithoutKnobsAreZero (ModelStackWithThreeMainThings *modelStack)
 
void ensureInaccessibleParamPresetValuesWithoutKnobsAreZeroWithMinimalDetails (ParamManager *paramManager)
 
void ensureParamPresetValueWithoutKnobIsZero (ModelStackWithAutoParam *modelStack)
 
void ensureParamPresetValueWithoutKnobIsZeroWithMinimalDetails (ParamManager *paramManager, int p)
 
uint8_t maySourcePatchToParam (uint8_t s, uint8_t p, ParamManager *paramManager)
 
void setLFOGlobalSyncLevel (uint8_t newLevel)
 
void resyncGlobalLFO ()
 
void setLFOGlobalWave (uint8_t newWave)
 
int8_t getKnobPos (uint8_t p, ParamManagerForTimeline *paramManager, uint32_t timePos, TimelineCounter *counter)
 
int32_t getKnobPosBig (int p, ParamManagerForTimeline *paramManager, uint32_t timePos, TimelineCounter *counter)
 
bool learnKnob (MIDIDevice *fromDevice, ParamDescriptor paramDescriptor, uint8_t whichKnob, uint8_t modKnobMode, uint8_t midiChannel, Song *song) final
 
bool hasFilters ()
 
void sampleZoneChanged (int markerType, int s, ModelStackWithSoundFlags *modelStack)
 
void setNumUnison (int newNum, ModelStackWithSoundFlags *modelStack)
 
void setUnisonDetune (int newAmount, ModelStackWithSoundFlags *modelStack)
 
void setModulatorTranspose (int m, int value, ModelStackWithSoundFlags *modelStack)
 
void setModulatorCents (int m, int value, ModelStackWithSoundFlags *modelStack)
 
int readFromFile (ModelStackWithModControllable *modelStack, int32_t readAutomationUpToPos, ArpeggiatorSettings *arpSettings)
 
void writeToFile (bool savingSong, ParamManager *paramManager, ArpeggiatorSettings *arpSettings)
 
bool allowNoteTails (ModelStackWithSoundFlags *modelStack, bool disregardSampleLoop=false)
 
void voiceUnassigned (ModelStackWithVoice *modelStack)
 
bool isSourceActiveCurrently (int s, ParamManagerForTimeline *paramManager)
 
bool isSourceActiveEverDisregardingMissingSample (int s, ParamManager *paramManager)
 
bool isSourceActiveEver (int s, ParamManager *paramManager)
 
bool isNoiseActiveEver (ParamManagerForTimeline *paramManager)
 
void noteOn (ModelStackWithThreeMainThings *modelStack, ArpeggiatorBase *arpeggiator, int noteCode, int16_t const *mpeValues, uint32_t sampleSyncLength=0, int32_t ticksLate=0, uint32_t samplesLate=0, int velocity=64, int fromMIDIChannel=16)
 
void allNotesOff (ModelStackWithThreeMainThings *modelStack, ArpeggiatorBase *arpeggiator)
 
void noteOffPostArpeggiator (ModelStackWithSoundFlags *modelStack, int noteCode=-32768)
 
void noteOnPostArpeggiator (ModelStackWithSoundFlags *modelStack, int newNoteCodeBeforeArpeggiation, int newNoteCodeAfterArpeggiation, int velocity, int16_t const *mpeValues, uint32_t sampleSyncLength, int32_t ticksLate, uint32_t samplesLate, int fromMIDIChannel=16)
 
int16_t getMaxOscTranspose (InstrumentClip *clip)
 
int16_t getMinOscTranspose ()
 
void setSynthMode (uint8_t value, Song *song)
 
uint8_t getSynthMode ()
 
bool anyNoteIsOn ()
 
virtual bool isDrum ()
 
void setupAsSample (ParamManagerForTimeline *paramManager)
 
void recalculateAllVoicePhaseIncrements (ModelStackWithSoundFlags *modelStack)
 
int loadAllAudioFiles (bool mayActuallyReadFiles)
 
bool envelopeHasSustainCurrently (int e, ParamManagerForTimeline *paramManager)
 
bool envelopeHasSustainEver (int e, ParamManagerForTimeline *paramManager)
 
bool renderingOscillatorSyncCurrently (ParamManagerForTimeline *paramManager)
 
bool renderingOscillatorSyncEver (ParamManager *paramManager)
 
bool hasAnyVoices ()
 
void setupAsBlankSynth (ParamManager *paramManager)
 
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, int note=0)
 
int32_t hasCutOrLoopModeSamples (ParamManagerForTimeline *paramManager, int note, bool *anyLooping=NULL)
 
bool hasCutModeSamples (ParamManagerForTimeline *paramManager)
 
bool allowsVeryLateNoteStart (InstrumentClip *clip, ParamManagerForTimeline *paramManager)
 
void fastReleaseAllVoices (ModelStackWithSoundFlags *modelStack)
 
void recalculatePatchingToParam (uint8_t p, ParamManagerForTimeline *paramManager)
 
void doneReadingFromFile ()
 
virtual void setupPatchingForAllParamManagers (Song *song)
 
void compensateVolumeForResonance (ModelStackWithThreeMainThings *modelStack)
 
ModelStackWithAutoParamgetParamFromModEncoder (int 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)
 
virtual bool readTagFromFile (char const *tagName)=0
 
void detachSourcesFromAudioFiles ()
 
void confirmNumVoices (char const *error)
 
int32_t getSmoothedPatchedParamValue (int p, ParamManager *paramManager)
 
void notifyValueChangeViaLPF (int p, bool shouldDoParamLPF, ModelStackWithThreeMainThings const *modelStack, int32_t oldValue, int32_t newValue, bool fromAutomation)
 
void deleteMultiRange (int s, int r)
 
void prepareForHibernation ()
 
void wontBeRenderedForAWhile ()
 
char const * paramToString (uint8_t param) final
 
int stringToParam (char const *string) final
 
ModelStackWithAutoParamgetParamFromMIDIKnob (MIDIKnob *knob, ModelStackWithThreeMainThings *modelStack) final
 
virtual ArpeggiatorBasegetArp ()=0
 
void possiblySetupDefaultExpressionPatching (ParamManager *paramManager)
 
void saturate (int32_t *data, uint32_t *workingValue)
 
- Public Member Functions inherited from ModControllableAudio
 ModControllableAudio ()
 
virtual ~ModControllableAudio ()
 
virtual void cloneFrom (ModControllableAudio *other)
 
void processStutter (StereoSample *buffer, int numSamples, ParamManager *paramManager)
 
void processReverbSendAndVolume (StereoSample *buffer, int numSamples, int32_t *reverbBuffer, int32_t postFXVolume, int32_t postReverbVolume, int32_t reverbSendAmount, int32_t pan=0, bool doAmplitudeIncrement=false, int32_t amplitudeIncrement=0)
 
void writeAttributesToFile ()
 
void writeTagsToFile ()
 
int readTagFromFile (char const *tagName, ParamManagerForTimeline *paramManager, int32_t readAutomationUpToPos, Song *song)
 
void processSRRAndBitcrushing (StereoSample *buffer, int numSamples, int32_t *postFXVolume, ParamManager *paramManager)
 
void wontBeRenderedForAWhile ()
 
void endStutter (ParamManagerForTimeline *paramManager)
 
virtual bool setModFXType (int newType)
 
bool offerReceivedCCToLearnedParams (MIDIDevice *fromDevice, uint8_t channel, uint8_t ccNumber, uint8_t value, ModelStackWithTimelineCounter *modelStack, int noteRowIndex=-1)
 
bool offerReceivedPitchBendToLearnedParams (MIDIDevice *fromDevice, uint8_t channel, uint8_t data1, uint8_t data2, ModelStackWithTimelineCounter *modelStack, int noteRowIndex=-1)
 
virtual bool learnKnob (MIDIDevice *fromDevice, ParamDescriptor paramDescriptor, uint8_t whichKnob, uint8_t modKnobMode, uint8_t midiChannel, Song *song)
 
bool unlearnKnobs (ParamDescriptor paramDescriptor, Song *song)
 
virtual void ensureInaccessibleParamPresetValuesWithoutKnobsAreZero (Song *song)
 
virtual char const * paramToString (uint8_t param)
 
virtual int stringToParam (char const *string)
 
bool isBitcrushingEnabled (ParamManager *paramManager)
 
bool isSRREnabled (ParamManager *paramManager)
 
bool hasBassAdjusted (ParamManager *paramManager)
 
bool hasTrebleAdjusted (ParamManager *paramManager)
 
ModelStackWithAutoParamgetParamFromMIDIKnob (MIDIKnob *knob, ModelStackWithThreeMainThings *modelStack)
 
int buttonAction (int x, int y, bool on, ModelStackWithThreeMainThings *modelStack)
 
ModelStackWithAutoParamgetParamFromModEncoder (int whichModEncoder, ModelStackWithThreeMainThings *modelStack, bool allowCreation)
 
- Public Member Functions inherited from ModControllable
 ModControllable ()
 
virtual bool modEncoderButtonAction (uint8_t whichModEncoder, bool on, ModelStackWithThreeMainThings *modelStack)
 
virtual void modButtonAction (uint8_t whichModButton, bool on, ParamManagerForTimeline *paramManager)
 
virtual ModelStackWithAutoParamgetParamFromModEncoder (int whichModEncoder, ModelStackWithThreeMainThings *modelStack, bool allowCreation=true)
 
virtual ModelStackWithAutoParamgetParamFromMIDIKnob (MIDIKnob *knob, ModelStackWithThreeMainThings *modelStack)
 
virtual uint8_t * getModKnobMode ()
 
virtual bool isKit ()
 
virtual int getKnobPosForNonExistentParam (int whichModEncoder, ModelStackWithAutoParam *modelStack)
 
virtual int modEncoderActionForNonExistentParam (int offset, int whichModEncoder, ModelStackWithAutoParam *modelStack)
 
virtual bool allowNoteTails (ModelStackWithSoundFlags *modelStack, bool disregardSampleLoop=false)
 
virtual void polyphonicExpressionEventOnChannelOrNote (int newValue, int whichExpressionDimension, int channelOrNoteNumber, int whichCharacteristic)
 
virtual void monophonicExpressionEvent (int newValue, int whichExpressionDimension)
 
- Public Member Functions inherited from Drum
 Drum (int newType)
 
virtual ~Drum ()
 
virtual void noteOn (ModelStackWithThreeMainThings *modelStack, uint8_t velocity, Kit *kit, int16_t const *mpeValues, int fromMIDIChannel=MIDI_CHANNEL_NONE, uint32_t sampleSyncLength=0, int32_t ticksLate=0, uint32_t samplesLate=0)=0
 
virtual void noteOff (ModelStackWithThreeMainThings *modelStack, int velocity=DEFAULT_LIFT_VALUE)=0
 
virtual bool allowNoteTails (ModelStackWithSoundFlags *modelStack, bool disregardSampleLoop=false)=0
 
virtual bool anyNoteIsOn ()=0
 
virtual bool hasAnyVoices ()=0
 
virtual void unassignAllVoices ()=0
 
virtual int loadAllSamples (bool mayActuallyReadFiles)
 
virtual void prepareForHibernation ()
 
virtual void prepareDrumToHaveNoActiveClip ()
 
virtual void writeToFile (bool savingSong, ParamManager *paramManager)=0
 
virtual int readFromFile (Song *song, Clip *clip, int32_t readAutomationUpToPos)=0
 
virtual void drumWontBeRenderedForAWhile ()
 
virtual void getName (char *buffer)=0
 
virtual void choke (ModelStackWithSoundFlags *modelStack)
 
void writeMIDICommandsToFile ()
 
bool readDrumTagFromFile (char const *tagName)
 
void recordNoteOnEarly (int velocity, bool noteTailsAllowed)
 
void expressionEventPossiblyToRecord (ModelStackWithTimelineCounter *modelStack, int16_t newValue, int whichExpressionimension, int level)
 
virtual void expressionEvent (int newValue, int whichExpressionimension)
 
void getCombinedExpressionInputs (int16_t *combined)
 
virtual ModControllabletoModControllable ()
 

Public Attributes

String name
 
bool nameIsDiscardable
 
ArpeggiatorForDrum arpeggiator
 
ArpeggiatorSettings arpSettings
 
- Public Attributes inherited from Sound
Patcher patcher
 
ParamLPF paramLPF
 
Source sources [NUM_SOURCES]
 
int32_t paramFinalValues [NUM_PARAMS - FIRST_GLOBAL_PARAM]
 
int32_t globalSourceValues [FIRST_LOCAL_SOURCE]
 
uint32_t sourcesChanged
 
LFO globalLFO
 
uint8_t lfoGlobalWaveType
 
uint8_t lfoLocalWaveType
 
uint8_t lfoGlobalSyncLevel
 
ModKnob modKnobs [NUM_MOD_BUTTONS][NUM_PHYSICAL_MOD_KNOBS]
 
int32_t sideChainSendLevel
 
uint8_t polyphonic
 
int16_t transpose
 
uint8_t numUnison
 
int8_t unisonDetune
 
int16_t modulatorTranspose [numModulators]
 
int8_t modulatorCents [numModulators]
 
PhaseIncrementFineTuner modulatorTransposers [numModulators]
 
PhaseIncrementFineTuner unisonDetuners [maxNumUnison]
 
uint8_t synthMode
 
bool modulator1ToModulator0
 
int32_t volumeNeutralValueForUnison
 
int lastNoteCode
 
bool oscillatorSync
 
uint8_t voicePriority
 
bool skippingRendering
 
uint8_t whichExpressionSourcesChangedAtSynthLevel
 
int32_t monophonicExpressionValues [NUM_EXPRESSION_DIMENSIONS]
 
uint32_t oscRetriggerPhase [NUM_SOURCES]
 
uint32_t modulatorRetriggerPhase [numModulators]
 
int32_t postReverbVolumeLastTime
 
uint32_t numSamplesSkippedRenderingForGlobalLFO
 
uint32_t timeStartedSkippingRenderingModFX
 
uint32_t timeStartedSkippingRenderingLFO
 
uint32_t timeStartedSkippingRenderingArp
 
uint32_t startSkippingRenderingAtTime
 
int numVoicesAssigned
 
- Public Attributes inherited from ModControllableAudio
StereoSample phaserMemory
 
StereoSample allpassMemory [PHASER_NUM_ALLPASS_FILTERS]
 
int32_t bassFreq
 
int32_t trebleFreq
 
int32_t withoutTrebleL
 
int32_t bassOnlyL
 
int32_t withoutTrebleR
 
int32_t bassOnlyR
 
Delay delay
 
bool sampleRateReductionOnLastTime
 
uint8_t clippingAmount
 
uint8_t lpfMode
 
uint8_t modFXType
 
StereoSamplemodFXBuffer
 
uint16_t modFXBufferWriteIndex
 
LFO modFXLFO
 
Stutterer stutterer
 
uint32_t lowSampleRatePos
 
uint32_t highSampleRatePos
 
StereoSample lastSample
 
StereoSample grabbedSample
 
StereoSample lastGrabbedSample
 
Compressor compressor
 
MidiKnobArray midiKnobArray
 
- Public Attributes inherited from Drum
Kitkit
 
const uint8_t type
 
bool noteRowAssignedTemp
 
uint8_t earlyNoteVelocity
 
bool earlyNoteStillActive
 
bool auditioned
 
uint8_t lastMIDIChannelAuditioned
 
int8_t lastExpressionInputsReceived [2][NUM_EXPRESSION_DIMENSIONS]
 
Drumnext
 
LearnedMIDI midiInput
 
LearnedMIDI muteMIDICommand
 

Additional Inherited Members

- Static Public Member Functions inherited from Sound
static void writeParamsToFile (ParamManager *paramManager, bool writeAutomation)
 
static void readParamsFromFile (ParamManagerForTimeline *paramManager, int32_t readAutomationUpToPos)
 
static bool readParamTagFromFile (char const *tagName, ParamManagerForTimeline *paramManager, int32_t readAutomationUpToPos)
 
static void initParams (ParamManager *paramManager)
 
static int createParamManagerForLoading (ParamManagerForTimeline *paramManager)
 
- Static Public Member Functions inherited from ModControllableAudio
static void writeParamAttributesToFile (ParamManager *paramManager, bool writeAutomation, int32_t *valuesForOverride=NULL)
 
static void writeParamTagsToFile (ParamManager *paramManager, bool writeAutomation, int32_t *valuesForOverride=NULL)
 
static bool readParamTagFromFile (char const *tagName, ParamManagerForTimeline *paramManager, int32_t readAutomationUpToPos)
 
static void initParams (ParamManager *paramManager)
 
- Protected Member Functions inherited from ModControllableAudio
void processFX (StereoSample *buffer, int numSamples, int modFXType, int32_t modFXRate, int32_t modFXDepth, DelayWorkingState *delayWorkingState, int32_t *postFXVolume, ParamManager *paramManager, int analogDelaySaturationAmount)
 
int32_t getStutterRate (ParamManager *paramManager)
 
void beginStutter (ParamManagerForTimeline *paramManager)
 
void switchDelayPingPong ()
 
void switchDelayAnalog ()
 
void switchLPFMode ()
 
void clearModFXMemory ()
 

Constructor & Destructor Documentation

◆ SoundDrum()

SoundDrum::SoundDrum ( )

Member Function Documentation

◆ allowNoteTails()

bool SoundDrum::allowNoteTails ( ModelStackWithSoundFlags modelStack,
bool  disregardSampleLoop = false 
)
virtual

Implements Drum.

◆ anyNoteIsOn()

bool SoundDrum::anyNoteIsOn ( )
virtual

Implements Drum.

◆ choke()

void SoundDrum::choke ( ModelStackWithSoundFlags modelStack)
virtual

Reimplemented from Drum.

◆ drumWontBeRenderedForAWhile()

void SoundDrum::drumWontBeRenderedForAWhile ( )
virtual

Reimplemented from Drum.

◆ expressionEvent()

void SoundDrum::expressionEvent ( int  newValue,
int  whichExpressionDimension 
)
virtual

Reimplemented from Drum.

◆ getArp()

ArpeggiatorBase * SoundDrum::getArp ( )
virtual

Implements Sound.

◆ getArpSettings()

ArpeggiatorSettings * SoundDrum::getArpSettings ( InstrumentClip clip = NULL)
inlinevirtual

Implements Sound.

◆ getModKnobMode()

uint8_t * SoundDrum::getModKnobMode ( )
virtual

Reimplemented from ModControllable.

◆ getName()

void SoundDrum::getName ( char *  buffer)
virtual

Implements Drum.

◆ hasAnyVoices()

bool SoundDrum::hasAnyVoices ( )
virtual

Implements Drum.

◆ isDrum()

bool SoundDrum::isDrum ( )
inlinevirtual

Reimplemented from Sound.

◆ loadAllSamples()

int SoundDrum::loadAllSamples ( bool  mayActuallyReadFiles)
virtual

Reimplemented from Drum.

◆ noteOff()

void SoundDrum::noteOff ( ModelStackWithThreeMainThings modelStack,
int  velocity 
)
virtual

Implements Drum.

◆ noteOn()

void SoundDrum::noteOn ( ModelStackWithThreeMainThings modelStack,
uint8_t  velocity,
Kit kit,
int16_t const *  mpeValues,
int  fromMIDIChannel = MIDI_CHANNEL_NONE,
uint32_t  sampleSyncLength = 0,
int32_t  ticksLate = 0,
uint32_t  samplesLate = 0 
)
virtual

Implements Drum.

◆ polyphonicExpressionEventOnChannelOrNote()

void SoundDrum::polyphonicExpressionEventOnChannelOrNote ( int  newValue,
int  whichExpressionDimension,
int  channelOrNoteNumber,
int  whichCharacteristic 
)
virtual

Reimplemented from ModControllable.

◆ prepareForHibernation()

void SoundDrum::prepareForHibernation ( )
virtual

Reimplemented from Drum.

◆ readFromFile()

int SoundDrum::readFromFile ( Song song,
Clip clip,
int32_t  readAutomationUpToPos 
)
virtual

Implements Drum.

◆ readTagFromFile()

bool SoundDrum::readTagFromFile ( char const *  tagName)
virtual

Implements Sound.

◆ setSkippingRendering()

void SoundDrum::setSkippingRendering ( bool  newSkipping)
virtual

Reimplemented from Sound.

◆ setupPatchingForAllParamManagers()

void SoundDrum::setupPatchingForAllParamManagers ( Song song)
virtual

Reimplemented from Sound.

◆ toModControllable()

ModControllable * SoundDrum::toModControllable ( )
inlinevirtual

Reimplemented from Drum.

◆ unassignAllVoices()

void SoundDrum::unassignAllVoices ( )
virtual

Implements Drum.

◆ writeToFile()

void SoundDrum::writeToFile ( bool  savingSong,
ParamManager paramManager 
)
virtual

Implements Drum.

Member Data Documentation

◆ arpeggiator

ArpeggiatorForDrum SoundDrum::arpeggiator

◆ arpSettings

ArpeggiatorSettings SoundDrum::arpSettings

◆ name

String SoundDrum::name

◆ nameIsDiscardable

bool SoundDrum::nameIsDiscardable

The documentation for this class was generated from the following files: