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

#include <MelodicInstrument.h>

Inheritance diagram for MelodicInstrument:
Inheritance graph
Collaboration diagram for MelodicInstrument:
Collaboration graph

Public Member Functions

 MelodicInstrument (int newType)
 
virtual void sendNote (ModelStackWithThreeMainThings *modelStack, bool isOn, int noteCode, int16_t const *mpeValues, int fromMIDIChannel=MIDI_CHANNEL_NONE, uint8_t velocity=64, uint32_t sampleSyncLength=0, int32_t ticksLate=0, uint32_t samplesLate=0)=0
 
virtual void ccReceivedFromInputMIDIChannel (int cc, int value, ModelStackWithTimelineCounter *modelStack)
 
bool writeMelodicInstrumentAttributesToFile (Clip *clipForSavingOutputOnly, Song *song)
 
void writeMelodicInstrumentTagsToFile (Clip *clipForSavingOutputOnly, Song *song)
 
bool readTagFromFile (char const *tagName)
 
void offerReceivedNote (ModelStackWithTimelineCounter *modelStackWithTimelineCounter, MIDIDevice *fromDevice, bool on, int channel, int note, int velocity, bool shouldRecordNotes, bool *doingMidiThru)
 
void offerReceivedPitchBend (ModelStackWithTimelineCounter *modelStackWithTimelineCounter, MIDIDevice *fromDevice, uint8_t channel, uint8_t data1, uint8_t data2, bool *doingMidiThru)
 
void offerReceivedCC (ModelStackWithTimelineCounter *modelStackWithTimelineCounter, MIDIDevice *fromDevice, uint8_t channel, uint8_t ccNumber, uint8_t value, bool *doingMidiThru)
 
void offerReceivedAftertouch (ModelStackWithTimelineCounter *modelStackWithTimelineCounter, MIDIDevice *fromDevice, int channel, int value, int noteCode, bool *doingMidiThru)
 
bool setActiveClip (ModelStackWithTimelineCounter *modelStack, int maySendMIDIPGMs)
 
bool isNoteRowStillAuditioningAsLinearRecordingEnded (NoteRow *noteRow) final
 
void stopAnyAuditioning (ModelStack *modelStack) final
 
bool isNoteAuditioning (int noteCode)
 
bool isAnyAuditioningHappening () final
 
void beginAuditioningForNote (ModelStack *modelStack, int note, int velocity, int16_t const *mpeValues, int fromMIDIChannel=MIDI_CHANNEL_NONE, uint32_t sampleSyncLength=0)
 
void endAuditioningForNote (ModelStack *modelStack, int note, int velocity=DEFAULT_LIFT_VALUE)
 
virtual ModelStackWithAutoParamgetParamToControlFromInputMIDIChannel (int cc, ModelStackWithThreeMainThings *modelStack)
 
void processParamFromInputMIDIChannel (int cc, int32_t newValue, ModelStackWithTimelineCounter *modelStack)
 
void polyphonicExpressionEventPossiblyToRecord (ModelStackWithTimelineCounter *modelStack, int32_t newValue, int whichExpressionDimension, int channelOrNoteNumber, int whichCharacteristic)
 
ArpeggiatorSettingsgetArpSettings (InstrumentClip *clip=NULL)
 
virtual void polyphonicExpressionEventOnChannelOrNote (int newValue, int whichExpressionDimension, int channelOrNoteNumber, int whichCharacteristic)=0
 
void offerBendRangeUpdate (ModelStack *modelStack, MIDIDevice *device, int channelOrZone, int whichBendRange, int bendSemitones)
 
- Public Member Functions inherited from Instrument
 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

Arpeggiator arpeggiator
 
EarlyNoteArray earlyNotes
 
EarlyNoteArray notesAuditioned
 
LearnedMIDI midiInput
 
- Public Attributes inherited from Instrument
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
 

Additional Inherited Members

- Protected Member Functions inherited from Instrument
ClipcreateNewClipForArrangementRecording (ModelStack *modelStack) final
 
int setupDefaultAudioFileDir ()
 
virtual ClipcreateNewClipForArrangementRecording (ModelStack *modelStack)=0
 

Constructor & Destructor Documentation

◆ MelodicInstrument()

MelodicInstrument::MelodicInstrument ( int  newType)

Member Function Documentation

◆ beginAuditioningForNote()

void MelodicInstrument::beginAuditioningForNote ( ModelStack modelStack,
int  note,
int  velocity,
int16_t const *  mpeValues,
int  fromMIDIChannel = MIDI_CHANNEL_NONE,
uint32_t  sampleSyncLength = 0 
)

◆ ccReceivedFromInputMIDIChannel()

virtual void MelodicInstrument::ccReceivedFromInputMIDIChannel ( int  cc,
int  value,
ModelStackWithTimelineCounter modelStack 
)
inlinevirtual

Reimplemented in MIDIInstrument.

◆ endAuditioningForNote()

void MelodicInstrument::endAuditioningForNote ( ModelStack modelStack,
int  note,
int  velocity = DEFAULT_LIFT_VALUE 
)

◆ getArpSettings()

ArpeggiatorSettings * MelodicInstrument::getArpSettings ( InstrumentClip clip = NULL)

◆ getParamToControlFromInputMIDIChannel()

ModelStackWithAutoParam * MelodicInstrument::getParamToControlFromInputMIDIChannel ( int  cc,
ModelStackWithThreeMainThings modelStack 
)
virtual

Reimplemented in MIDIInstrument.

◆ isAnyAuditioningHappening()

bool MelodicInstrument::isAnyAuditioningHappening ( )
finalvirtual

Implements Instrument.

◆ isNoteAuditioning()

bool MelodicInstrument::isNoteAuditioning ( int  noteCode)

◆ isNoteRowStillAuditioningAsLinearRecordingEnded()

bool MelodicInstrument::isNoteRowStillAuditioningAsLinearRecordingEnded ( NoteRow noteRow)
finalvirtual

Implements Instrument.

◆ offerBendRangeUpdate()

void MelodicInstrument::offerBendRangeUpdate ( ModelStack modelStack,
MIDIDevice device,
int  channelOrZone,
int  whichBendRange,
int  bendSemitones 
)
virtual

Reimplemented from Output.

◆ offerReceivedAftertouch()

void MelodicInstrument::offerReceivedAftertouch ( ModelStackWithTimelineCounter modelStackWithTimelineCounter,
MIDIDevice fromDevice,
int  channel,
int  value,
int  noteCode,
bool *  doingMidiThru 
)
virtual

Reimplemented from Output.

◆ offerReceivedCC()

void MelodicInstrument::offerReceivedCC ( ModelStackWithTimelineCounter modelStackWithTimelineCounter,
MIDIDevice fromDevice,
uint8_t  channel,
uint8_t  ccNumber,
uint8_t  value,
bool *  doingMidiThru 
)
virtual

Reimplemented from Output.

◆ offerReceivedNote()

void MelodicInstrument::offerReceivedNote ( ModelStackWithTimelineCounter modelStackWithTimelineCounter,
MIDIDevice fromDevice,
bool  on,
int  channel,
int  note,
int  velocity,
bool  shouldRecordNotes,
bool *  doingMidiThru 
)
virtual

Reimplemented from Output.

Reimplemented in MIDIInstrument.

◆ offerReceivedPitchBend()

void MelodicInstrument::offerReceivedPitchBend ( ModelStackWithTimelineCounter modelStackWithTimelineCounter,
MIDIDevice fromDevice,
uint8_t  channel,
uint8_t  data1,
uint8_t  data2,
bool *  doingMidiThru 
)
virtual

Reimplemented from Output.

◆ polyphonicExpressionEventOnChannelOrNote()

virtual void MelodicInstrument::polyphonicExpressionEventOnChannelOrNote ( int  newValue,
int  whichExpressionDimension,
int  channelOrNoteNumber,
int  whichCharacteristic 
)
pure virtual

Implemented in NonAudioInstrument, and SoundInstrument.

◆ polyphonicExpressionEventPossiblyToRecord()

void MelodicInstrument::polyphonicExpressionEventPossiblyToRecord ( ModelStackWithTimelineCounter modelStack,
int32_t  newValue,
int  whichExpressionDimension,
int  channelOrNoteNumber,
int  whichCharacteristic 
)

◆ processParamFromInputMIDIChannel()

void MelodicInstrument::processParamFromInputMIDIChannel ( int  cc,
int32_t  newValue,
ModelStackWithTimelineCounter modelStack 
)

◆ readTagFromFile()

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

Reimplemented from Instrument.

Reimplemented in MIDIInstrument, NonAudioInstrument, and SoundInstrument.

◆ sendNote()

virtual void MelodicInstrument::sendNote ( ModelStackWithThreeMainThings modelStack,
bool  isOn,
int  noteCode,
int16_t const *  mpeValues,
int  fromMIDIChannel = MIDI_CHANNEL_NONE,
uint8_t  velocity = 64,
uint32_t  sampleSyncLength = 0,
int32_t  ticksLate = 0,
uint32_t  samplesLate = 0 
)
pure virtual

Implemented in SoundInstrument, and NonAudioInstrument.

◆ setActiveClip()

bool MelodicInstrument::setActiveClip ( ModelStackWithTimelineCounter modelStack,
int  maySendMIDIPGMs 
)
virtual

Reimplemented from Output.

Reimplemented in MIDIInstrument, and SoundInstrument.

◆ stopAnyAuditioning()

void MelodicInstrument::stopAnyAuditioning ( ModelStack modelStack)
finalvirtual

Reimplemented from Output.

◆ writeMelodicInstrumentAttributesToFile()

bool MelodicInstrument::writeMelodicInstrumentAttributesToFile ( Clip clipForSavingOutputOnly,
Song song 
)

◆ writeMelodicInstrumentTagsToFile()

void MelodicInstrument::writeMelodicInstrumentTagsToFile ( Clip clipForSavingOutputOnly,
Song song 
)

Member Data Documentation

◆ arpeggiator

Arpeggiator MelodicInstrument::arpeggiator

◆ earlyNotes

EarlyNoteArray MelodicInstrument::earlyNotes

◆ midiInput

LearnedMIDI MelodicInstrument::midiInput

◆ notesAuditioned

EarlyNoteArray MelodicInstrument::notesAuditioned

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