46 Drum(DrumType newType);
47 ~Drum()
override =
default;
53 bool noteRowAssignedTemp;
54 uint8_t earlyNoteVelocity;
55 bool earlyNoteStillActive;
58 uint8_t lastMIDIChannelAuditioned;
60 int8_t lastExpressionInputsReceived[2][kNumExpressionDimensions];
71 int32_t fromMIDIChannel = MIDI_CHANNEL_NONE, uint32_t sampleSyncLength = 0,
72 int32_t ticksLate = 0, uint32_t samplesLate = 0) = 0;
75 virtual Error loadAllSamples(
bool mayActuallyReadFiles) {
return Error::NONE; }
76 virtual void prepareDrumToHaveNoActiveClip() {}
79 virtual Error readFromFile(
Deserializer& reader,
Song* song,
Clip* clip, int32_t readAutomationUpToPos) = 0;
80 virtual void drumWontBeRenderedForAWhile();
81 virtual std::string getDrumName() = 0;
84 void writeMIDICommandsToFile(
Serializer& writer);
86 bool readDrumTagFromFile(
Deserializer& reader,
char const* tagName);
87 void recordNoteOnEarly(int32_t velocity,
bool noteTailsAllowed);
89 int32_t expressionDimension, int32_t level);
90 virtual void expressionEvent(int32_t newValue, int32_t expressionDimension) {}
91 void getCombinedExpressionInputs(int16_t* combined);
Definition model_stack.h:231