Deluge Firmware
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Protected Member Functions | List of all members
Instrument Class Referenceabstract

#include <instrument.h>

Inheritance diagram for Instrument:
Inheritance graph
Collaboration diagram for Instrument:
Collaboration graph

Public Member Functions

 Instrument (int newType)
 
virtual char const * getFilePrefix ()
 
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 (Clip *clipForSavingOutputOnly, Song *song)
 
bool readTagFromFile (char const *tagName)
 
virtual void compensateInstrumentVolumeForResonance (ModelStackWithThreeMainThings *modelStack)
 
virtual bool isNoteRowStillAuditioningAsLinearRecordingEnded (NoteRow *noteRow)=0
 
char const * getNameXMLTag ()
 
virtual char const * getSlotXMLTag ()
 
virtual char const * getSubSlotXMLTag ()
 
virtual bool isAnyAuditioningHappening ()=0
 
- Public Member Functions inherited from Output
 Output (int newType)
 
virtual ~Output ()
 
virtual void renderOutput (ModelStack *modelStack, StereoSample *startPos, StereoSample *endPos, int numSamples, int32_t *reverbBuffer, int32_t reverbAmountAdjust, int32_t sideChainHitPending, bool shouldLimitDelayFeedback, bool isClipActive)=0
 
virtual void setupWithoutActiveClip (ModelStack *modelStack)
 
virtual bool setActiveClip (ModelStackWithTimelineCounter *modelStack, int maySendMIDIPGMs=PGM_CHANGE_SEND_ONCE)
 
void pickAnActiveClipForArrangementPos (ModelStack *modelStack, int arrangementPos, int maySendMIDIPGMs)
 
void pickAnActiveClipIfPossible (ModelStack *modelStack, bool searchSessionClipsIfNeeded=true, int maySendMIDIPGMs=PGM_CHANGE_SEND_ONCE, bool setupWithoutActiveClipIfNeeded=true)
 
void detachActiveClip (Song *currentSong)
 
virtual ModControllabletoModControllable ()
 
virtual bool isSkippingRendering ()
 
bool clipHasInstance (Clip *clip)
 
void clipLengthChanged (Clip *clip, int32_t oldLength)
 
virtual void cutAllSound ()
 
virtual void getThingWithMostReverb (Sound **soundWithMostReverb, ParamManager **paramManagerWithMostReverb, GlobalEffectableForClip **globalEffectableWithMostReverb, int32_t *highestReverbAmountFound)
 
virtual bool offerReceivedPitchBendToLearnedParams (MIDIDevice *fromDevice, uint8_t channel, uint8_t data1, uint8_t data2, ModelStackWithTimelineCounter *modelStack)
 
virtual void offerReceivedCCToLearnedParams (MIDIDevice *fromDevice, 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 int readFromFile (Song *song, Clip *clip, int32_t readAutomationUpToPos)
 
virtual bool readTagFromFile (char const *tagName)
 
void writeToFile (Clip *clipForSavingOutputOnly, Song *song)
 
virtual bool writeDataToFile (Clip *clipForSavingOutputOnly, Song *song)
 
virtual int 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 char const * getNameXMLTag ()
 
virtual void offerReceivedNote (ModelStackWithTimelineCounter *modelStackWithTimelineCounter, MIDIDevice *fromDevice, bool on, int channel, int note, int velocity, bool shouldRecordNotes, bool *doingMidiThru)
 
virtual void offerReceivedPitchBend (ModelStackWithTimelineCounter *modelStackWithTimelineCounter, MIDIDevice *fromDevice, uint8_t channel, uint8_t data1, uint8_t data2, bool *doingMidiThru)
 
virtual void offerReceivedCC (ModelStackWithTimelineCounter *modelStackWithTimelineCounter, MIDIDevice *fromDevice, uint8_t channel, uint8_t ccNumber, uint8_t value, bool *doingMidiThru)
 
virtual void offerReceivedAftertouch (ModelStackWithTimelineCounter *modelStackWithTimelineCounter, MIDIDevice *fromDevice, int channel, int value, int noteCode, bool *doingMidiThru)
 
virtual void stopAnyAuditioning (ModelStack *modelStack)
 
virtual void offerBendRangeUpdate (ModelStack *modelStack, MIDIDevice *device, int channelOrZone, int whichBendRange, int bendSemitones)
 
int possiblyBeginArrangementRecording (Song *song, int newPos)
 
void endArrangementPlayback (Song *song, int32_t actualEndPos, uint32_t timeRemainder)
 

Public Attributes

String dirPath
 
bool editedByUser
 
bool existsOnCard
 
uint8_t defaultVelocity
 
- Public Attributes inherited from Output
ClipInstanceVector clipInstances
 
ClipactiveClip
 
String name
 
Outputnext
 
const uint8_t type
 
bool mutedInArrangementMode
 
bool soloingInArrangementMode
 
bool inValidState
 
bool wasCreatedForAutoOverdub
 
bool armedForRecording
 
uint8_t modKnobMode
 
bool alreadyGotItsNewClip
 
bool isGettingSoloingClip
 
bool nextClipFoundShouldGetArmed
 
bool recordingInArrangement
 

Protected Member Functions

ClipcreateNewClipForArrangementRecording (ModelStack *modelStack) final
 
int setupDefaultAudioFileDir ()
 
virtual ClipcreateNewClipForArrangementRecording (ModelStack *modelStack)=0
 

Constructor & Destructor Documentation

◆ Instrument()

Instrument::Instrument ( int  newType)

Member Function Documentation

◆ beenEdited()

void Instrument::beenEdited ( bool  shouldMoveToEmptySlot = true)
virtual

Reimplemented in NonAudioInstrument, and SoundInstrument.

◆ compensateInstrumentVolumeForResonance()

virtual void Instrument::compensateInstrumentVolumeForResonance ( ModelStackWithThreeMainThings modelStack)
inlinevirtual

Reimplemented in SoundInstrument.

◆ createNewClipForArrangementRecording()

Clip * Instrument::createNewClipForArrangementRecording ( ModelStack modelStack)
finalprotectedvirtual

Implements Output.

◆ deleteAnyInstancesOfClip()

void Instrument::deleteAnyInstancesOfClip ( InstrumentClip clip)

◆ doAnySoundsUseCC()

virtual bool Instrument::doAnySoundsUseCC ( uint8_t  channel,
uint8_t  ccNumber,
uint8_t  value 
)
inlinevirtual

◆ getFilePrefix()

virtual char const * Instrument::getFilePrefix ( )
inlinevirtual

Reimplemented in Kit, and SoundInstrument.

◆ getNameXMLTag()

char const * Instrument::getNameXMLTag ( )
inlinevirtual

Reimplemented from Output.

◆ getSlotXMLTag()

virtual char const * Instrument::getSlotXMLTag ( )
inlinevirtual

Reimplemented in MIDIInstrument, and NonAudioInstrument.

◆ getSubSlotXMLTag()

virtual char const * Instrument::getSubSlotXMLTag ( )
inlinevirtual

Reimplemented in MIDIInstrument, and NonAudioInstrument.

◆ isAnyAuditioningHappening()

virtual bool Instrument::isAnyAuditioningHappening ( )
pure virtual

Implemented in Kit, and MelodicInstrument.

◆ isNoteRowStillAuditioningAsLinearRecordingEnded()

virtual bool Instrument::isNoteRowStillAuditioningAsLinearRecordingEnded ( NoteRow noteRow)
pure virtual

Implemented in Kit, and MelodicInstrument.

◆ readTagFromFile()

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

Reimplemented from Output.

Reimplemented in MelodicInstrument, MIDIInstrument, NonAudioInstrument, and SoundInstrument.

◆ setupDefaultAudioFileDir()

int Instrument::setupDefaultAudioFileDir ( )
protected

◆ setupPatching()

virtual void Instrument::setupPatching ( ModelStackWithTimelineCounter modelStack)
inlinevirtual

Reimplemented in Kit, and SoundInstrument.

◆ writeDataToFile()

bool Instrument::writeDataToFile ( Clip clipForSavingOutputOnly,
Song song 
)
virtual

Reimplemented from Output.

Reimplemented in Kit, MIDIInstrument, and SoundInstrument.

Member Data Documentation

◆ defaultVelocity

uint8_t Instrument::defaultVelocity

◆ dirPath

String Instrument::dirPath

◆ editedByUser

bool Instrument::editedByUser

◆ existsOnCard

bool Instrument::existsOnCard

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