replace screenshot, fix arpeggiator reset

This commit is contained in:
Armin 2026-08-13 04:00:25 +02:00
commit 9b1d34b24c
2 changed files with 13 additions and 1 deletions

View file

@ -68,6 +68,12 @@ public:
bool wasIdle = heldNotes.empty();
heldNotes.push_back(note);
velocities[note] = velocity;
// The held set changed, so the pitch pool changed too. Restart the
// sequence from the top so the pattern always starts from a known
// note instead of continuing at stepIndex % newPoolSize.
stepIndex = 0;
randomOncePool.clear();
randomOnceOrder.clear();
// A fresh key press should sound immediately instead of waiting for
// the next host-synced tick.
if (wasIdle)
@ -76,8 +82,12 @@ public:
void noteOff(int note) {
auto it = std::find(heldNotes.begin(), heldNotes.end(), note);
if (it != heldNotes.end())
if (it != heldNotes.end()) {
heldNotes.erase(it);
stepIndex = 0;
randomOncePool.clear();
randomOnceOrder.clear();
}
}
bool hasHeldNotes() const { return !heldNotes.empty(); }
@ -97,6 +107,8 @@ public:
heldNotes.clear();
stepIndex = 0;
needsImmediateStep = false;
randomOncePool.clear();
randomOnceOrder.clear();
}
// Advances one step. Notes that should stop go into `notesToStop`

BIN
shot.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 562 KiB

After

Width:  |  Height:  |  Size: 570 KiB

Before After
Before After