Deluge Firmware 1.3.0
Build date: 2025.08.14
Loading...
Searching...
No Matches
Arpeggiator Class Reference
Inheritance diagram for Arpeggiator:
Collaboration diagram for Arpeggiator:

Public Member Functions

void reset () override
ArpType getArpType () override
void noteOn (ArpeggiatorSettings *settings, int32_t noteCode, int32_t velocity, ArpReturnInstruction *instruction, int32_t fromMIDIChannel, int16_t const *mpeValues) override
void noteOff (ArpeggiatorSettings *settings, int32_t noteCodePreArp, ArpReturnInstruction *instruction) override
bool hasAnyInputNotesActive () override
Public Member Functions inherited from ArpeggiatorBase
void render (ArpeggiatorSettings *settings, ArpReturnInstruction *instruction, int32_t numSamples, uint32_t gateThreshold, uint32_t phaseIncrement)
int32_t doTickForward (ArpeggiatorSettings *settings, ArpReturnInstruction *instruction, uint32_t ClipCurrentPos, bool currentlyPlayingReversed)
void calculateRandomizerAmounts (ArpeggiatorSettings *settings)

Public Attributes

OrderedResizeableArray notes
ResizeableArray notesAsPlayed
ResizeableArray notesByPattern
Public Attributes inherited from ArpeggiatorBase
bool gateCurrentlyActive = false
uint32_t gatePos = 0
bool playedFirstArpeggiatedNoteYet = false
uint8_t lastVelocity = 0
std::array< int16_t, ARP_MAX_INSTRUCTION_NOTES > noteCodeCurrentlyOnPostArp
std::array< int16_t, ARP_MAX_INSTRUCTION_NOTES > glideNoteCodeCurrentlyOnPostArp
std::array< uint8_t, ARP_MAX_INSTRUCTION_NOTES > outputMIDIChannelForNoteCurrentlyOnPostArp
std::array< uint8_t, ARP_MAX_INSTRUCTION_NOTES > outputMIDIChannelForGlideNoteCurrentlyOnPostArp
uint32_t notesPlayedFromSequence = 0
uint32_t randomNotesPlayedFromOctave = 0
int16_t whichNoteCurrentlyOnPostArp
int8_t currentOctave = 0
int8_t currentDirection = 1
int8_t currentOctaveDirection = 1
uint32_t notesPlayedFromRhythm = 0
uint32_t lastNormalNotePlayedFromRhythm = 0
uint32_t notesPlayedFromLockedRandomizer = 0
bool lastNormalNotePlayedFromNoteProbability = true
bool lastNormalNotePlayedFromBassProbability = false
bool lastNormalNotePlayedFromSwapProbability = false
bool lastNormalNotePlayedFromReverseProbability = false
bool lastNormalNotePlayedFromChordProbability = false
int32_t stepRepeatIndex = 0
uint32_t ratchetNotesIndex = 0
uint32_t ratchetNotesMultiplier = 0
uint32_t ratchetNotesCount = 0
bool isRatcheting = false
bool glideOnNextNoteOff = false
bool isPlayNoteForCurrentStep = true
bool isPlayBassForCurrentStep = false
bool isPlayRandomStepForCurrentStep = false
bool isPlayReverseForCurrentStep = false
bool isPlayChordForCurrentStep = false
bool isPlayRatchetForCurrentStep = false
bool isPlayGlideForCurrentStep = false
int32_t spreadVelocityForCurrentStep = 0
int32_t spreadGateForCurrentStep = 0
int32_t spreadOctaveForCurrentStep = 0
bool resetLockedRandomizerValuesNextTime = false

Protected Member Functions

void rearrangePatterntArpNotes (ArpeggiatorSettings *settings)
void switchNoteOn (ArpeggiatorSettings *settings, ArpReturnInstruction *instruction, bool isRatchet) override
Protected Member Functions inherited from ArpeggiatorBase
void calculateNextNoteAndOrOctave (ArpeggiatorSettings *settings, uint8_t numActiveNotes)
void setInitialNoteAndOctave (ArpeggiatorSettings *settings, uint8_t numActiveNotes)
void resetBase ()
void resetRatchet ()
void executeArpStep (ArpeggiatorSettings *settings, uint8_t numActiveNotes, bool isRatchet, uint32_t maxSequenceLength, uint32_t rhythm, bool *shouldCarryOnRhythmNote, bool *shouldPlayNote, bool *shouldPlayBassNote, bool *shouldPlayRandomStep, bool *shouldPlayReverseNote, bool *shouldPlayChordNote)
void increasePatternIndexes (uint8_t numStepRepeats)
void increaseSequenceIndexes (uint32_t maxSequenceLength, uint32_t rhythm)
void maybeSetupNewRatchet (ArpeggiatorSettings *settings)
bool evaluateRhythm (uint32_t rhythm, bool isRatchet)
bool evaluateNoteProbability (bool isRatchet)
bool evaluateBassProbability (bool isRatchet)
bool evaluateSwapProbability (bool isRatchet)
bool evaluateReverseProbability (bool isRatchet)
bool evaluateChordProbability (bool isRatchet)
uint32_t calculateSpreadVelocity (uint8_t velocity, int32_t spreadVelocityForCurrentStep)
int32_t getOctaveDirection (ArpeggiatorSettings *settings)
void switchAnyNoteOff (ArpReturnInstruction *instruction)
bool getRandomProbabilityResult (uint32_t value)
int8_t getRandomBipolarProbabilityAmount (uint32_t value)
int8_t getRandomWeighted2BitsAmount (uint32_t value)

Member Function Documentation

◆ getArpType()

ArpType Arpeggiator::getArpType ( )
inlineoverridevirtual

Implements ArpeggiatorBase.

◆ hasAnyInputNotesActive()

bool Arpeggiator::hasAnyInputNotesActive ( )
overridevirtual

Implements ArpeggiatorBase.

◆ noteOff()

void Arpeggiator::noteOff ( ArpeggiatorSettings * settings,
int32_t noteCodePreArp,
ArpReturnInstruction * instruction )
overridevirtual

Implements ArpeggiatorBase.

◆ noteOn()

void Arpeggiator::noteOn ( ArpeggiatorSettings * settings,
int32_t noteCode,
int32_t velocity,
ArpReturnInstruction * instruction,
int32_t fromMIDIChannel,
int16_t const * mpeValues )
overridevirtual

Implements ArpeggiatorBase.

◆ reset()

void Arpeggiator::reset ( )
overridevirtual

Implements ArpeggiatorBase.

◆ switchNoteOn()

void Arpeggiator::switchNoteOn ( ArpeggiatorSettings * settings,
ArpReturnInstruction * instruction,
bool isRatchet )
overrideprotectedvirtual

Implements ArpeggiatorBase.


The documentation for this class was generated from the following files:
  • src/deluge/modulation/arpeggiator.h
  • src/deluge/modulation/arpeggiator.cpp