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
- Cross-platform audio device management
- Real-time audio processing capabilities
- JUCE framework integration
- Multi-platform build support (Windows, macOS, Linux)
- Platform-specific development tools:
- Windows: Visual Studio 2022 or later
- macOS: Xcode with latest macOS SDK
- Linux: GCC or Clang with development tools
All dependencies (JUCE, ASIO SDK, GPU Audio SDK) are included as git submodules. Clone with:
git clone --recurse-submodules https://github.com/pob31/WFS-DIY.gitOr if already cloned:
git submodule update --init --recursive- Open
WFS-DIY.jucerin Projucer - Save/export to generate platform build files
- Build using your preferred IDE or command line tools
- Windows: Open
Builds/VisualStudio2022/WFS-DIY.slnin Visual Studio - macOS: Open
Builds/MacOSX/WFS-DIY.xcodeprojin Xcode - Linux: Use the generated 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.
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) 2025 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.