A VST3/AU audio plugin for frequency shifting with musical scale quantization.
Get the latest release from the Releases page.
| Platform | Format | Download |
|---|---|---|
| macOS (Universal) | VST3 | Latest Release |
| macOS (Universal) | AU | Latest Release |
| Windows | VST3 | Latest Release |
This plugin performs frequency shifting - moving all frequencies in your audio by a fixed Hz amount - while keeping the output musical through intelligent scale quantization.
Unlike pitch shifting (which preserves harmonic relationships), frequency shifting creates unique, often metallic or otherworldly tones. By adding scale quantization, you get the best of both worlds: the character of frequency shifting with musical coherence.
- Frequency Shift: ±20,000 Hz range with linear or logarithmic control
- Musical Quantization: Snap frequencies to any musical scale
- 22 Scale Types: Major, minor, modes, pentatonic, blues, chromatic, world scales
- Phase Vocoder: High-quality processing with identity phase locking (Laroche & Dolson)
- Quality Modes: Low Latency, Balanced, or Quality presets
- Real-time Spectrum Analyzer: Visualize your frequency content
- Dry/Wet Mix: Blend processed and original signals
- Stereo Support: Full stereo/multi-channel processing
VST3:
# System-wide
/Library/Audio/Plug-Ins/VST3/
# User only
~/Library/Audio/Plug-Ins/VST3/AU (Audio Unit):
# System-wide
/Library/Audio/Plug-Ins/Components/
# User only
~/Library/Audio/Plug-Ins/Components/VST3:
C:\Program Files\Common Files\VST3\
| Parameter | Range | Description |
|---|---|---|
| Shift (Hz) | ±20,000 Hz | Amount to shift frequencies. Positive = up, negative = down |
| Quantize | 0-100% | How strongly to snap to scale notes |
| Root Note | C, C#, D... B | The root of your scale |
| Scale | 22 types | Choose from Major, Minor, Dorian, Pentatonic, Blues, and more |
| Dry/Wet | 0-100% | Mix between original and processed audio |
| Quality | 3 modes | Low Latency (~58ms), Balanced (~116ms), Quality (~232ms) |
- Metallic vocals: Shift by 50-200 Hz with 0% quantization
- Re-harmonize: Use 100% quantization to force audio into a new scale
- Subtle detuning: Small shifts (5-20 Hz) with 50% quantization for chorus-like effects
- Robotic sounds: Large shifts with the Chromatic scale
- macOS: 11.0+ (Intel and Apple Silicon universal binary)
- Windows: Windows 10+
- DAW: Any VST3 or AU compatible host
- CMake 3.22+
- C++20 compiler (Clang, GCC, or MSVC)
- Git
# Clone the repository
git clone https://github.com/ludzeller/frequency-shifter.git
cd frequency-shifter/plugin
# Configure
cmake -B build -DCMAKE_BUILD_TYPE=Release
# Build
cmake --build build --config Release
# Plugins will be in:
# build/FrequencyShifter_artefacts/Release/VST3/
# build/FrequencyShifter_artefacts/Release/AU/ (macOS only)cmake -B build \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" \
-DCMAKE_OSX_DEPLOYMENT_TARGET="11.0"To create a new release:
-
Tag the version:
git tag v1.0.0 git push origin v1.0.0
-
The GitHub Actions release workflow will automatically:
- Build plugins for macOS (VST3, AU) and Windows (VST3)
- Create a GitHub Release with downloadable zip files
frequency-shifter/
├── plugin/ # JUCE plugin source
│ ├── src/
│ │ ├── PluginProcessor.cpp/h # Audio processing
│ │ ├── PluginEditor.cpp/h # GUI
│ │ └── dsp/ # DSP modules
│ │ ├── STFT.cpp/h
│ │ ├── PhaseVocoder.cpp/h
│ │ ├── FrequencyShifter.cpp/h
│ │ ├── MusicalQuantizer.cpp/h
│ │ └── Scales.h
│ └── CMakeLists.txt
├── website/ # GitHub Pages documentation
├── docs/ # Technical documentation
│ ├── ALGORITHM.md
│ └── PHASE_VOCODER.md
├── legacy/ # Python prototype (reference)
└── .github/workflows/ # CI/CD
├── build.yml # Build on push/PR
├── pages.yml # Deploy documentation
└── release.yml # Create releases
The plugin uses a sophisticated DSP pipeline:
Audio Input
↓
[STFT Analysis] → Convert to frequency domain
↓
[Frequency Shift] → Move all bins by Hz offset
↓
[Scale Quantization] → Snap to musical notes
↓
[Phase Vocoder] → Maintain phase coherence
↓
[ISTFT Synthesis] → Convert back to audio
For detailed algorithm documentation, see:
Visit the GitHub Pages site for:
- Full algorithm documentation
- Parameter guides
- Technical deep-dives
Based on established DSP techniques:
- Laroche, J., & Dolson, M. (1999) - "Improved phase vocoder time-scale modification of audio" - Identity phase locking
- Zölzer, U. (2011) - "DAFX: Digital Audio Effects" - STFT/ISTFT, window normalization
- Smith, J. O. (2011) - "Spectral Audio Signal Processing" - Phase vocoder theory
The legacy/ folder contains the original Python prototype used for algorithm development and testing. This is kept for reference but the C++ plugin is the production version.
MIT License - see LICENSE file for details.
Contributions are welcome! Please see the GitHub repository for:
- Issue reporting
- Pull requests
- Feature discussions
Version: 0.1.0 Formats: VST3, AU Platforms: macOS, Windows License: MIT
