|
Drum * | getNextDrum (Drum *fromSoundSource) |
|
Drum * | getPrevDrum (Drum *fromSoundSource) |
|
bool | writeDataToFile (Serializer &writer, Clip *clipForSavingOutputOnly, Song *song) override |
|
void | addDrum (Drum *newDrum) |
|
Error | readFromFile (Deserializer &reader, Song *song, Clip *clip, int32_t readAutomationUpToPos) override |
|
Drum * | getFirstUnassignedDrum (InstrumentClip *clip) |
|
int32_t | getDrumIndex (Drum *drum) |
|
Drum * | getDrumFromIndex (int32_t index) |
|
Drum * | getDrumFromIndexAllowNull (int32_t index) |
|
Error | loadAllAudioFiles (bool mayActuallyReadFiles) override |
|
void | cutAllSound () override |
|
void | renderOutput (ModelStack *modelStack, std::span< StereoSample > buffer, int32_t *reverbBuffer, int32_t reverbAmountAdjust, int32_t sideChainHitPending, bool shouldLimitDelayFeedback, bool isClipActive) override |
|
void | offerReceivedCC (ModelStackWithTimelineCounter *modelStackWithTimelineCounter, MIDICable &cable, uint8_t channel, uint8_t ccNumber, uint8_t value, bool *doingMidiThru) override |
|
void | receivedCCForKit (ModelStackWithTimelineCounter *modelStackWithTimelineCounter, MIDICable &cable, MIDIMatchType match, uint8_t channel, uint8_t ccNumber, uint8_t value, bool *doingMidiThru, Clip *clip) |
| for learning a whole kit to a single channel, offer cc to all drums
|
|
void | offerReceivedCCToModControllable (MIDICable &cable, uint8_t channel, uint8_t ccNumber, uint8_t value, ModelStackWithTimelineCounter *modelStack) |
|
void | offerReceivedCCToLearnedParams (MIDICable &cable, uint8_t channel, uint8_t ccNumber, uint8_t value, ModelStackWithTimelineCounter *modelStack) override |
|
void | offerReceivedPitchBend (ModelStackWithTimelineCounter *modelStackWithTimelineCounter, MIDICable &cable, uint8_t channel, uint8_t data1, uint8_t data2, bool *doingMidiThru) override |
|
void | receivedPitchBendForDrum (ModelStackWithTimelineCounter *modelStackWithTimelineCounter, Drum *thisDrum, uint8_t data1, uint8_t data2, MIDIMatchType match, uint8_t channel, bool *doingMidiThru) |
|
void | receivedPitchBendForKit (ModelStackWithTimelineCounter *modelStackWithTimelineCounter, MIDICable &cable, MIDIMatchType match, uint8_t channel, uint8_t data1, uint8_t data2, bool *doingMidiThru) |
| for pitch bend received on a channel learnt to a whole clip
|
|
bool | offerReceivedPitchBendToLearnedParams (MIDICable &cable, uint8_t channel, uint8_t data1, uint8_t data2, ModelStackWithTimelineCounter *modelStack) override |
| Pitch bend is available in the mod matrix as X and shouldn't be learned to params anymore (post 4.0)
|
|
void | receivedMPEYForDrum (ModelStackWithTimelineCounter *modelStackWithTimelineCounter, Drum *thisDrum, MIDIMatchType match, uint8_t channel, uint8_t value) |
|
void | offerReceivedAftertouch (ModelStackWithTimelineCounter *modelStackWithTimelineCounter, MIDICable &cable, int32_t channel, int32_t value, int32_t noteCode, bool *doingMidiThru) override |
|
void | receivedAftertouchForDrum (ModelStackWithTimelineCounter *modelStackWithTimelineCounter, Drum *thisDrum, MIDIMatchType match, uint8_t channel, uint8_t value) |
|
void | receivedAftertouchForKit (ModelStackWithTimelineCounter *modelStackWithTimelineCounter, MIDICable &cable, MIDIMatchType match, int32_t channel, int32_t value, int32_t noteCode, bool *doingMidiThru) |
|
void | offerReceivedNote (ModelStackWithTimelineCounter *modelStackWithTimelineCounter, MIDICable &cable, bool on, int32_t channel, int32_t note, int32_t velocity, bool shouldRecordNotes, bool *doingMidiThru) override |
|
void | receivedNoteForDrum (ModelStackWithTimelineCounter *modelStack, MIDICable &cable, bool on, int32_t channel, int32_t note, int32_t velocity, bool shouldRecordNotes, bool *doingMidiThru, Drum *thisDrum) |
|
void | receivedNoteForKit (ModelStackWithTimelineCounter *modelStack, MIDICable &cable, bool on, int32_t channel, int32_t note, int32_t velocity, bool shouldRecordNotes, bool *doingMidiThru, InstrumentClip *clip) |
| maps a note received on kit input channel to a drum. Note is zero indexed to first drum
|
|
void | processParamFromInputMIDIChannel (int32_t cc, int32_t newValue, ModelStackWithTimelineCounter *modelStack) override |
|
ArpeggiatorSettings * | getArpSettings (InstrumentClip *clip=nullptr) |
|
void | beenEdited (bool shouldMoveToEmptySlot=true) override |
|
void | choke () |
|
void | resyncLFOs () override |
|
void | removeDrumFromKitArpeggiator (int32_t drumIndex) |
|
void | removeDrum (Drum *drum) |
|
ModControllable * | toModControllable () override |
|
SoundDrum * | getDrumFromName (char const *name, bool onlyIfNoNoteRow=false) |
|
Error | makeDrumNameUnique (String *name, int32_t startAtNumber) |
|
bool | setActiveClip (ModelStackWithTimelineCounter *modelStack, PgmChangeSend maySendMIDIPGMs) override |
|
void | setupPatching (ModelStackWithTimelineCounter *modelStack) override |
|
void | compensateInstrumentVolumeForResonance (ParamManagerForTimeline *paramManager, Song *song) |
|
void | deleteBackedUpParamManagers (Song *song) override |
|
void | prepareForHibernationOrDeletion () override |
|
int32_t | doTickForwardForArp (ModelStack *modelStack, int32_t currentPos) override |
|
void | loadCrucialAudioFilesOnly () override |
|
GateDrum * | getGateDrumForChannel (int32_t gateChannel) |
|
void | resetDrumTempValues () |
|
void | setupWithoutActiveClip (ModelStack *modelStack) override |
|
void | getThingWithMostReverb (Sound **soundWithMostReverb, ParamManager **paramManagerWithMostReverb, GlobalEffectableForClip **globalEffectableWithMostReverb, int32_t *highestReverbAmountFound) override |
|
uint8_t * | getModKnobMode () override |
|
Output * | toOutput () override |
|
bool | isNoteRowStillAuditioningAsLinearRecordingEnded (NoteRow *noteRow) override |
|
bool | allowNoteTails (NoteRow *noteRow) |
|
void | stopAnyAuditioning (ModelStack *modelStack) override |
|
bool | isAnyAuditioningHappening () override |
|
void | beginAuditioningforDrum (ModelStackWithNoteRow *modelStack, Drum *drum, int32_t velocity, int16_t const *mpeValues, int32_t fromMIDIChannel=MIDI_CHANNEL_NONE) |
|
void | endAuditioningForDrum (ModelStackWithNoteRow *modelStack, Drum *drum, int32_t velocity=kDefaultLiftValue) |
|
void | offerBendRangeUpdate (ModelStack *modelStack, MIDICable &cable, int32_t channelOrZone, int32_t whichBendRange, int32_t bendSemitones) override |
|
bool | renderGlobalEffectableForClip (ModelStackWithTimelineCounter *modelStack, std::span< StereoSample > globalEffectableBuffer, int32_t *bufferToTransferTo, int32_t *reverbBuffer, int32_t reverbAmountAdjust, int32_t sideChainHitPending, bool shouldLimitDelayFeedback, bool isClipActive, int32_t pitchAdjust, int32_t amplitudeAtStart, int32_t amplitudeAtEnd) override |
|
char const * | getXMLTag () override |
|
ModelStackWithAutoParam * | getModelStackWithParam (ModelStackWithTimelineCounter *modelStack, Clip *clip, int32_t paramID, deluge::modulation::params::Kind paramKind, bool affectEntire, bool useMenuStack) override |
| for a kit we have two types of automation: with Affect Entire and without Affect Entire
|
|
ModelStackWithAutoParam * | getModelStackWithParamForKit (ModelStackWithTimelineCounter *modelStack, Clip *clip, int32_t paramID, deluge::modulation::params::Kind paramKind, bool useMenuStack) |
|
ModelStackWithAutoParam * | getModelStackWithParamForKitRow (ModelStackWithTimelineCounter *modelStack, Clip *clip, int32_t paramID, deluge::modulation::params::Kind paramKind, bool useMenuStack) |
|
Drum * | getDrumFromNoteCode (InstrumentClip *clip, int32_t noteCode) |
| find the drum matching the noteCode, counting up from 0
|
|
void | noteOnPreKitArp (ModelStackWithThreeMainThings *modelStack, Drum *drum, uint8_t velocity, int16_t const *mpeValues, int32_t fromMIDIChannel=MIDI_CHANNEL_NONE, uint32_t sampleSyncLength=0, int32_t ticksLate=0, uint32_t samplesLate=0) |
|
void | noteOffPreKitArp (ModelStackWithThreeMainThings *modelStack, Drum *drum, int32_t velocity=kDefaultLiftValue) |
|
| 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) |
|
void | deleteAnyInstancesOfClip (InstrumentClip *clip) |
|
bool | readTagFromFile (Deserializer &reader, char const *tagName) override |
|
virtual void | compensateInstrumentVolumeForResonance (ModelStackWithThreeMainThings *modelStack) |
|
char const * | getNameXMLTag () override |
|
virtual char const * | getSlotXMLTag () |
|
virtual char const * | getSubSlotXMLTag () |
|
| Output (OutputType newType) |
|
Clip * | getActiveClip () const |
|
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 bool | isSkippingRendering () |
|
bool | clipHasInstance (Clip *clip) |
|
bool | isEmpty (bool displayPopup=true) |
|
void | clipLengthChanged (Clip *clip, int32_t oldLength) |
|
Clip * | getClipFromName (String *name) |
| If there's a clip matching the name on this output, returns it.
|
|
void | endAnyArrangementRecording (Song *song, int32_t actualEndPos, uint32_t timeRemainder) |
|
virtual bool | wantsToBeginArrangementRecording () |
|
void | writeToFile (Clip *clipForSavingOutputOnly, Song *song) |
|
virtual void | sendMIDIPGM () |
|
virtual ParamManager * | getParamManager (Song *song) |
|
Error | possiblyBeginArrangementRecording (Song *song, int32_t newPos) |
|
void | endArrangementPlayback (Song *song, int32_t actualEndPos, uint32_t timeRemainder) |
|
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 () |
|
Output * | getOutputRecordingThis () |
|
int32_t | getSidechainVolumeAmountAsPatchCableDepth (ParamManager *paramManager) |
|
void | modButtonAction (uint8_t whichModButton, bool on, ParamManagerForTimeline *paramManager) final |
|
bool | modEncoderButtonAction (uint8_t whichModEncoder, bool on, ModelStackWithThreeMainThings *modelStack) final |
|
void | getThingWithMostReverb (Clip *activeClip, Sound **soundWithMostReverb, ParamManager **paramManagerWithMostReverb, GlobalEffectableForClip **globalEffectableWithMostReverb, int32_t *highestReverbAmountFound) |
|
q31_t | saturate (q31_t data, uint32_t *workingValue) |
|
void | cloneFrom (ModControllableAudio *other) override |
|
ModelStackWithAutoParam * | getParamFromModEncoder (int32_t whichModEncoder, ModelStackWithThreeMainThings *modelStack, bool allowCreation=true) override |
|
void | setupFilterSetConfig (int32_t *postFXVolume, ParamManager *paramManager) |
|
void | processFilters (std::span< StereoSample > buffer) |
|
void | compensateVolumeForResonance (ParamManagerForTimeline *paramManager) |
|
void | processFXForGlobalEffectable (std::span< StereoSample > buffer, int32_t *postFXVolume, ParamManager *paramManager, const Delay::State &delayWorkingState, bool anySoundComingIn, q31_t verbAmount) |
|
void | writeAttributesToFile (Serializer &writer, bool writeToFile) |
|
void | writeTagsToFile (Serializer &writer, ParamManager *paramManager, bool writeToFile) |
|
Error | readTagFromFile (Deserializer &reader, char const *tagName, ParamManagerForTimeline *paramManager, int32_t readAutomationUpToPos, ArpeggiatorSettings *arpSettings, Song *song) override |
|
Delay::State | createDelayWorkingState (ParamManager ¶mManager, bool shouldLimitDelayFeedback=false, bool soundComingIn=true) |
|
bool | isEditingComp () override |
|
int32_t | getKnobPosForNonExistentParam (int32_t whichModEncoder, ModelStackWithAutoParam *modelStack) override |
|
ActionResult | modEncoderActionForNonExistentParam (int32_t offset, int32_t whichModEncoder, ModelStackWithAutoParam *modelStack) override |
|
ModFXType | getModFXType () override |
|
void | processStutter (std::span< StereoSample > buffer, ParamManager *paramManager) |
|
void | processReverbSendAndVolume (std::span< StereoSample > buffer, int32_t *reverbBuffer, int32_t postFXVolume, int32_t postReverbVolume, int32_t reverbSendAmount, int32_t pan=0, bool doAmplitudeIncrement=false) |
|
void | writeAttributesToFile (Serializer &writer) |
|
void | writeTagsToFile (Serializer &writer) |
|
void | processSRRAndBitcrushing (std::span< StereoSample > buffer, int32_t *postFXVolume, ParamManager *paramManager) |
|
virtual void | wontBeRenderedForAWhile () |
|
void | beginStutter (ParamManagerForTimeline *paramManager) |
|
void | endStutter (ParamManagerForTimeline *paramManager) |
|
virtual bool | setModFXType (ModFXType newType) |
|
bool | offerReceivedCCToLearnedParamsForClip (MIDICable &cable, uint8_t channel, uint8_t ccNumber, uint8_t value, ModelStackWithTimelineCounter *modelStack, int32_t noteRowIndex=-1) |
|
bool | offerReceivedCCToLearnedParamsForSong (MIDICable &cable, uint8_t channel, uint8_t ccNumber, uint8_t value, ModelStackWithThreeMainThings *modelStackWithThreeMainThings) |
|
bool | offerReceivedPitchBendToLearnedParams (MIDICable &cable, uint8_t channel, uint8_t data1, uint8_t data2, ModelStackWithTimelineCounter *modelStack, int32_t noteRowIndex=-1) |
|
virtual bool | learnKnob (MIDICable *cable, ParamDescriptor paramDescriptor, uint8_t whichKnob, uint8_t modKnobMode, uint8_t midiChannel, Song *song) |
|
bool | unlearnKnobs (ParamDescriptor paramDescriptor, Song *song) |
|
virtual void | ensureInaccessibleParamPresetValuesWithoutKnobsAreZero (Song *song) |
|
bool | isBitcrushingEnabled (ParamManager *paramManager) |
|
bool | isSRREnabled (ParamManager *paramManager) |
|
bool | hasBassAdjusted (ParamManager *paramManager) |
|
bool | hasTrebleAdjusted (ParamManager *paramManager) |
|
ModelStackWithAutoParam * | getParamFromMIDIKnob (MIDIKnob &knob, ModelStackWithThreeMainThings *modelStack) override |
| Check that autoParam isn't NULL, after calling this.
|
|
virtual bool | isSong () |
|
virtual bool | valueChangedEnoughToMatter (int32_t old_value, int32_t new_value, deluge::modulation::params::Kind kind, uint32_t paramID) |
|
virtual bool | allowNoteTails (ModelStackWithSoundFlags *modelStack, bool disregardSampleLoop=false) |
|
virtual void | polyphonicExpressionEventOnChannelOrNote (int32_t newValue, int32_t expressionDimension, int32_t channelOrNoteNumber, MIDICharacteristic whichCharacteristic) |
|
virtual void | monophonicExpressionEvent (int32_t newValue, int32_t expressionDimension) |
|