zynaddsubfx

ZynAddSubFX open source synthesizer
Log | Files | Refs | Submodules | LICENSE

commit 2b1616c6e6be4be44f7a2eeae7407847fd071f5d
parent d7ca41c8a2b027ddd35e60fe1423e074368d06e3
Author: Hans Petter Selasky <hps@selasky.org>
Date:   Sun,  3 Feb 2019 19:51:41 +0100

Optimise the getRunningNotes() function.

Signed-off-by: Hans Petter Selasky <hps@selasky.org>

Diffstat:
Msrc/Containers/NotePool.cpp | 18+++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/src/Containers/NotePool.cpp b/src/Containers/NotePool.cpp @@ -243,17 +243,17 @@ bool NotePool::existsRunningNote(void) const int NotePool::getRunningNotes(void) const { - bool running[256] = {0}; - for(auto &desc:activeDesc()) { - //printf("note!(%d)\n", desc.note); - if(desc.playing() || desc.sustained()) - running[desc.note] = true; - } - + bool running[256] = {}; int running_count = 0; - for(int i=0; i<256; ++i) - running_count += running[i]; + for(auto &desc:activeDesc()) { + if(desc.playing() == false && desc.sustained() == false) + continue; + if (running[desc.note] != false) + continue; + running[desc.note] = true; + running_count++; + } return running_count; } void NotePool::enforceKeyLimit(int limit)