A Wave Field Synthesis WFS DIY project built with JUCE framework.
This project is based on the Cycling74's Max8 Prototype found at https://wfs-diy.net
- DAW Plugin Suite — VST3 / AU / Standalone plugins (Master + 5 Track variants: Cartesian / Cylindrical / Spherical / ADM Cartesian / ADM Polar) that drive a running WFS-DIY session from any major DAW. Built from
Plugin/as a standalone CMake subproject. - Android Remote — companion Android app (WFS Control 2) for touch-based control over OSC. Lives in its own repo: https://github.com/pob31/WFS_control_2.
- Documentation/ — reference material:
CLAUDE.md(architecture / conventions), theWFS-UI_*.csvper-tab parameter inventories,WFS-UI_arrayWizard.md(array-wizard preset catalog and geometry formulas),WFS-UI_plugins.md(plugin setup guide for OSC / OSCQuery / ADM-OSC), and theMCP/specs for the in-progress MCP server.
- Cross-platform audio device management
- Real-time audio processing capabilities
- JUCE framework integration
- Multi-platform build support (Windows, macOS, Linux)
Windows:
- Install Git for Windows
- Install Visual Studio 2022 Community (free) — during install, select the "Desktop development with C++" workload
macOS:
- Install Xcode from the App Store (free)
- Git is included with Xcode. If you need it before opening Xcode, run:
xcode-select --install
Linux:
- GCC or Clang with development tools
1. Clone the repository
Open a terminal and run:
git clone --recurse-submodules https://github.com/pob31/WFS-DIY.gitImportant: The
--recurse-submodulesflag is required. Without it, dependencies (JUCE, ASIO SDK) will be missing and the build will fail. If you already cloned without it, run:cd WFS-DIY git submodule update --init --recursive
2. Open the project and build
Windows:
- Open
Builds/VisualStudio2022/WFS-DIY.slnin Visual Studio - In the toolbar, set the platform to x64 (not x86)
- Select Debug or Release configuration
- Build > Build Solution (or press Ctrl+Shift+B)
- Debug > Start Debugging (or press F5) to run
macOS:
- Open
Builds/MacOSX/WFS-DIY.xcodeprojin Xcode - Select the WFS-DIY target and My Mac as destination
- Product > Build (or press Cmd+B)
- Product > Run (or press Cmd+R) to run
- macOS will ask for microphone permission on first run — click Allow (required for audio input)
Linux:
- Use the Makefile in
Builds/LinuxMakefile/
WFS-DIY includes experimental support for GPU-accelerated audio processing using the GPU-Audio SDK. The SDK is integrated as a Git submodule at ThirdParty/GPUAudioSDK.
For detailed setup instructions, see GPU-Audio SDK Setup Guide
Quick start:
- Initialize the submodule:
git submodule update --init --recursive - Build the SDK following the setup guide
- Set environment variables:
GPUAUDIO_PATHandGPUAUDIO_PROCESSOR_PATH - In the app, choose
GPU InputBuffer (GPU Audio)and enable processing
Note: The GPU Audio feature requires the GPU Audio Platform to be installed separately.
- Required: Microsoft Visual C++ Redistributable 2022 (x64) — may already be installed on your system
- Recommended: ASIO drivers for your audio interface (WASAPI is available as fallback)
- No additional runtime dependencies — all required frameworks ship with macOS 10.13+
- Official
.pkgreleases are codesigned with Developer ID and notarized, so Gatekeeper opens them without any warning - Grant microphone permission when prompted (required for audio input)
This project uses Git for version control and is designed for cross-platform development. Make sure to:
- Test changes on multiple platforms when possible
- Keep build files synchronized across platforms
- Follow JUCE coding conventions
When contributing to this project:
- Make sure your changes compile on your target platform
- Test functionality before committing
- Update documentation as needed
- Follow the existing code style
This project is licensed under the GNU General Public License v3.0 (GPL-3.0).
Copyright (c) 2026 Pierre-Olivier Boulant
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.
- Freedom to use: You can run the software for any purpose
- Freedom to study: You can examine and modify the source code
- Freedom to distribute: You can share copies of the software
- Freedom to distribute modifications: You can share your modified versions
Important: Any derivative works must also be licensed under GPL v3, ensuring the software remains free and open source.