Releases: mcascone/boomerang-plugin
v2.0.0-alpha-3 (JUCE port)
v2.0.0-alpha-3 (JUCE port)
What's New
UI Improvements
- Added background image with transparent buttons
- Moved volume control to output level knob for better workflow
- Fine-tuned button locations for improved layout
Build Improvements
- Universal binary support for macOS (Intel + Apple Silicon)
- Set deployment target to macOS 11.0+ for compatibility with older systems
- Generated
compile_commands.jsonfor better IDE integration - Native installer with automatic quarantine removal!
Bug Fixes & Stability
- Critical crash fix: Fixed segmentation fault caused by buffer overrun when
writePoswas out of bounds in recording mode - Added lock-free guards to all button handlers to prevent race conditions from concurrent parameter changes
- Improved buffer bounds checking in
processRecording()to validate position BEFORE writing and return immediately when invalid - Made parameter reading null-safe to prevent crashes from accessing uninitialized parameters
- Fixed STACK button click handling on editor UI
Installation
macOS
ℹ️ Note the package version is alpha-4. I lost track of which build was which, and found that the installer wasn't installing the Standalone correctly anyway, so i rebuilt, repackaged, and replaced the original asset with this new installer. The next release will therefore be alpha-5. Sorry for trying to live by the Semantic Versioning rules. (Alphas and zero-versions are given some leeway anyway.)
Download and run Boomerang-2.0.0-alpha-4.pkg installer.
The installer provides:
- Customizable installation - Choose which components to install: VST3, AU, Standalone
- Automatic setup - Plugins installed to correct system locations
- Quarantine removal - No manual security bypass needed
- Supports Upgrades
- Uninstaller included - Find "Uninstall Boomerang+.command" in /Applications/
Installation locations:
- VST3 →
/Library/Audio/Plug-Ins/VST3/ - AU →
/Library/Audio/Plug-Ins/Components/ - Standalone →
/Applications/
Windows/Linux
VST3 builds for other platforms are coming soon.
Known Issues
- Compiler warnings about missing switch cases and sign conversions (#34, #35)
- VST3 signing warnings (benign for local builds, will be addressed for release) (#36)
How to Help
Found a bug? Please file an issue with:
- Steps to reproduce
- Expected vs actual behavior
- Loop length, direction, mode settings
- Host/DAW and buffer size
Full Changelog: v2.0.0-alpha-2...v2.0.0-alpha-3
v2.0.0-alpha-2
v2.0.0-alpha-2
Alpha Quality Release - This release focuses on MIDI CC mapping, DAW automation support, and critical bug fixes. Please test and report issues.
Note: The plugin UI displays version v2.0.0.2 (d7d9c7c).
What's New
Major Features
- Full MIDI CC Mapping Support: All button and slider controls now exposed as DAW parameters
- Map any MIDI controller to looper functions (Record, Play, Stop, Once, Stack, Reverse, Thru Mute)
- Volume and Feedback controls fully automatable
- Perfect synchronization between MIDI, automation, and UI
- DAW Automation Support: Record and playback parameter changes as automation
- All 8 parameters (6 buttons + 2 continuous) visible to DAW
- Automatic state save/restore via AudioProcessorValueTreeState (APVTS)
- Thread-safe parameter handling
- Apple Developer Code Signing: Configurable signing for distribution builds
- ENABLE_CODESIGNING option (OFF by default for local dev)
- Support for official Developer ID signing
- Timestamp flag for notarization compatibility
Critical Bug Fixes
- Fixed Reverse Recording (#38): Recording now respects reverse direction mode
- Initial loop records backwards when reverse is active
- Overdubbing in reverse mode works correctly
- Loop length calculation accounts for playback direction
UI/UX Improvements
- Simplified Button Behavior: All buttons now momentary except THRU MUTE and REVERSE (toggle)
- Removed confusing visual feedback patterns
- Buttons flash on press like hardware looper
- STACK button uses edge detection for press/release
Architecture Improvements
- APVTS Migration: Complete refactor to proper parameter management
- Single source of truth for all parameter state
- Parameter listeners for MIDI/automation changes
- ButtonAttachment for perfect UI synchronization
- Code Cleanup: Removed dead code and improved maintainability
- Removed unused
onStackButtonToggled()andapplyCrossfade() - Removed
waitingForFirstLoopflag - Cleaned up button attachment code
- Removed unused
Installation
macOS
Use pre-built binaries from release assets:
- AU:
~/Library/Audio/Plug-Ins/Components/Boomerang.component - VST3:
~/Library/Audio/Plug-Ins/VST3/Boomerang.vst3 - Standalone:
Boomerang.app
Windows/Linux
Use VST3 build (installation paths vary by system)
Known Issues
- Some compiler warnings remain (#34, #35)
- VST3 signing warnings on macOS (benign for local builds) (#36)
Changes Since v2.0.0-alpha-1
Commits
- Add configurable Apple Developer code signing support (d7d9c7c)
- Improve bundle signing process for local development (834ac2f)
- Added Dec-22 update section to README (b765b66)
- Calculate recorded length based on direction (ee5cecc)
- Recording respects direction mode (67a0611)
- Fix first loop record check (7d5a401)
- All momentary except thru, reverse (d5b6571)
- Remove waitingForFirstLoop (7a36c8d)
- All button attachments removed (0bc1171)
- Enable pure toggle buttons (ec8cccf)
- Connect UI buttons to APVTS with ButtonAttachment - Step 3 (2bed81b)
- Add parameter listeners for MIDI/automation - Step 2 (08492ff)
- Add VS Code IntelliSense configuration (5103597)
- Migrate to APVTS - Step 1 (ebc549d)
- Remove dead code (cfed212)
- Update documentation paths (50e1863)
- Merge .gitignore files (589cc92)
How to Help
- Test MIDI CC mapping with your controller
- Test DAW automation recording and playback
- Test reverse recording and overdubbing
- File bug reports at https://github.com/mcascone/boomerang-plugin/issues/new
What's Next
- Skeuomorphic UI design
- Larger, more intuitive volume control
- Additional loop manipulation features
v2.0.0-alpha-1
v2.0.0-alpha-1 (JUCE port)
Alpha Quality Release - This is an early alpha release of the JUCE port. Known issues exist (see below). Please test and report bugs.
Fixes #32
Fixes #33
Fixes #26, #27, #28
What's New
UI/UX Improvements
- Toggle Buttons: Converted several buttons from momentary to toggle for better visual feedback
- THRU MUTE button now stays lit when active, clearly showing when input is muted
- RECORD button stays lit during Recording and Overdubbing states
- PLAY/STOP button lights up when in Playing or Overdubbing state (regardless of which button triggered playback)
- REVERSE button lights up when reverse playback is enabled
- Loop Cycle Indicator: RECORD button now flashes briefly (~90ms) each time the loop cycles back to position 0, providing visual tempo feedback
- Vertical Volume Slider: Volume control now uses a vertical slider for more intuitive control
- Hidden Progress Bar: Temporarily removed progress bar from UI (will return in future release)
- Version number is now displayed in the lower-right corner of the UI.
Audio Features
- Thru Mute Functionality: Fully implemented thru mute behavior
- When ON: Input audio is muted (not passed through), only looped content is heard
- When OFF: Input audio is mixed with looped playback (normal behavior)
- Works correctly in all states: Stopped, Recording, Playing, and Overdubbing
- Stack Mode Attenuation: Loop content is now attenuated by 2.5dB during overdubbing to prevent audio clipping (#31)
- Improved Overdub Processing: Fixed double-processing issue where buffer was processed per-channel instead of once, eliminating playhead drift
Code Quality
- Enhanced Channel Handling: Improved mono/stereo support in prepareToPlay and bus layout
- Compiler Warnings Cleanup: Fixed numerous warnings including unused parameters, missing switch cases, and sign conversions (#34, #35)
- Thread Safety: Loop wrap detection now uses atomic variables for safe communication between audio and UI threads
- Added AGENTS.md: Comprehensive development guidelines for contributors
macOS Specific
- Microphone Permission: Added NSMicrophoneUsageDescription for macOS compatibility
- Version Bump: Updated to 2.0.0.1 in CMakeLists.txt
Installation
macOS
Build from source or use pre-built binaries:
- AU:
~/Library/Audio/Plug-Ins/Components/Boomerang.component - VST3:
~/Library/Audio/Plug-Ins/VST3/Boomerang.vst3 - Standalone:
Boomerang_artefacts/Standalone/Boomerang.app
Windows/Linux
Use VST3 build (installation paths vary by system)
Known Issues
- Compiler warnings about missing switch cases still present in some code paths (#34, #35)
- VST3 signing warnings on macOS (benign for local builds, requires proper signing for distribution) (#36)
Changes Since v2.0.0-alpha-0
Functional Changes
- Thru mute now fully operational across all looper states
- Button visual feedback dramatically improved with toggle states
- Loop timing visible via record button flash on cycle completion
Technical Changes
- Refactored position advancement logic to return wrap status
- Improved overdubbing to process buffer once per block instead of per channel
- Added atomic flag for thread-safe loop wrap detection
- Build system now configured for AU/VST3/Standalone release builds
How to Help
- Test the plugin in your DAW and report any issues
- File bug reports at https://github.com/mcascone/boomerang-plugin/issues
- Especially needed: testing reverse playback and once mode behavior
- UI/UX feedback welcome
What's Next
Focus areas for future releases:
-
Bigger & Better volume control
-
Remove Feedback control for now (future enhancement to replace default 2.5db trim during Stacking with this knob)
-
Actual skeuomorphic UI
-
Complete compiler warning cleanup
-
Complete feature parity with legacy Plug N Script version
2.0.0-alpha-0
v2.0.0-alpha-0: JUCE port
The plugin is in an EXTREMELY RAW state and has a long way to go before it's anything worth releasing to the general public!
I created a Discussion for this release: #37. Please post any comments, bugs, requests, etc in there!
How to help
- If you find a bug, please open a GitHub issue with repro steps (loop length, Reverse/Once/Stack states, host/buffer size, platform).
- Audio glitches: note whether you were overdubbing, reversing, or switching modes mid-playback.
- UI/host issues: include host name/version and screenshots if possible.
What’s new
- Ported the Boomerang+ looper to JUCE.
- Builds provided: VST3, AU (macOS), and Standalone Mac app.
Installation
macOS
Download and drop the AU/VST3 into their usual locations:
~/Library/Audio/Plug-Ins/Components~/Library/Audio/Plug-Ins/VST3- Run the standalone app directly.
Windows/Linux
Use the VST3.
Known issues (please report others)
- Reverse playback bounces mid-loop / direction flips unexpectedly.
- Once mode may keep looping in overdub/stack scenarios.
- Missing switch cases and sign/shadow warnings.
- Local builds emit ad-hoc signing warnings on macOS (harmless for dev, not for shipping).
Existing issues will be evaluated for relevance to the port to JUCE.
🧪 Enjoy the alpha, and thanks for testing!
1.0.1: PNS Upgrade
- Upgraded the PNS designer app to 3.51.
- Added embedded user manual: just a PDF export of the repo's README. But it's way better than nothing!
- Added a sample dequarantine script in case Mac OS doesn't want to run this untrusted source.
1.0.0-rc1
v0.0.3-beta
Beta 0.0.3
Note: downloadable packages have had the following command run on them to allow their use:
sudo xattr -r -d com.apple.quarantine /path/to/file
Running this command removes the "quarantine" attribute from the specified file or directory and all its contents, which prevents macOS from displaying warnings when these files are opened. This can be useful if you trust the files and want to avoid the security prompts.
By removing the attribute before distribution, the recipients or the destination system will not see the quarantine warning when they open or execute the file. This method is particularly useful for software developers or distributors who want to ensure their files are ready for use immediately upon delivery.