|
bool | writeDataToFile (Serializer &writer, Clip *clipForSavingOutputOnly, Song *song) override |
Error | readFromFile (Deserializer &reader, Song *song, Clip *clip, int32_t readAutomationUpToPos) override |
void | cutAllSound () override |
bool | noteIsOn (int32_t noteCode, bool resetTimeEntered) |
void | renderOutput (ModelStack *modelStack, std::span< StereoSample > buffer, int32_t *reverbBuffer, int32_t reverbAmountAdjust, int32_t sideChainHitPending, bool shouldLimitDelayFeedback, bool isClipActive) override |
void | offerReceivedCCToLearnedParams (MIDICable &cable, uint8_t channel, uint8_t ccNumber, uint8_t value, ModelStackWithTimelineCounter *modelStack) override |
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)
|
Error | loadAllAudioFiles (bool mayActuallyReadFiles) override |
void | resyncLFOs () override |
ModControllable * | toModControllable () override |
bool | setActiveClip (ModelStackWithTimelineCounter *modelStack, PgmChangeSend maySendMIDIPGMs) override |
void | setupPatchingForAllParamManagers (Song *song) override |
void | setupPatching (ModelStackWithTimelineCounter *modelStack) override |
void | deleteBackedUpParamManagers (Song *song) override |
void | polyphonicExpressionEventOnChannelOrNote (int32_t newValue, int32_t expressionDimension, int32_t channelOrNoteNumber, MIDICharacteristic whichCharacteristic) override |
void | monophonicExpressionEvent (int32_t newValue, int32_t expressionDimension) override |
void | sendNote (ModelStackWithThreeMainThings *modelStack, bool isOn, int32_t noteCode, int16_t const *mpeValues, int32_t fromMIDIChannel, uint8_t velocity, uint32_t sampleSyncLength, int32_t ticksLate, uint32_t samplesLate) override |
ArpeggiatorSettings * | getArpSettings (InstrumentClip *clip=nullptr) override |
bool | readTagFromFile (Deserializer &reader, char const *tagName) override |
void | prepareForHibernationOrDeletion () override |
void | compensateInstrumentVolumeForResonance (ModelStackWithThreeMainThings *modelStack) override |
bool | isSkippingRendering () override |
void | loadCrucialAudioFilesOnly () override |
void | beenEdited (bool shouldMoveToEmptySlot=true) override |
int32_t | doTickForwardForArp (ModelStack *modelStack, int32_t currentPos) override |
void | setupWithoutActiveClip (ModelStack *modelStack) override |
void | getThingWithMostReverb (Sound **soundWithMostReverb, ParamManager **paramManagerWithMostReverb, GlobalEffectableForClip **globalEffectableWithMostReverb, int32_t *highestReverbAmountFound) override |
uint8_t * | getModKnobMode () override |
ArpeggiatorBase * | getArp () override |
char const * | getXMLTag () override |
virtual void | setSkippingRendering (bool newSkipping) |
ModFXType | getModFXType () override |
bool | setModFXType (ModFXType newType) final |
void | patchedParamPresetValueChanged (uint8_t p, ModelStackWithSoundFlags *modelStack, int32_t oldValue, int32_t newValue) |
void | render (ModelStackWithThreeMainThings *modelStack, std::span< StereoSample > output, int32_t *reverbBuffer, int32_t sideChainHitPending, int32_t reverbAmountAdjust=134217728, bool shouldLimitDelayFeedback=false, int32_t pitchAdjust=kMaxSampleValue, SampleRecorder *recorder=nullptr) |
void | ensureInaccessibleParamPresetValuesWithoutKnobsAreZero (Song *song) final |
void | ensureInaccessibleParamPresetValuesWithoutKnobsAreZero (ModelStackWithThreeMainThings *modelStack) |
void | ensureInaccessibleParamPresetValuesWithoutKnobsAreZeroWithMinimalDetails (ParamManager *paramManager) |
void | ensureParamPresetValueWithoutKnobIsZero (ModelStackWithAutoParam *modelStack) |
void | ensureParamPresetValueWithoutKnobIsZeroWithMinimalDetails (ParamManager *paramManager, int32_t p) |
PatchCableAcceptance | maySourcePatchToParam (PatchSource s, uint8_t p, ParamManager *paramManager) |
void | resyncGlobalLFOs () |
int8_t | getKnobPos (uint8_t p, ParamManagerForTimeline *paramManager, uint32_t timePos, TimelineCounter *counter) |
int32_t | getKnobPosBig (int32_t p, ParamManagerForTimeline *paramManager, uint32_t timePos, TimelineCounter *counter) |
bool | learnKnob (MIDICable *cable, ParamDescriptor paramDescriptor, uint8_t whichKnob, uint8_t modKnobMode, uint8_t midiChannel, Song *song) final |
bool | hasFilters () |
void | sampleZoneChanged (MarkerType markerType, int32_t s, ModelStackWithSoundFlags *modelStack) |
void | setNumUnison (int32_t newNum, ModelStackWithSoundFlags *modelStack) |
void | setUnisonDetune (int32_t newAmount, ModelStackWithSoundFlags *modelStack) |
void | setUnisonStereoSpread (int32_t newAmount) |
void | setModulatorTranspose (int32_t m, int32_t value, ModelStackWithSoundFlags *modelStack) |
void | setModulatorCents (int32_t m, int32_t value, ModelStackWithSoundFlags *modelStack) |
Error | readFromFile (Deserializer &reader, ModelStackWithModControllable *modelStack, int32_t readAutomationUpToPos, ArpeggiatorSettings *arpSettings) |
void | writeToFile (Serializer &writer, bool savingSong, ParamManager *paramManager, ArpeggiatorSettings *arpSettings, const char *pathAttribute=NULL) |
void | voiceUnassigned (ModelStackWithSoundFlags *modelStack) |
bool | isSourceActiveCurrently (int32_t s, ParamManagerForTimeline *paramManager) |
bool | isSourceActiveEverDisregardingMissingSample (int32_t s, ParamManager *paramManager) |
bool | isSourceActiveEver (int32_t s, ParamManager *paramManager) |
bool | isNoiseActiveEver (ParamManagerForTimeline *paramManager) |
void | noteOn (ModelStackWithThreeMainThings *modelStack, ArpeggiatorBase *arpeggiator, int32_t noteCode, int16_t const *mpeValues, uint32_t sampleSyncLength=0, int32_t ticksLate=0, uint32_t samplesLate=0, int32_t velocity=64, int32_t fromMIDIChannel=16) |
void | noteOff (ModelStackWithThreeMainThings *modelStack, ArpeggiatorBase *arpeggiator, int32_t noteCode) |
void | allNotesOff (ModelStackWithThreeMainThings *modelStack, ArpeggiatorBase *arpeggiator) |
void | noteOffPostArpeggiator (ModelStackWithSoundFlags *modelStack, int32_t noteCode=-32768) |
void | noteOnPostArpeggiator (ModelStackWithSoundFlags *modelStack, int32_t newNoteCodeBeforeArpeggiation, int32_t newNoteCodeAfterArpeggiation, int32_t velocity, int16_t const *mpeValues, uint32_t sampleSyncLength, int32_t ticksLate, uint32_t samplesLate, int32_t fromMIDIChannel=16) |
int16_t | getMaxOscTranspose (InstrumentClip *clip) |
int16_t | getMinOscTranspose () |
void | setSynthMode (SynthMode value, Song *song) |
SynthMode | getSynthMode () const |
virtual bool | isDrum () |
void | setupAsSample (ParamManagerForTimeline *paramManager) |
void | recalculateAllVoicePhaseIncrements (ModelStackWithSoundFlags *modelStack) |
Error | loadAllAudioFiles (bool mayActuallyReadFiles) |
bool | envelopeHasSustainCurrently (int32_t e, ParamManagerForTimeline *paramManager) |
bool | envelopeHasSustainEver (int32_t e, ParamManagerForTimeline *paramManager) |
bool | renderingOscillatorSyncCurrently (ParamManagerForTimeline *paramManager) |
bool | renderingOscillatorSyncEver (ParamManager *paramManager) |
void | setupAsBlankSynth (ParamManager *paramManager, bool is_dx=false) |
void | setupAsDefaultSynth (ParamManager *paramManager) |
void | modButtonAction (uint8_t whichModButton, bool on, ParamManagerForTimeline *paramManager) final |
bool | modEncoderButtonAction (uint8_t whichModEncoder, bool on, ModelStackWithThreeMainThings *modelStack) final |
int32_t | hasAnyTimeStretchSyncing (ParamManagerForTimeline *paramManager, bool getSampleLength=false, int32_t note=0) |
int32_t | hasCutOrLoopModeSamples (ParamManagerForTimeline *paramManager, int32_t note, bool *anyLooping=nullptr) |
bool | hasCutModeSamples (ParamManagerForTimeline *paramManager) |
bool | allowsVeryLateNoteStart (InstrumentClip *clip, ParamManagerForTimeline *paramManager) |
void | fastReleaseAllVoices (ModelStackWithSoundFlags *modelStack) |
void | recalculatePatchingToParam (uint8_t p, ParamManagerForTimeline *paramManager) |
void | doneReadingFromFile () |
void | compensateVolumeForResonance (ModelStackWithThreeMainThings *modelStack) |
ModelStackWithAutoParam * | getParamFromModEncoder (int32_t whichModEncoder, ModelStackWithThreeMainThings *modelStack, bool allowCreation=true) final |
void | reassessRenderSkippingStatus (ModelStackWithSoundFlags *modelStack, bool shouldJustCutModFX=false) |
void | getThingWithMostReverb (Sound **soundWithMostReverb, ParamManager **paramManagerWithMostReverb, GlobalEffectableForClip **globalEffectableWithMostReverb, int32_t *highestReverbAmountFound, ParamManagerForTimeline *paramManager) |
void | detachSourcesFromAudioFiles () |
int32_t | getSmoothedPatchedParamValue (int32_t p, ParamManager ¶mManager) const |
void | notifyValueChangeViaLPF (int32_t p, bool shouldDoParamLPF, ModelStackWithThreeMainThings const *modelStack, int32_t oldValue, int32_t newValue, bool fromAutomation) |
void | deleteMultiRange (int32_t s, int32_t r) |
void | wontBeRenderedForAWhile () override |
ModelStackWithAutoParam * | getParamFromMIDIKnob (MIDIKnob &knob, ModelStackWithThreeMainThings *modelStack) final |
| Check that autoParam isn't NULL, after calling this.
|
void | possiblySetupDefaultExpressionPatching (ParamManager *paramManager) |
void | saturate (int32_t *data, uint32_t *workingValue) |
uint32_t | getSyncedLFOPhaseIncrement (const LFOConfig &config) |
bool | hasActiveVoices () const override |
| Does this sound have any active voices?
|
size_t | numActiveVoices () const |
| Get the number of active voices.
|
void | killAllVoices () override |
| Immediately ends all active voices.
|
const ActiveVoice & | getLowestPriorityVoice () const |
| Get the voice with the lowest priority.
|
const deluge::fast_vector< ActiveVoice > & | voices () const |
| Get the voices for this sound.
|
void | freeActiveVoice (const ActiveVoice &voice, ModelStackWithSoundFlags *modelStack=nullptr, bool erase=true) |
| Releases a given voice from the Sound.
|
bool | anyNoteIsOn () override |
bool | allowNoteTails (ModelStackWithSoundFlags *modelStack, bool disregardSampleLoop=false) override |
void | prepareForHibernation () override |
virtual void | cloneFrom (ModControllableAudio *other) |
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) |
virtual Error | readTagFromFile (Deserializer &reader, char const *tagName, ParamManagerForTimeline *paramManager, int32_t readAutomationUpToPos, ArpeggiatorSettings *arpSettings, Song *song) |
void | processSRRAndBitcrushing (std::span< StereoSample > buffer, int32_t *postFXVolume, ParamManager *paramManager) |
void | beginStutter (ParamManagerForTimeline *paramManager) |
void | endStutter (ParamManagerForTimeline *paramManager) |
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) |
bool | unlearnKnobs (ParamDescriptor paramDescriptor, Song *song) |
bool | isBitcrushingEnabled (ParamManager *paramManager) |
bool | isSRREnabled (ParamManager *paramManager) |
bool | hasBassAdjusted (ParamManager *paramManager) |
bool | hasTrebleAdjusted (ParamManager *paramManager) |
virtual bool | isKit () |
virtual bool | isSong () |
virtual bool | isEditingComp () |
virtual bool | valueChangedEnoughToMatter (int32_t old_value, int32_t new_value, deluge::modulation::params::Kind kind, uint32_t paramID) |
virtual int32_t | getKnobPosForNonExistentParam (int32_t whichModEncoder, ModelStackWithAutoParam *modelStack) |
virtual ActionResult | modEncoderActionForNonExistentParam (int32_t offset, int32_t whichModEncoder, ModelStackWithAutoParam *modelStack) |
| MelodicInstrument (OutputType newType) |
virtual void | ccReceivedFromInputMIDIChannel (int32_t cc, int32_t value, ModelStackWithTimelineCounter *modelStack) |
bool | writeMelodicInstrumentAttributesToFile (Serializer &writer, Clip *clipForSavingOutputOnly, Song *song) |
void | writeMelodicInstrumentTagsToFile (Serializer &writer, Clip *clipForSavingOutputOnly, Song *song) |
void | offerReceivedNote (ModelStackWithTimelineCounter *modelStackWithTimelineCounter, MIDICable &cable, bool on, int32_t channel, int32_t note, int32_t velocity, bool shouldRecordNotes, bool *doingMidiThru) override |
void | receivedNote (ModelStackWithTimelineCounter *modelStack, MIDICable &cable, bool on, int32_t midiChannel, MIDIMatchType match, int32_t note, int32_t velocity, bool shouldRecordNotes, bool *doingMidiThru) |
void | offerReceivedPitchBend (ModelStackWithTimelineCounter *modelStackWithTimelineCounter, MIDICable &cable, uint8_t channel, uint8_t data1, uint8_t data2, bool *doingMidiThru) override |
void | receivedPitchBend (ModelStackWithTimelineCounter *modelStackWithTimelineCounter, MIDICable &cable, MIDIMatchType match, uint8_t channel, uint8_t data1, uint8_t data2, bool *doingMidiThru) |
void | offerReceivedCC (ModelStackWithTimelineCounter *modelStackWithTimelineCounter, MIDICable &cable, uint8_t channel, uint8_t ccNumber, uint8_t value, bool *doingMidiThru) override |
void | receivedCC (ModelStackWithTimelineCounter *modelStackWithTimelineCounter, MIDICable &cable, MIDIMatchType match, uint8_t channel, uint8_t ccNumber, uint8_t value, bool *doingMidiThru) |
void | offerReceivedAftertouch (ModelStackWithTimelineCounter *modelStackWithTimelineCounter, MIDICable &cable, int32_t channel, int32_t value, int32_t noteCode, bool *doingMidiThru) override |
void | receivedAftertouch (ModelStackWithTimelineCounter *modelStackWithTimelineCounter, MIDICable &cable, MIDIMatchType match, int32_t channel, int32_t value, int32_t noteCode, bool *doingMidiThru) |
bool | isNoteRowStillAuditioningAsLinearRecordingEnded (NoteRow *noteRow) final |
void | stopAnyAuditioning (ModelStack *modelStack) final |
bool | isNoteAuditioning (int32_t noteCode) |
bool | isAnyAuditioningHappening () final |
void | beginAuditioningForNote (ModelStack *modelStack, int32_t note, int32_t velocity, int16_t const *mpeValues, int32_t fromMIDIChannel=MIDI_CHANNEL_NONE, uint32_t sampleSyncLength=0) |
void | endAuditioningForNote (ModelStack *modelStack, int32_t note, int32_t velocity=kDefaultLiftValue) |
virtual ModelStackWithAutoParam * | getParamToControlFromInputMIDIChannel (int32_t cc, ModelStackWithThreeMainThings *modelStack) |
void | processParamFromInputMIDIChannel (int32_t cc, int32_t newValue, ModelStackWithTimelineCounter *modelStack) override |
void | polyphonicExpressionEventPossiblyToRecord (ModelStackWithTimelineCounter *modelStack, int32_t newValue, int32_t expressionDimension, int32_t channelOrNoteNumber, MIDICharacteristic whichCharacteristic) |
ArpeggiatorSettings * | getArpSettings (InstrumentClip *clip=nullptr) |
void | offerBendRangeUpdate (ModelStack *modelStack, MIDICable &cable, int32_t channelOrZone, int32_t whichBendRange, int32_t bendSemitones) override |
ModelStackWithAutoParam * | getModelStackWithParam (ModelStackWithTimelineCounter *modelStack, Clip *clip, int32_t paramID, deluge::modulation::params::Kind paramKind, bool affectEntire, bool useMenuStack) override |
| 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) |
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) |
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 () |