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

Public Member Functions

 Instrument (OutputType newType)
 
bool matchesPreset (OutputType otherType, int32_t channel, int32_t channelSuffix, char const *otherName, char const *otherPath) override
 
virtual bool doAnySoundsUseCC (uint8_t channel, uint8_t ccNumber, uint8_t value)
 
virtual void beenEdited (bool shouldMoveToEmptySlot=true)
 
virtual void setupPatching (ModelStackWithTimelineCounter *modelStack)
 
void deleteAnyInstancesOfClip (InstrumentClip *clip)
 
bool writeDataToFile (Serializer &writer, Clip *clipForSavingOutputOnly, Song *song) override
 
bool readTagFromFile (Deserializer &reader, char const *tagName) override
 
virtual void compensateInstrumentVolumeForResonance (ModelStackWithThreeMainThings *modelStack)
 
virtual bool isNoteRowStillAuditioningAsLinearRecordingEnded (NoteRow *noteRow)=0
 
virtual void processParamFromInputMIDIChannel (int32_t cc, int32_t newValue, ModelStackWithTimelineCounter *modelStack)=0
 
char const * getNameXMLTag () override
 
virtual char const * getSlotXMLTag ()
 
virtual char const * getSubSlotXMLTag ()
 
virtual bool isAnyAuditioningHappening ()=0
 
- Public Member Functions inherited from Output
 Output (OutputType newType)
 
ClipgetActiveClip () const
 
virtual void renderOutput (ModelStack *modelStack, std::span< StereoSample > outputBuffer, int32_t *reverbBuffer, int32_t reverbAmountAdjust, int32_t sideChainHitPending, bool shouldLimitDelayFeedback, bool isClipActive)=0
 
virtual void setupWithoutActiveClip (ModelStack *modelStack)
 
virtual bool setActiveClip (ModelStackWithTimelineCounter *modelStack, PgmChangeSend maySendMIDIPGMs=PgmChangeSend::ONCE)
 
void pickAnActiveClipForArrangementPos (ModelStack *modelStack, int32_t arrangementPos, PgmChangeSend maySendMIDIPGMs)
 
void pickAnActiveClipIfPossible (ModelStack *modelStack, bool searchSessionClipsIfNeeded=true, PgmChangeSend maySendMIDIPGMs=PgmChangeSend::ONCE, bool setupWithoutActiveClipIfNeeded=true)
 
void detachActiveClip (Song *currentSong)
 
virtual ModControllabletoModControllable ()
 
virtual bool isSkippingRendering ()
 
bool clipHasInstance (Clip *clip)
 
bool isEmpty (bool displayPopup=true)
 
void clipLengthChanged (Clip *clip, int32_t oldLength)
 
virtual void cutAllSound ()
 
virtual void getThingWithMostReverb (Sound **soundWithMostReverb, ParamManager **paramManagerWithMostReverb, GlobalEffectableForClip **globalEffectableWithMostReverb, int32_t *highestReverbAmountFound)
 
ClipgetClipFromName (String *name)
 If there's a clip matching the name on this output, returns it.
 
virtual bool offerReceivedPitchBendToLearnedParams (MIDICable &cable, uint8_t channel, uint8_t data1, uint8_t data2, ModelStackWithTimelineCounter *modelStack)
 Pitch bend is available in the mod matrix as X and shouldn't be learned to params anymore (post 4.0)
 
virtual void offerReceivedCCToLearnedParams (MIDICable &cable, uint8_t channel, uint8_t ccNumber, uint8_t value, ModelStackWithTimelineCounter *modelStack)
 
virtual int32_t doTickForwardForArp (ModelStack *modelStack, int32_t currentPos)
 
void endAnyArrangementRecording (Song *song, int32_t actualEndPos, uint32_t timeRemainder)
 
virtual bool wantsToBeginArrangementRecording ()
 
virtual Error readFromFile (Deserializer &reader, Song *song, Clip *clip, int32_t readAutomationUpToPos)
 
void writeToFile (Clip *clipForSavingOutputOnly, Song *song)
 
virtual Error loadAllAudioFiles (bool mayActuallyReadFiles)
 
virtual void loadCrucialAudioFilesOnly ()
 
virtual void resyncLFOs ()
 
virtual void sendMIDIPGM ()
 
virtual void deleteBackedUpParamManagers (Song *song)
 
virtual void prepareForHibernationOrDeletion ()
 
virtual char const * getXMLTag ()=0
 
virtual ParamManagergetParamManager (Song *song)
 
virtual void offerReceivedNote (ModelStackWithTimelineCounter *modelStackWithTimelineCounter, MIDICable &cable, bool on, int32_t channel, int32_t note, int32_t velocity, bool shouldRecordNotes, bool *doingMidiThru)
 
virtual void offerReceivedPitchBend (ModelStackWithTimelineCounter *modelStackWithTimelineCounter, MIDICable &cable, uint8_t channel, uint8_t data1, uint8_t data2, bool *doingMidiThru)
 
virtual void offerReceivedCC (ModelStackWithTimelineCounter *modelStackWithTimelineCounter, MIDICable &cable, uint8_t channel, uint8_t ccNumber, uint8_t value, bool *doingMidiThru)
 
virtual void offerReceivedAftertouch (ModelStackWithTimelineCounter *modelStackWithTimelineCounter, MIDICable &cable, int32_t channel, int32_t value, int32_t noteCode, bool *doingMidiThru)
 
virtual void stopAnyAuditioning (ModelStack *modelStack)
 
virtual void offerBendRangeUpdate (ModelStack *modelStack, MIDICable &cable, int32_t channelOrZone, int32_t whichBendRange, int32_t bendSemitones)
 
Error possiblyBeginArrangementRecording (Song *song, int32_t newPos)
 
void endArrangementPlayback (Song *song, int32_t actualEndPos, uint32_t timeRemainder)
 
virtual ModelStackWithAutoParamgetModelStackWithParam (ModelStackWithTimelineCounter *modelStack, Clip *clip, int32_t paramID, deluge::modulation::params::Kind paramKind, bool affectEntire, bool useMenuStack)=0
 
virtual bool needsEarlyPlayback () const
 
bool hasRecorder ()
 
bool shouldRenderInSong ()
 
void setRenderingToAudioOutput (bool monitoring, Output *output)
 disable rendering to the song buffer if this clip is the input to an audio output that's monitoring
 
bool addRecorder (SampleRecorder *newRecorder)
 
bool removeRecorder ()
 
OutputgetOutputRecordingThis ()
 

Public Attributes

String dirPath
 
bool editedByUser = false
 
bool existsOnCard = false
 
bool shouldHibernate {true}
 
uint8_t defaultVelocity = FlashStorage::defaultVelocity
 
LearnedMIDI midiInput
 
- Public Attributes inherited from Output
ClipInstanceVector clipInstances
 
String name
 
Outputnext
 
const OutputType type
 
bool mutedInArrangementMode
 
bool mutedInArrangementModeBeforeStemExport
 
bool exportStem
 
bool soloingInArrangementMode
 
bool inValidState
 
bool wasCreatedForAutoOverdub
 
bool armedForRecording
 
int16_t colour {0}
 
uint8_t modKnobMode
 
bool alreadyGotItsNewClip
 
bool isGettingSoloingClip
 
bool nextClipFoundShouldGetArmed
 
bool recordingInArrangement
 

Protected Member Functions

ClipcreateNewClipForArrangementRecording (ModelStack *modelStack) final
 
Error setupDefaultAudioFileDir ()
 
- Protected Member Functions inherited from Output
virtual void clearRecordingFrom ()
 

Additional Inherited Members

- Protected Attributes inherited from Output
bool recorderIsEchoing {false}
 
OutputoutputRecordingThisOutput {nullptr}
 
ClipactiveClip {nullptr}
 
SampleRecorderrecorder {nullptr}
 

Member Function Documentation

◆ createNewClipForArrangementRecording()

Clip * Instrument::createNewClipForArrangementRecording ( ModelStack * modelStack)
finalprotectedvirtual

Implements Output.

◆ getNameXMLTag()

char const * Instrument::getNameXMLTag ( )
inlineoverridevirtual

Reimplemented from Output.

◆ matchesPreset()

bool Instrument::matchesPreset ( OutputType otherType,
int32_t channel,
int32_t channelSuffix,
char const * otherName,
char const * otherPath )
inlineoverridevirtual

Implements Output.

◆ readTagFromFile()

bool Instrument::readTagFromFile ( Deserializer & reader,
char const * tagName )
overridevirtual

Reimplemented from Output.

◆ writeDataToFile()

bool Instrument::writeDataToFile ( Serializer & writer,
Clip * clipForSavingOutputOnly,
Song * song )
overridevirtual

Reimplemented from Output.


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