From 3579b8180194d46d150a573a00424d474fb69ccc Mon Sep 17 00:00:00 2001 From: ustk <50467457+ustk@users.noreply.github.com> Date: Sun, 19 Jan 2025 21:51:18 +0100 Subject: [PATCH] Fix internalAddNoteOn note number limit (#599) * Fix internalAddNoteOn note number limit * Fix note and CC limits to 0-127 range everywhere --- hi_backend/backend/BackendEditor.cpp | 2 +- hi_backend/backend/BackendProcessor.cpp | 2 +- hi_core/hi_core/HiseEventBufferUnitTests.cpp | 2 +- hi_core/hi_core/MacroControlledComponents.cpp | 2 +- hi_core/hi_core/UtilityClasses.cpp | 4 ++-- hi_core/hi_sampler/sampler/ModulatorSampler.cpp | 2 +- hi_core/hi_sampler/sampler/SampleImporter.cpp | 2 +- hi_core/hi_sampler/sampler/SfzImporter.cpp | 2 +- .../hi_sampler/sampler/components/FileNamePartComponent.h | 2 +- hi_core/hi_sampler/sampler/components/SampleEditHandler.cpp | 2 +- .../sampler/components/SampleEditorComponents.cpp | 2 +- .../hi_sampler/sampler/components/ValueSettingComponent.cpp | 2 +- hi_scripting/scripting/HardcodedScriptProcessor.h | 2 +- hi_scripting/scripting/api/ScriptingApi.cpp | 6 +++--- tools/scripts/RangeLimiter.js | 2 +- tools/scripts/TrueLegatoIntervalScript.js | 2 +- 16 files changed, 19 insertions(+), 19 deletions(-) diff --git a/hi_backend/backend/BackendEditor.cpp b/hi_backend/backend/BackendEditor.cpp index fd9426e874..3bf667e69b 100644 --- a/hi_backend/backend/BackendEditor.cpp +++ b/hi_backend/backend/BackendEditor.cpp @@ -1428,7 +1428,7 @@ void MainTopBar::QuickPlayComponent::mouseDown(const MouseEvent& e) int NoteOffset = 900; - for(int i = 0; i < 127; i++) + for(int i = 0; i < 128; i++) { String n; n << MidiMessage::getMidiNoteName(i, true, true, 3); diff --git a/hi_backend/backend/BackendProcessor.cpp b/hi_backend/backend/BackendProcessor.cpp index 9f9a311041..6b92692a60 100644 --- a/hi_backend/backend/BackendProcessor.cpp +++ b/hi_backend/backend/BackendProcessor.cpp @@ -638,7 +638,7 @@ void BackendProcessor::pushToAnalyserBuffer(AnalyserInfo::Ptr info, bool post, c { if(!post) { - for(int i = 0; i < 127; i++) + for(int i = 0; i < 128; i++) { if(getKeyboardState().isNoteOn(1, i)) { diff --git a/hi_core/hi_core/HiseEventBufferUnitTests.cpp b/hi_core/hi_core/HiseEventBufferUnitTests.cpp index eb8ee18217..2b3dfc7e36 100644 --- a/hi_core/hi_core/HiseEventBufferUnitTests.cpp +++ b/hi_core/hi_core/HiseEventBufferUnitTests.cpp @@ -357,7 +357,7 @@ class HiseEventUnitTest : public UnitTest b.clear(); - for (uint8 i = 0; i < 127; i++) + for (uint8 i = 0; i < 128; i++) { HiseEvent e(HiseEvent::Type::NoteOn, i, 50, 1); diff --git a/hi_core/hi_core/MacroControlledComponents.cpp b/hi_core/hi_core/MacroControlledComponents.cpp index dec2547ca0..f69b164a88 100644 --- a/hi_core/hi_core/MacroControlledComponents.cpp +++ b/hi_core/hi_core/MacroControlledComponents.cpp @@ -154,7 +154,7 @@ void MacroControlledObject::enableMidiLearnWithPopup() { auto value = handler->getMidiControllerNumber(processor, parameterToUse); - for (int i = 1; i < 127; i++) + for (int i = 0; i < 128; i++) { if (handler->shouldAddControllerToPopup(i)) mToUse.addItem(i + MidiOffset, handler->getControllerName(i), handler->isMappable(i), i == value); diff --git a/hi_core/hi_core/UtilityClasses.cpp b/hi_core/hi_core/UtilityClasses.cpp index e98fd64af4..fdda561918 100644 --- a/hi_core/hi_core/UtilityClasses.cpp +++ b/hi_core/hi_core/UtilityClasses.cpp @@ -494,7 +494,7 @@ CustomKeyboardState::CustomKeyboardState(): MidiKeyboardState(), lowestKey(40) { - for (int i = 0; i < 127; i++) + for (int i = 0; i < 128; i++) { setColourForSingleKey(i, Colours::transparentBlack); } @@ -512,7 +512,7 @@ bool CustomKeyboardState::isColourDefinedForKey(int noteNumber) const void CustomKeyboardState::setColourForSingleKey(int noteNumber, Colour colour) { - if (noteNumber >= 0 && noteNumber < 127) + if (noteNumber >= 0 && noteNumber <= 127) { noteColours[noteNumber] = colour; } diff --git a/hi_core/hi_sampler/sampler/ModulatorSampler.cpp b/hi_core/hi_sampler/sampler/ModulatorSampler.cpp index a9883405fa..6374666e6e 100644 --- a/hi_core/hi_sampler/sampler/ModulatorSampler.cpp +++ b/hi_core/hi_sampler/sampler/ModulatorSampler.cpp @@ -169,7 +169,7 @@ syncVoiceHandler(false) sampleStartChain->setColour(JUCE_LIVE_CONSTANT_OFF(Colour(0xff5e8127))); crossFadeChain->setColour(JUCE_LIVE_CONSTANT_OFF(Colour(0xff884b29))); - for (int i = 0; i < 127; i++) + for (int i = 0; i < 128; i++) samplerDisplayValues.currentNotes[i] = 0; setVoiceAmount(numVoices); diff --git a/hi_core/hi_sampler/sampler/SampleImporter.cpp b/hi_core/hi_sampler/sampler/SampleImporter.cpp index 05bd629631..2674b4f788 100644 --- a/hi_core/hi_sampler/sampler/SampleImporter.cpp +++ b/hi_core/hi_sampler/sampler/SampleImporter.cpp @@ -505,7 +505,7 @@ XmlElement *SampleImporter::createXmlDescriptionForFile(const File &f, int index int root = -1; - for(int i = 0; i < 127; i++) + for(int i = 0; i < 128; i++) { if(properties[Root] == MidiMessage::getMidiNoteName(i, true, true, 3)) { diff --git a/hi_core/hi_sampler/sampler/SfzImporter.cpp b/hi_core/hi_sampler/sampler/SfzImporter.cpp index 8f145dace9..850a91fcd8 100644 --- a/hi_core/hi_sampler/sampler/SfzImporter.cpp +++ b/hi_core/hi_sampler/sampler/SfzImporter.cpp @@ -95,7 +95,7 @@ int getNoteNumberFromNameOrNumber(const String &data) { const String noteName = data.toUpperCase(); - for(int i = 0; i < 127; i++) + for(int i = 0; i < 128; i++) { if(noteName.contains(MidiMessage::getMidiNoteName(i, true, true, 3))) { diff --git a/hi_core/hi_sampler/sampler/components/FileNamePartComponent.h b/hi_core/hi_sampler/sampler/components/FileNamePartComponent.h index 13f2484d0d..cb041079e6 100644 --- a/hi_core/hi_sampler/sampler/components/FileNamePartComponent.h +++ b/hi_core/hi_sampler/sampler/components/FileNamePartComponent.h @@ -241,7 +241,7 @@ class FileNamePartComponent : public Component, String cleanedToken = token.toUpperCase().removeCharacters(" "); - for(int i = 0; i < 127; i++) + for(int i = 0; i < 128; i++) if(MidiMessage::getMidiNoteName(i, true, true, 3) == cleanedToken) return i; } diff --git a/hi_core/hi_sampler/sampler/components/SampleEditHandler.cpp b/hi_core/hi_sampler/sampler/components/SampleEditHandler.cpp index 91eba09372..4a6b971901 100644 --- a/hi_core/hi_sampler/sampler/components/SampleEditHandler.cpp +++ b/hi_core/hi_sampler/sampler/components/SampleEditHandler.cpp @@ -316,7 +316,7 @@ void SampleEditHandler::updateMainSound(SampleEditHandler& s, ModulatorSamplerSo bool SampleEditHandler::newKeysPressed(const uint8 *currentNotes) { - for (int i = 0; i < 127; i++) + for (int i = 0; i < 128; i++) { if (currentNotes[i] != 0) return true; } diff --git a/hi_core/hi_sampler/sampler/components/SampleEditorComponents.cpp b/hi_core/hi_sampler/sampler/components/SampleEditorComponents.cpp index bac2853561..c48b4d31d4 100644 --- a/hi_core/hi_sampler/sampler/components/SampleEditorComponents.cpp +++ b/hi_core/hi_sampler/sampler/components/SampleEditorComponents.cpp @@ -685,7 +685,7 @@ void SamplerSoundMap::paintOverChildren(Graphics &g) g.fillPath(p); } - for (int i = 0; i < 127; i++) + for (int i = 0; i < 128; i++) { if (pressedKeys[i] != 0) { diff --git a/hi_core/hi_sampler/sampler/components/ValueSettingComponent.cpp b/hi_core/hi_sampler/sampler/components/ValueSettingComponent.cpp index 7ff5e34ca0..f7dd5127b2 100644 --- a/hi_core/hi_sampler/sampler/components/ValueSettingComponent.cpp +++ b/hi_core/hi_sampler/sampler/components/ValueSettingComponent.cpp @@ -282,7 +282,7 @@ void ValueSettingComponent::labelTextChanged (Label* labelThatHasChanged) if(valueLabel->getText().containsAnyOf("CDEFGAB#")) { - for(int i = 0; i < 127; i++) + for(int i = 0; i < 128; i++) { if(MidiMessage::getMidiNoteName(i, true, true, 3) == valueLabel->getText()) { diff --git a/hi_scripting/scripting/HardcodedScriptProcessor.h b/hi_scripting/scripting/HardcodedScriptProcessor.h index b9d1e48c6f..cb52fc4015 100644 --- a/hi_scripting/scripting/HardcodedScriptProcessor.h +++ b/hi_scripting/scripting/HardcodedScriptProcessor.h @@ -498,7 +498,7 @@ class CCToNoteProcessor : public HardcodedScriptProcessor ccSelector = Content.addComboBox("ccSelector", 309, 15); - for (int i = 1; i < 127; i++) + for (int i = 0; i < 128; i++) { ccSelector->addItem("CC " + String(i)); } diff --git a/hi_scripting/scripting/api/ScriptingApi.cpp b/hi_scripting/scripting/api/ScriptingApi.cpp index 255f2a9ae1..f887725e34 100644 --- a/hi_scripting/scripting/api/ScriptingApi.cpp +++ b/hi_scripting/scripting/api/ScriptingApi.cpp @@ -2382,7 +2382,7 @@ void ScriptingApi::Engine::setLatencySamples(int latency) int ScriptingApi::Engine::getMidiNoteFromName(String midiNoteName) const { - for (int i = 0; i < 127; i++) + for (int i = 0; i < 128; i++) { if (getMidiNoteName(i) == midiNoteName) return i; @@ -6194,7 +6194,7 @@ int ScriptingApi::Synth::internalAddNoteOn(int channel, int noteNumber, int velo { if (channel > 0 && channel <= 16) { - if (noteNumber >= 0 && noteNumber < 127) + if (noteNumber >= 0 && noteNumber <= 127) { if (velocity >= 0 && velocity <= 127) { @@ -6265,7 +6265,7 @@ void ScriptingApi::Synth::addNoteOff(int channel, int noteNumber, int timeStampS { if (channel > 0 && channel <= 16) { - if (noteNumber >= 0 && noteNumber < 127) + if (noteNumber >= 0 && noteNumber <= 127) { if (timeStampSamples >= 0) { diff --git a/tools/scripts/RangeLimiter.js b/tools/scripts/RangeLimiter.js index be687847de..50145ed3fc 100644 --- a/tools/scripts/RangeLimiter.js +++ b/tools/scripts/RangeLimiter.js @@ -2,7 +2,7 @@ lowerLimit = Content.addComboBox("lowerLimit", 0, 0); upperLimit = Content.addComboBox("upperLimit", 150, 0); -for(i = 0; i < 127; i++) +for(i = 0; i < 128; i++) { lowerLimit.addItem(Engine.getMidiNoteName(i)); upperLimit.addItem(Engine.getMidiNoteName(i)); diff --git a/tools/scripts/TrueLegatoIntervalScript.js b/tools/scripts/TrueLegatoIntervalScript.js index 4de17456e9..06cc009c74 100644 --- a/tools/scripts/TrueLegatoIntervalScript.js +++ b/tools/scripts/TrueLegatoIntervalScript.js @@ -7,7 +7,7 @@ VelocityCC = Content.addComboBox("VelocityCC", 10, 10); VelocityCC.addItem("Velocity"); -for(i = 0; i < 127; i++) +for(i = 0; i < 128; i++) { VelocityCC.addItem("CC " + (i+1)); }