A JUCE-based audio plugin that generates a 24 PPQN pulse train for tempo sync testing. Ships as VST3/AU/Standalone.
- 24 PPQN pulse generation, audible 1 kHz tone per pulse
- Host tempo sync with resilient re-sync on transport jumps
- Manual BPM mode when host sync is disabled
- Adjustable pulse width (1–50 ms) and velocity (0–127)
- See
ARCHITECTURE.mdfor an overview of components, parameters, and audio flow. - See platform build guides for signing and packaging:
MACOS_CODE_SIGNING_GUIDE.mdWINDOWS_BUILD_GUIDE.mdLINUX_BUILD_GUIDE.md
- Cross-platform build scripts are in the repo root.
- CMake project file:
CMakeLists.txt
Download the latest release from GitHub Releases:
- Download the appropriate package:
Pulse24Sync-macOS-vst3.zipfor VST3 pluginPulse24Sync-macOS-au.zipfor Audio Unit pluginPulse24Sync-macOS-standalone.zipfor standalone application
- Extract the archive
- Copy the plugin files to:
- VST3:
~/Library/Audio/Plug-Ins/VST3/or/Library/Audio/Plug-Ins/VST3/ - Audio Unit:
~/Library/Audio/Plug-Ins/Components/or/Library/Audio/Plug-Ins/Components/ - Standalone: Applications folder or anywhere you prefer
- VST3:
- Download the appropriate package:
Pulse24Sync-Windows-vst3.zipfor VST3 pluginPulse24Sync-Windows-standalone.zipfor standalone application
- Extract the archive
- Copy the plugin files to:
- VST3:
C:\Program Files\Common Files\VST3\ - Standalone: Anywhere you prefer
- VST3:
- Download the appropriate package:
Pulse24Sync-Linux-vst3.zipfor VST3 pluginPulse24Sync-Linux-standalone.zipfor standalone application
- Extract the archive
- Copy the plugin files to:
- VST3:
~/.vst3/(create the directory if it doesn't exist) - Standalone: Anywhere you prefer (make executable with
chmod +x Pulse24Sync)
- VST3:
Alternatively, you can build from source using the instructions below.
When building from source, the plugin will be automatically copied to the appropriate system location:
- macOS:
~/Library/Audio/Plug-Ins/VST3/Pulse24Sync.vst3 - Windows:
C:\Program Files\Common Files\VST3\Pulse24Sync.vst3 - Linux:
~/.vst3/Pulse24Sync.vst3
This project includes an automated release system that builds macOS, Windows, and Linux versions and creates a GitHub release with all plugin formats.
-
Make sure all changes are committed:
git add . git commit -m "Your commit message" git push origin main
-
Run the release script:
./create-release.sh
-
Follow the prompts to enter the version number (e.g.,
1.0.0,1.2.3-beta.1). The release pipeline packages macOS (VST3/AU/Standalone), Windows (VST3/Standalone), and Linux (VST3/Standalone). -
The script will:
- Create a git tag (e.g.,
v1.0.0) - Push the tag to GitHub
- Trigger the automated build and release workflow
- Create a git tag (e.g.,
- macOS: VST3, Audio Unit (.component), and Standalone (.app)
- Windows: VST3 and Standalone (.exe)
- Linux: VST3 and Standalone (included in release packages)
- GitHub Actions builds both platforms in parallel
- All plugin formats are packaged
- A GitHub release is created with:
- Release notes
- Download links for all platforms
- Proper versioning and tagging
If you prefer to create releases manually:
- Go to GitHub Releases
- Click "Create a new release"
- Set the tag version (e.g.,
v1.0.0) - Upload the built plugin files manually
- Load the plugin in your DAW as a VST3 effect
- Enable the plugin using the "Enabled" button
- Choose sync mode:
- Sync to Host: Automatically follows your DAW's tempo
- Manual Mode: Set your own BPM using the Manual BPM slider
- Configure audio settings:
- Set the pulse volume (0-127)
- Start playback in your DAW - the plugin will generate 24 audio pulses per quarter note
- Sample Rate: Supports all common sample rates (44.1kHz, 48kHz, 96kHz, etc.)
- Buffer Size: Works with any buffer size
- Tempo Range: 60–200 BPM (manual mode)
- Audio Output: Generates 1 kHz sine wave pulses (no MIDI output)
- Pulse Width: Adjustable 1–50 ms (default ~22 ms)
- Precision: High-precision timing using sample-accurate calculations
- Ensure the plugin was built successfully
- Check that the VST3 file was copied to the correct location
- Restart your DAW after installation
- Make sure "Sync to Host" is enabled
- Verify your DAW is sending tempo information
- Check that the DAW is playing (plugin only generates pulses during playback)
- Ensure you have CMake 3.15+ installed
- Check that your compiler supports C++17
- Verify internet connection (JUCE will be downloaded automatically)
This project is open source. Feel free to modify and distribute according to your needs.
Contributions are welcome! Please feel free to submit pull requests or open issues for bugs and feature requests.