46 Drum(DrumType newType);
47 ~Drum()
override =
default;
52 bool noteRowAssignedTemp;
53 uint8_t earlyNoteVelocity;
54 bool earlyNoteStillActive;
57 uint8_t lastMIDIChannelAuditioned;
59 int8_t lastExpressionInputsReceived[2][kNumExpressionDimensions];
70 int32_t fromMIDIChannel = MIDI_CHANNEL_NONE, uint32_t sampleSyncLength = 0,
71 int32_t ticksLate = 0, uint32_t samplesLate = 0) = 0;
74 virtual Error loadAllSamples(
bool mayActuallyReadFiles) {
return Error::NONE; }
75 virtual void prepareDrumToHaveNoActiveClip() {}
78 virtual Error readFromFile(
Deserializer& reader,
Song* song,
Clip* clip, int32_t readAutomationUpToPos) = 0;
79 virtual void drumWontBeRenderedForAWhile();
81 virtual void getName(
char* buffer) = 0;
83 void writeMIDICommandsToFile(
Serializer& writer);
84 bool readDrumTagFromFile(
Deserializer& reader,
char const* tagName);
85 void recordNoteOnEarly(int32_t velocity,
bool noteTailsAllowed);
87 int32_t expressionDimension, int32_t level);
88 virtual void expressionEvent(int32_t newValue, int32_t expressionDimension) {}
89 void getCombinedExpressionInputs(int16_t* combined);
Definition model_stack.h:231