Deluge Firmware 1.3.0
Build date: 2026.10.29
Loading...
Searching...
No Matches
AudioClip Class Referencefinal
Inheritance diagram for AudioClip:
Collaboration diagram for AudioClip:

Public Member Functions

void processCurrentPos (ModelStackWithTimelineCounter *modelStack, uint32_t ticksSinceLast) override
void expectNoFurtherTicks (Song *song, bool actuallySoundChange=true) override
Error clone (ModelStackWithTimelineCounter *modelStack, bool shouldFlattenReversing=false) const override
void render (ModelStackWithTimelineCounter *modelStack, std::span< q31_t > output, int32_t amplitude, int32_t amplitudeIncrement, int32_t pitchAdjust)
void detachFromOutput (ModelStackWithTimelineCounter *modelStack, bool shouldRememberDrumName, bool shouldDeleteEmptyNoteRowsAtEndOfList=false, bool shouldRetainLinksToSounds=false, bool keepNoteRowsWithMIDIInput=true, bool shouldGrabMidiCommands=false, bool shouldBackUpExpressionParamsToo=true) override
bool renderAsSingleRow (ModelStackWithTimelineCounter *modelStack, TimelineView *editorScreen, int32_t xScroll, uint32_t xZoom, RGB *image, uint8_t occupancyMask[], bool addUndefinedArea, int32_t noteRowIndexStart=0, int32_t noteRowIndexEnd=2147483647, int32_t xStart=0, int32_t xEnd=kDisplayWidth, bool allowBlur=true, bool drawRepeats=false) override
Error claimOutput (ModelStackWithTimelineCounter *modelStack) override
void loadSample (bool mayActuallyReadFile)
bool wantsToBeginLinearRecording (Song *song) override
bool isAbandonedOverdub () override
void finishLinearRecording (ModelStackWithTimelineCounter *modelStack, Clip *nextPendingLoop, int32_t buttonLatencyForTempolessRecord) override
Error beginLinearRecording (ModelStackWithTimelineCounter *modelStack, int32_t buttonPressLatency) override
void quantizeLengthForArrangementRecording (ModelStackWithTimelineCounter *modelStack, int32_t lengthSoFar, uint32_t timeRemainder, int32_t suggestedLength, int32_t alternativeLongerLength) override
bool shouldCloneForOverdubs () override
Clip * cloneAsNewOverdub (ModelStackWithTimelineCounter *modelStack, OverDubType newOverdubNature) override
int64_t getSamplesFromTicks (int32_t ticks)
void unassignVoiceSample (bool wontBeUsedAgain)
void resumePlayback (ModelStackWithTimelineCounter *modelStack, bool mayMakeSound=true) override
Error changeOutput (ModelStackWithTimelineCounter *modelStack, Output *newOutput)
Error setOutput (ModelStackWithTimelineCounter *modelStack, Output *newOutput, AudioClip *favourClipForCloningParamManager=nullptr)
RGB getColour ()
bool currentlyScrollableAndZoomable () override
void getScrollAndZoomInSamples (int32_t xScroll, int32_t xZoom, int64_t *xScrollSamples, int64_t *xZoomSamples)
void clear (Action *action, ModelStackWithTimelineCounter *modelStack, bool clearAutomation, bool clearSequenceAndMPE) override
bool getCurrentlyRecordingLinearly () override
void abortRecording () override
void setupPlaybackBounds ()
uint64_t getCullImmunity ()
void posReachedEnd (ModelStackWithTimelineCounter *modelStack) override
void copyBasicsFrom (Clip const *otherClip) override
bool willCloneOutputForOverdub () override
void sampleZoneChanged (ModelStackWithTimelineCounter const *modelStack)
int64_t getNumSamplesTilLoop (ModelStackWithTimelineCounter *modelStack)
void setPos (ModelStackWithTimelineCounter *modelStack, int32_t newPos, bool useActualPosForParamManagers) override
bool shiftHorizontally (ModelStackWithTimelineCounter *modelStack, int32_t amount, bool shiftAutomation, bool shiftSequenceAndMPE) override
 Return true if successfully shifted, as clip cannot be shifted past beginning.
Error readFromFile (Deserializer &reader, Song *song) override
void writeDataToFile (Serializer &writer, Song *song) override
char const * getXMLTag () override
bool renderSidebar (uint32_t whichRows=0, RGB image[][kDisplayWidth+kSideBarWidth]=nullptr, uint8_t occupancyMask[][kDisplayWidth+kSideBarWidth]=nullptr) override
ParamManagerForTimeline * getCurrentParamManager () override
bool isEmpty (bool displayPopup=true) override
Public Member Functions inherited from Clip
 Clip (ClipType newType)
bool cancelAnyArming ()
int32_t getMaxZoom ()
virtual int32_t getMaxLength ()
void cloneFrom (Clip const *other)
void beginInstance (Song *song, int32_t arrangementRecordPos)
void endInstance (int32_t arrangementRecordPos, bool evenIfOtherClip=false)
virtual void setPosForParamManagers (ModelStackWithTimelineCounter *modelStack, bool useActualPos=true)
virtual void reGetParameterAutomation (ModelStackWithTimelineCounter *modelStack)
void prepareForDestruction (ModelStackWithTimelineCounter *modelStack, InstrumentRemoval instrumentRemovalInstruction)
uint32_t getActualCurrentPosAsIfPlayingInForwardDirection ()
int32_t getCurrentPosAsIfPlayingInForwardDirection ()
Clip * getClipBeingRecordedFrom ()
Clip * getClipToRecordTo ()
bool isArrangementOnlyClip () const
bool isActiveOnOutput ()
virtual bool deleteSoundsWhichWontSound (Song *song)
virtual Error appendClip (ModelStackWithTimelineCounter *thisModelStack, ModelStackWithTimelineCounter *otherModelStack)
Error resumeOriginalClipFromThisClone (ModelStackWithTimelineCounter *modelStackOriginal, ModelStackWithTimelineCounter *modelStackClone)
virtual Error transferVoicesToOriginalClipFromThisClone (ModelStackWithTimelineCounter *modelStackOriginal, ModelStackWithTimelineCounter *modelStackClone)
virtual void increaseLengthWithRepeats (ModelStackWithTimelineCounter *modelStack, int32_t newLength, IndependentNoteRowLengthIncrease independentNoteRowInstruction, bool completelyRenderOutIterationDependence=false, Action *action=nullptr)
virtual void lengthChanged (ModelStackWithTimelineCounter *modelStack, int32_t oldLength, Action *action=nullptr)
virtual void getSuggestedParamManager (Clip *newClip, ParamManagerForTimeline **suggestedParamManager, Sound *sound)
virtual Error undoDetachmentFromOutput (ModelStackWithTimelineCounter *modelStack)
void drawUndefinedArea (int32_t localScroll, uint32_t, int32_t lengthToDisplay, RGB *image, uint8_t[], int32_t imageWidth, TimelineView *editorScreen, bool tripletsOnHere)
bool opportunityToBeginSessionLinearRecording (ModelStackWithTimelineCounter *modelStack, bool *newOutputCreated, int32_t buttonPressLatency)
void setupOverdubInPlace (OverDubType type)
void writeToFile (Serializer &writer, Song *song)
void writeMidiCommandsToFile (Serializer &writer, Song *song)
void readTagFromFile (Deserializer &reader, char const *tagName, Song *song, int32_t *readAutomationUpToPos)
void setupForRecordingAsAutoOverdub (Clip *existingClip, Song *song, OverDubType newOverdubNature)
void outputChanged (ModelStackWithTimelineCounter *modelStack, Output *newOutput)
virtual void stopAllNotesPlaying (Song *song, bool actuallySoundChange=true)
void setSequenceDirectionMode (ModelStackWithTimelineCounter *modelStack, SequenceDirection newSequenceDirection)
virtual void incrementPos (ModelStackWithTimelineCounter *modelStack, int32_t numTicks)
uint32_t getLivePos () const override
 Get the current tick of this timeline counter relative to the playback handler.
int32_t getLoopLength () const override
bool isPlayingAutomationNow () const override
bool backtrackingCouldLoopBackToEnd () const override
int32_t getPosAtWhichPlaybackWillCut (ModelStackWithTimelineCounter const *modelStack) const override
int32_t getLastProcessedPos () const override
 Get the tick at which this timeline counter last did anything.
bool possiblyCloneForArrangementRecording (ModelStackWithTimelineCounter *modelStack) override
TimelineCounter * getTimelineCounterToRecordTo () override
void getActiveModControllable (ModelStackWithTimelineCounter *modelStack) override
void expectEvent () override
Public Member Functions inherited from TimelineCounter
virtual void instrumentBeenEdited ()

Public Attributes

int32_t nextSampleRestartPos = 0
SampleControls sampleControls
SampleHolderForClip sampleHolder
VoiceSample * voiceSample
SamplePlaybackGuide guide
String outputNameWhileLoading
WaveformRenderData renderData
SampleRecorder * recorder
int32_t attack
VoicePriority voicePriority
bool doingLateStart
bool maySetupCache
Cluster const * prefetchedAheadOf = nullptr
uint32_t prefetchGenerationSeen = 0
Public Attributes inherited from Clip
Output * output
int16_t colourOffset
const ClipType type
uint8_t section
bool soloingInSessionMode
ArmState armState
bool activeIfNoSolo
bool activeIfNoSoloBeforeStemExport
bool exportStem
bool wasActiveBefore
bool gotInstanceYet
bool isPendingOverdub
bool isUnfinishedAutoOverdub
bool wasWantingToDoLinearRecordingBeforeCountIn
OverDubType overdubNature
LearnedMIDI muteMIDICommand
int32_t loopLength
int32_t originalLength
int32_t lastProcessedPos
Clip * beingRecordedFromClip
int32_t repeatCount
uint32_t indexForSaving
LaunchStyle launchStyle
int64_t fillEventAtTickCount
bool overdubsShouldCloneOutput
bool onAutomationClipView
int32_t lastSelectedParamID
 last selected Parameter to be edited in Automation Instrument Clip View
deluge::modulation::params::Kind lastSelectedParamKind
int32_t lastSelectedParamShortcutX
int32_t lastSelectedParamShortcutY
int32_t lastSelectedParamArrayPosition
OutputType lastSelectedOutputType
PatchSource lastSelectedPatchSource
String name
Public Attributes inherited from TimelineCounter
ParamManagerForTimeline paramManager
bool armedForRecording {true}
bool currentlyPlayingReversed {false}
SequenceDirection sequenceDirectionMode

Protected Member Functions

bool cloneOutput (ModelStackWithTimelineCounter *modelStack) override
Protected Member Functions inherited from Clip
Error solicitParamManager (Song *song, ParamManager *newParamManager=nullptr, Clip *favourClipForCloningParamManager=nullptr)
virtual void pingpongOccurred (ModelStackWithTimelineCounter *modelStack)

Private Member Functions

void removeClipFromSection (AudioClip *clip)
void detachAudioClipFromOutput (Song *song, bool shouldRetainLinksToOutput, bool shouldTakeParamManagerWith=false)
LoopType getLoopingType (ModelStackWithTimelineCounter const *modelStack)
void prefetchClustersAhead (Sample *sample)
void clearSample (Action *action)
int32_t getClusterPriority () const
 Priority for loading our Clusters - see ClusterPriority::forAudioClip().

Private Attributes

AudioClip * nextClipInSection

Member Function Documentation

◆ abortRecording()

void AudioClip::abortRecording ( )
overridevirtual

Implements Clip.

◆ beginLinearRecording()

Error AudioClip::beginLinearRecording ( ModelStackWithTimelineCounter * modelStack,
int32_t buttonPressLatency )
overridevirtual

Implements Clip.

◆ claimOutput()

Error AudioClip::claimOutput ( ModelStackWithTimelineCounter * modelStack)
overridevirtual

Implements Clip.

◆ clear()

void AudioClip::clear ( Action * action,
ModelStackWithTimelineCounter * modelStack,
bool clearAutomation,
bool clearSequenceAndMPE )
overridevirtual

Reimplemented from Clip.

◆ clone()

Error AudioClip::clone ( ModelStackWithTimelineCounter * modelStack,
bool shouldFlattenReversing = false ) const
overridevirtual

Implements Clip.

◆ cloneAsNewOverdub()

Clip * AudioClip::cloneAsNewOverdub ( ModelStackWithTimelineCounter * modelStack,
OverDubType newOverdubNature )
overridevirtual

Implements Clip.

◆ cloneOutput()

bool AudioClip::cloneOutput ( ModelStackWithTimelineCounter * modelStack)
overrideprotectedvirtual

Implements Clip.

◆ copyBasicsFrom()

void AudioClip::copyBasicsFrom ( Clip const * otherClip)
overridevirtual

Reimplemented from Clip.

◆ currentlyScrollableAndZoomable()

bool AudioClip::currentlyScrollableAndZoomable ( )
overridevirtual

Implements Clip.

◆ detachFromOutput()

void AudioClip::detachFromOutput ( ModelStackWithTimelineCounter * modelStack,
bool shouldRememberDrumName,
bool shouldDeleteEmptyNoteRowsAtEndOfList = false,
bool shouldRetainLinksToSounds = false,
bool keepNoteRowsWithMIDIInput = true,
bool shouldGrabMidiCommands = false,
bool shouldBackUpExpressionParamsToo = true )
overridevirtual

Implements Clip.

◆ expectNoFurtherTicks()

void AudioClip::expectNoFurtherTicks ( Song * song,
bool actuallySoundChange = true )
overridevirtual

Implements Clip.

◆ finishLinearRecording()

void AudioClip::finishLinearRecording ( ModelStackWithTimelineCounter * modelStack,
Clip * nextPendingLoop,
int32_t buttonLatencyForTempolessRecord )
overridevirtual

Implements Clip.

◆ getCurrentlyRecordingLinearly()

bool AudioClip::getCurrentlyRecordingLinearly ( )
overridevirtual

Implements Clip.

◆ getCurrentParamManager()

ParamManagerForTimeline * AudioClip::getCurrentParamManager ( )
overridevirtual

Reimplemented from Clip.

◆ getXMLTag()

char const * AudioClip::getXMLTag ( )
inlineoverridevirtual

Implements Clip.

◆ isAbandonedOverdub()

bool AudioClip::isAbandonedOverdub ( )
overridevirtual

Implements Clip.

◆ isEmpty()

bool AudioClip::isEmpty ( bool displayPopup = true)
overridevirtual

Implements Clip.

◆ posReachedEnd()

void AudioClip::posReachedEnd ( ModelStackWithTimelineCounter * modelStack)
overridevirtual

Reimplemented from Clip.

◆ processCurrentPos()

void AudioClip::processCurrentPos ( ModelStackWithTimelineCounter * modelStack,
uint32_t ticksSinceLast )
overridevirtual

Reimplemented from Clip.

◆ quantizeLengthForArrangementRecording()

void AudioClip::quantizeLengthForArrangementRecording ( ModelStackWithTimelineCounter * modelStack,
int32_t lengthSoFar,
uint32_t timeRemainder,
int32_t suggestedLength,
int32_t alternativeLongerLength )
overridevirtual

Implements Clip.

◆ readFromFile()

Error AudioClip::readFromFile ( Deserializer & reader,
Song * song )
overridevirtual

Implements Clip.

◆ renderAsSingleRow()

bool AudioClip::renderAsSingleRow ( ModelStackWithTimelineCounter * modelStack,
TimelineView * editorScreen,
int32_t xScroll,
uint32_t xZoom,
RGB * image,
uint8_t occupancyMask[],
bool addUndefinedArea,
int32_t noteRowIndexStart = 0,
int32_t noteRowIndexEnd = 2147483647,
int32_t xStart = 0,
int32_t xEnd = kDisplayWidth,
bool allowBlur = true,
bool drawRepeats = false )
overridevirtual

Reimplemented from Clip.

◆ renderSidebar()

bool AudioClip::renderSidebar ( uint32_t whichRows = 0,
RGB image[][kDisplayWidth+kSideBarWidth] = nullptr,
uint8_t occupancyMask[][kDisplayWidth+kSideBarWidth] = nullptr )
inlineoverridevirtual

Implements Clip.

◆ resumePlayback()

void AudioClip::resumePlayback ( ModelStackWithTimelineCounter * modelStack,
bool mayMakeSound = true )
overridevirtual

Implements Clip.

◆ setPos()

void AudioClip::setPos ( ModelStackWithTimelineCounter * modelStack,
int32_t newPos,
bool useActualPosForParamManagers )
overridevirtual

Reimplemented from Clip.

◆ shiftHorizontally()

bool AudioClip::shiftHorizontally ( ModelStackWithTimelineCounter * modelStack,
int32_t amount,
bool shiftAutomation,
bool shiftSequenceAndMPE )
overridevirtual

Return true if successfully shifted, as clip cannot be shifted past beginning.

Implements Clip.

◆ shouldCloneForOverdubs()

bool AudioClip::shouldCloneForOverdubs ( )
inlineoverridevirtual

returns whether the clip needs to be cloned for overdubs (old style) or will actually overdub its audio like a normal looper

Reimplemented from Clip.

◆ wantsToBeginLinearRecording()

bool AudioClip::wantsToBeginLinearRecording ( Song * song)
overridevirtual

Reimplemented from Clip.

◆ willCloneOutputForOverdub()

bool AudioClip::willCloneOutputForOverdub ( )
inlineoverridevirtual

Reimplemented from Clip.

◆ writeDataToFile()

void AudioClip::writeDataToFile ( Serializer & writer,
Song * song )
overridevirtual

Reimplemented from Clip.

Member Data Documentation

◆ prefetchedAheadOf

Cluster const* AudioClip::prefetchedAheadOf = nullptr

What prefetchClustersAhead() last prefetched beyond, and the prefetch list it left, so it can skip its walk through the Sample (in SDRAM) until one of them changes


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