Repository navigation
Fix analyzer refresh - #7
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces significant improvements to the test coverage, reliability, and musical responsiveness of the ElectroBow project. The main changes include new and expanded tests for the audio processing pipeline, enhancements to the
BowTriggerclass to better handle repeated notes and physical plucks, and build system updates to support these changes. The changes ensure that the system handles real-world musical input more robustly and that the test suite covers a wider range of scenarios, including edge cases.Test suite expansion and coverage:
tests/PitchDetectorTests.cpp, covering analyzer refresh behavior, detection of repeated plucks during sustained notes, release event delivery, envelope handling, input dynamics with non-finite values, analyzer voice retention, correct voice admission and release inVoiceManager, and full processor integration. These tests help ensure correct behavior in complex musical scenarios and edge cases. [1] [2] [3] [4]tests/PitchDetectorTests.cppto support new test cases and integration testing. [1] [2]Musical input and trigger handling improvements:
BowTriggerclass to more reliably detect new physical plucks during sustained notes, using a differential onset baseline, cooldown logic, and retrigger thresholds. This allows for more expressive and accurate performance, especially with chords and repeated notes. [1] [2] [3]Envelope and sustain logic:
BowEnvelope::sustain()method to avoid prematurely forcing the sustain state, ensuring that an attack phase completes naturally even if a refresh occurs. This prevents unintended truncation of the attack phase.Build system and test integration:
CMakeLists.txtto includeSource/PluginProcessor.cppin the test build, link additional JUCE and STK libraries, set new compile definitions for test builds, and add necessary include directories. This enables integration testing of the processor and STK voices in the test suite.Source/PluginProcessor.cppto disable the editor in test builds, allowing for headless integration testing. [1] [2]These changes collectively improve the reliability, testability, and musical expressiveness of the ElectroBow codebase.