A lightweight, modern React + Vite WebView-based JUCE VST3 Plugin Template featuring a hard-coded Biquad Low-Pass Filter. This repository is production-ready and highly optimized for instantaneous UI/UX prototyping and audio debugging.
- Tech Stack: Built with
React,Vite, andTypeScript, styled beautifully usingshadcn@latest. - Custom React Hooks for JUCE Interop: Includes custom-built hooks designed to seamlessly sync frontend components with JUCE parameters:
useJuceSlider/useJuceKnob(with a built-in knob drag bugfix)useJuceToggleuseJuceComboBox
- Robust Asset Handling: Implemented efficient webview file handling, resource retrieval, and optimized static asset caching (via ZIP prefix resolution) inside
PluginEditor.
- Biquad LPF Implementation: Features a manually controllable Biquad Filter with dedicated parameters for both Cutoff Frequency and Resonance, fully bound to
APVTS(AudioProcessorValueTreeState). - DSP Stability & Smoothing: Implemented frequency smoothing algorithms and stability checks in the filter processing loop to avoid zipper noise and audio artifacts.
- JUCE 8 Ready: Includes precise version hints for
AudioParameterdeclarations to explicitly resolve JUCE 8jassertbehaviors.
- Instant Visual Feedback: Optimized for rapid local debugging inside Visual Studio Code.
- AudioPluginHost Integration: Includes a pre-configured
filtergraphfile for the JUCE AudioPluginHost, allowing you to instantly load, route, and test the plugin right after compilation. - Modern Build System: Full
CMakearchitecture for seamless cross-platform building and dependency management.
| Layer | Technologies Used |
|---|---|
| Audio Core | C++, JUCE 8, CMake, APVTS |
| Frontend UI | React, Vite, TypeScript, Tailwind CSS, Shadcn UI |
| Bridge | JUCE WebView Component, Custom Native-JS Interop Layer |
- Phase 1 (April): Core
SimpleFilterChannelDSP implementation based on a pure CMake/JUCE skeleton. - Phase 2 (Early May): Audio engine stability upgrades (Frequency smoothing, parameter bug fixes, and JUCE 8 compatibility adjustment).
- Phase 3 (Mid May): Frontend architecture overhaul. Integrated
shadcn UI, established the nativeJuceobject bridge, and implemented robust custom hooks for seamless state synchronization. - Phase 4 (Late May): Optimized asset loading/linking performance via static cache mechanisms and robust resource retrieval in the
PluginEditor.
Developed by Jiho - Sophomore studying Computer Science & Mathematics at Seoul National University.
Contributions for adding other frontend frameworks (Vue, Svelte, etc.) or enhancing the DSP pipeline are welcome. Please open an issue or submit a Pull Request!