101 NoteRow(int16_t newY = -32768);
104 bool allowNoteTails, int32_t imageWidth, int32_t xScroll, uint32_t xZoom, int32_t xStart = 0,
105 int32_t xEnd = kDisplayWidth,
bool drawRepeats =
false);
108 Note* note =
nullptr);
110 int32_t numRepeatsRounded,
Action* action);
117 inline int32_t getNoteCode() {
return y; }
120 uint32_t getNumNotes();
123 bool backupOldParamManager =
true);
125 int32_t getDistanceToNextNote(int32_t pos,
ModelStackWithNoteRow const* modelStack,
bool reversed =
false);
129 bool mutedBeforeStemExport;
132 int32_t loopLengthIfIndependent;
133 int32_t lastProcessedPosIfIndependent;
134 int32_t repeatCountIfIndependent;
137 bool currentlyPlayingReversedIfIndependent;
139 SequenceDirection sequenceDirectionMode;
141 bool hasIndependentPlayPos();
148 uint8_t probabilityValue;
169 int32_t getDefaultProbability();
172 int32_t attemptNoteAdd(int32_t pos, int32_t length, int32_t velocity, int32_t probability,
Iterance iterance,
175 bool allowingNoteTails);
176 Error addCorrespondingNotes(int32_t pos, int32_t length, uint8_t velocity,
ModelStackWithNoteRow* modelStack,
177 bool allowNoteTails,
Action* action);
180 void initRowSquareInfo(
SquareInfo rowSquareInfo[kDisplayWidth],
bool anyNotes);
181 void initSquareInfo(
SquareInfo& squareInfo,
bool anyNotes, int32_t x);
186 uint8_t getSquareType(int32_t squareStart, int32_t squareWidth,
Note** firstNote,
Note** lastNote,
188 Action* action,
bool clipCurrentlyPlaying,
bool extendPreviousNoteIfPossible);
190 uint32_t wrapEditLevel,
bool actuallyExtendNoteAtStartOfArea =
false);
192 void trimNoteDataToNewClipLength(uint32_t newLength,
InstrumentClip* clip,
Action* action, int32_t noteRowId);
195 void rememberDrumName();
197 bool shiftSequenceAndMPE);
199 bool doesProbabilityExist(int32_t apartFromPos, int32_t probability, int32_t secondProbability = -1);
202 void giveMidiCommandsToDrum();
203 void grabMidiCommandsFromDrum();
204 void deleteParamManager(
bool shouldUpdatePointer =
true);
205 void deleteOldDrumNames(
bool shouldUpdatePointer =
true);
207 int32_t whichRepeatThisIs, int32_t otherClipLength);
216 int32_t changeType, int32_t changeValue);
221 uint32_t wrapEditLevel, int32_t nudgeOffset);
229 Error editNoteRepeatAcrossAllScreens(int32_t editPos, int32_t squareWidth,
ModelStackWithNoteRow* modelStack,
230 Action* action, uint32_t wrapEditLevel, int32_t newNumNotes);
232 bool hadIndependentPlayPosBefore);
235 bool shouldJustDeleteNodes =
false);
237 bool recordPolyphonicExpressionEvent(
ModelStackWithNoteRow* modelStackWithNoteRow, int32_t newValueBig,
238 int32_t expressionDimension,
bool forDrum);
246 bool noteMightBeConstant =
false,
PendingNoteOnList* pendingNoteOnList =
nullptr);
247 void playNextNote(
InstrumentClip*,
bool,
bool noteMightBeConstant =
false,
249 void findNextNoteToPlay(uint32_t);
252 bool noteRowMayMakeSound(
bool);
253 void drawTail(int32_t startTail, int32_t endTail, uint8_t squareColour[],
bool overwriteExisting,
254 uint8_t image[][3], uint8_t occupancyMask[]);
255 bool ignoredNoteOn{
false};
256 int32_t ignoreUntil{0};
257 int32_t ignoredTicks{0};