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

Public Member Functions

 Clip (ClipType newType)
 
bool cancelAnyArming ()
 
int32_t getMaxZoom ()
 
virtual int32_t getMaxLength ()
 
virtual Error clone (ModelStackWithTimelineCounter *modelStack, bool shouldFlattenReversing=false) const =0
 
void cloneFrom (Clip const *other)
 
void beginInstance (Song *song, int32_t arrangementRecordPos)
 
void endInstance (int32_t arrangementRecordPos, bool evenIfOtherClip=false)
 
virtual void setPos (ModelStackWithTimelineCounter *modelStack, int32_t newPos, bool useActualPosForParamManagers=true)
 
virtual void setPosForParamManagers (ModelStackWithTimelineCounter *modelStack, bool useActualPos=true)
 
virtual void expectNoFurtherTicks (Song *song, bool actuallySoundChange=true)=0
 
virtual void resumePlayback (ModelStackWithTimelineCounter *modelStack, bool mayMakeSound=true)=0
 
virtual void reGetParameterAutomation (ModelStackWithTimelineCounter *modelStack)
 
virtual void processCurrentPos (ModelStackWithTimelineCounter *modelStack, uint32_t ticksSinceLast)
 
void prepareForDestruction (ModelStackWithTimelineCounter *modelStack, InstrumentRemoval instrumentRemovalInstruction)
 
uint32_t getActualCurrentPosAsIfPlayingInForwardDirection ()
 
int32_t getCurrentPosAsIfPlayingInForwardDirection ()
 
ClipgetClipBeingRecordedFrom ()
 
ClipgetClipToRecordTo ()
 
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 ParamManagerForTimelinegetCurrentParamManager ()
 
virtual void detachFromOutput (ModelStackWithTimelineCounter *modelStack, bool shouldRememberDrumName, bool shouldDeleteEmptyNoteRowsAtEndOfList=false, bool shouldRetainLinksToSounds=false, bool keepNoteRowsWithMIDIInput=true, bool shouldGrabMidiCommands=false, bool shouldBackUpExpressionParamsToo=true)=0
 
virtual Error undoDetachmentFromOutput (ModelStackWithTimelineCounter *modelStack)
 
virtual bool renderAsSingleRow (ModelStackWithTimelineCounter *modelStack, TimelineView *editorScreen, int32_t xScroll, uint32_t xZoom, RGB *image, uint8_t occupancyMask[], bool addUndefinedArea=true, int32_t noteRowIndexStart=0, int32_t noteRowIndexEnd=2147483647, int32_t xStart=0, int32_t xEnd=kDisplayWidth, bool allowBlur=true, bool drawRepeats=false)
 
virtual Error claimOutput (ModelStackWithTimelineCounter *modelStack)=0
 
virtual void finishLinearRecording (ModelStackWithTimelineCounter *modelStack, Clip *nextPendingLoop=nullptr, int32_t buttonLatencyForTempolessRecord=0)=0
 
virtual Error beginLinearRecording (ModelStackWithTimelineCounter *modelStack, int32_t buttonPressLatency)=0
 
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)
 
virtual ClipcloneAsNewOverdub (ModelStackWithTimelineCounter *modelStack, OverDubType newOverdubNature)=0
 
virtual bool shouldCloneForOverdubs ()
 
void setupOverdubInPlace (OverDubType type)
 
virtual bool getCurrentlyRecordingLinearly ()=0
 
virtual bool currentlyScrollableAndZoomable ()=0
 
virtual void clear (Action *action, ModelStackWithTimelineCounter *modelStack, bool clearAutomation, bool clearSequenceAndMPE)
 
void writeToFile (Serializer &writer, Song *song)
 
virtual void writeDataToFile (Serializer &writer, Song *song)
 
void writeMidiCommandsToFile (Serializer &writer, Song *song)
 
virtual char const * getXMLTag ()=0
 
virtual Error readFromFile (Deserializer &reader, Song *song)=0
 
void readTagFromFile (Deserializer &reader, char const *tagName, Song *song, int32_t *readAutomationUpToPos)
 
virtual void copyBasicsFrom (Clip const *otherClip)
 
void setupForRecordingAsAutoOverdub (Clip *existingClip, Song *song, OverDubType newOverdubNature)
 
void outputChanged (ModelStackWithTimelineCounter *modelStack, Output *newOutput)
 
virtual bool isAbandonedOverdub ()=0
 
virtual bool wantsToBeginLinearRecording (Song *song)
 
virtual void quantizeLengthForArrangementRecording (ModelStackWithTimelineCounter *modelStack, int32_t lengthSoFar, uint32_t timeRemainder, int32_t suggestedLength, int32_t alternativeLongerLength)=0
 
virtual void abortRecording ()=0
 
virtual void stopAllNotesPlaying (Song *song, bool actuallySoundChange=true)
 
virtual bool willCloneOutputForOverdub ()
 
void setSequenceDirectionMode (ModelStackWithTimelineCounter *modelStack, SequenceDirection newSequenceDirection)
 
virtual void incrementPos (ModelStackWithTimelineCounter *modelStack, int32_t numTicks)
 
virtual bool shiftHorizontally (ModelStackWithTimelineCounter *modelStack, int32_t amount, bool shiftAutomation, bool shiftSequenceAndMPE)=0
 Return true if successfully shifted.
 
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
 
TimelineCountergetTimelineCounterToRecordTo () override
 
void getActiveModControllable (ModelStackWithTimelineCounter *modelStack) override
 
void expectEvent () override
 
virtual bool isEmpty (bool displayPopup=true)=0
 
virtual bool renderSidebar (uint32_t whichRows=0, RGB image[][kDisplayWidth+kSideBarWidth]=nullptr, uint8_t occupancyMask[][kDisplayWidth+kSideBarWidth]=nullptr)=0
 
- Public Member Functions inherited from TimelineCounter
virtual void instrumentBeenEdited ()
 

Public Attributes

Outputoutput
 
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
 
ClipbeingRecordedFromClip
 
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}
 

Protected Member Functions

virtual void posReachedEnd (ModelStackWithTimelineCounter *modelStack)
 
virtual bool cloneOutput (ModelStackWithTimelineCounter *modelStack)=0
 
Error solicitParamManager (Song *song, ParamManager *newParamManager=nullptr, Clip *favourClipForCloningParamManager=nullptr)
 
virtual void pingpongOccurred (ModelStackWithTimelineCounter *modelStack)
 

Member Function Documentation

◆ backtrackingCouldLoopBackToEnd()

bool Clip::backtrackingCouldLoopBackToEnd ( ) const
nodiscardoverridevirtual

Implements TimelineCounter.

◆ expectEvent()

void Clip::expectEvent ( )
overridevirtual

Implements TimelineCounter.

◆ getActiveModControllable()

void Clip::getActiveModControllable ( ModelStackWithTimelineCounter * modelStack)
overridevirtual

Implements TimelineCounter.

◆ getLastProcessedPos()

int32_t Clip::getLastProcessedPos ( ) const
nodiscardoverridevirtual

Get the tick at which this timeline counter last did anything.

Implements TimelineCounter.

◆ getLivePos()

uint32_t Clip::getLivePos ( ) const
nodiscardoverridevirtual

Get the current tick of this timeline counter relative to the playback handler.

Implements TimelineCounter.

◆ getLoopLength()

int32_t Clip::getLoopLength ( ) const
nodiscardoverridevirtual

Implements TimelineCounter.

◆ getPosAtWhichPlaybackWillCut()

int32_t Clip::getPosAtWhichPlaybackWillCut ( ModelStackWithTimelineCounter const * modelStack) const
nodiscardoverridevirtual

Implements TimelineCounter.

◆ getTimelineCounterToRecordTo()

TimelineCounter * Clip::getTimelineCounterToRecordTo ( )
overridevirtual

Implements TimelineCounter.

◆ isPlayingAutomationNow()

bool Clip::isPlayingAutomationNow ( ) const
nodiscardoverridevirtual

Implements TimelineCounter.

◆ possiblyCloneForArrangementRecording()

bool Clip::possiblyCloneForArrangementRecording ( ModelStackWithTimelineCounter * modelStack)
overridevirtual

Reimplemented from TimelineCounter.

◆ shiftHorizontally()

virtual bool Clip::shiftHorizontally ( ModelStackWithTimelineCounter * modelStack,
int32_t amount,
bool shiftAutomation,
bool shiftSequenceAndMPE )
pure virtual

Return true if successfully shifted.

Implemented in AudioClip, and InstrumentClip.

◆ shouldCloneForOverdubs()

virtual bool Clip::shouldCloneForOverdubs ( )
inlinevirtual

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

Reimplemented in AudioClip.


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