30class SoundInstrument final :
public Sound,
public MelodicInstrument {
33 bool writeDataToFile(
Serializer& writer,
Clip* clipForSavingOutputOnly,
Song* song)
override;
34 Error readFromFile(
Deserializer& reader,
Song* song,
Clip* clip, int32_t readAutomationUpToPos)
override;
35 void cutAllSound()
override;
36 bool noteIsOn(int32_t noteCode,
bool resetTimeEntered);
38 void renderOutput(
ModelStack* modelStack, std::span<StereoSample> buffer, int32_t* reverbBuffer,
39 int32_t reverbAmountAdjust, int32_t sideChainHitPending,
bool shouldLimitDelayFeedback,
40 bool isClipActive)
override;
43 void offerReceivedCCToLearnedParams(
MIDICable& cable, uint8_t channel, uint8_t ccNumber, uint8_t value,
45 Sound::offerReceivedCCToLearnedParamsForClip(cable, channel, ccNumber, value, modelStack);
49 return Sound::offerReceivedPitchBendToLearnedParams(cable, channel, data1, data2, modelStack);
52 Error loadAllAudioFiles(
bool mayActuallyReadFiles)
override;
53 void resyncLFOs()
override;
56 void setupPatchingForAllParamManagers(
Song* song)
override;
59 void deleteBackedUpParamManagers(
Song* song)
override;
60 void polyphonicExpressionEventOnChannelOrNote(int32_t newValue, int32_t expressionDimension,
61 int32_t channelOrNoteNumber,
62 MIDICharacteristic whichCharacteristic)
override;
63 void monophonicExpressionEvent(int32_t newValue, int32_t expressionDimension)
override;
66 int32_t fromMIDIChannel, uint8_t velocity, uint32_t sampleSyncLength, int32_t ticksLate,
67 uint32_t samplesLate)
override;
70 bool readTagFromFile(
Deserializer& reader,
char const* tagName)
override;
72 void prepareForHibernationOrDeletion()
override;
74 bool isSkippingRendering()
override {
return skippingRendering; }
75 void loadCrucialAudioFilesOnly()
override;
76 void beenEdited(
bool shouldMoveToEmptySlot =
true)
override;
77 int32_t doTickForwardForArp(ModelStack* modelStack, int32_t currentPos)
override;
78 void setupWithoutActiveClip(ModelStack* modelStack)
override;
79 void getThingWithMostReverb(Sound** soundWithMostReverb, ParamManager** paramManagerWithMostReverb,
80 GlobalEffectableForClip** globalEffectableWithMostReverb,
81 int32_t* highestReverbAmountFound)
override;
82 uint8_t* getModKnobMode()
override {
return &modKnobMode; }
83 ArpeggiatorBase* getArp()
override;
84 char const* getXMLTag()
override {
return "sound"; }
85 ArpeggiatorSettings defaultArpSettings;
Definition model_stack.h:231
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....
Definition sound_instrument.h:47