Break the norm. Birth the impossible.
Species 8 is a JUCE-based audio plugin (VST3/AU/Standalone) that allows users to transform audio using natural language prompts. Drop in an audio file, type a description like "wider, less muddy, brighter, plastic space" and hit MUTATE to evolve your sound.
We are in the middle of moving Species 8 to a hybrid architecture:
dsp-engine/(this JUCE project) remains the native audio brain.web-ui/now contains the glassmorphic V0 template (React/Tailwind) for the AI prompt and drag-and-drop hero section.server/is a lightweight Node/Express/WebSocket bridge. It already exposes/mutate,/mutations,/preview/waveform, and pushes job updates over WebSockets. Right now the bridge simulates DSP output; next weβll swap in the real JUCE process behind the same interface.
This split gives us the best of both worlds: a pixel-perfect, GPU-accelerated UI and a native DSP core for ultra-low-latency audio mutation.
Requirements: Node 18+, npm, and (optionally) pnpm/yarn.
# 1. Start the server bridge
cd server
npm install
npm run dev
# 2. In another terminal, launch the web UI (Next.js template)
cd ../web-ui
npm install
npm run devThe UI will open at http://localhost:3000 and talks to the bridge on http://localhost:4000 (health + mutation queues). This is the same V0 glassmorphic layout you referenced; weβll wire it to the DSP engine in the next iteration.
The legacy JUCE standalone is still available in
build/Species8_artefacts/Standalone/Species 8, but that UI will soon become headless once the bridge is complete.
- π΅ Drag & Drop Audio Loading: Load WAV, AIFF, MP3, FLAC files directly into the plugin
- π Waveform Visualization: See your loaded audio in real-time
- π¬ Natural Language Prompts: Describe your desired sound in plain English
- 𧬠Intelligent DSP Chain: Prompt-driven processing with:
- High-pass filtering (mud reduction)
- High-shelf EQ (brightness control)
- M/S stereo width processing
- Binaural orbit spatializer for 8D-style motion
- Reverb (space/plastic effects)
- ποΈ Manual Controls: Dry/Wet mix, Output Gain, and Bypass
- π¨ Futuristic UI: Dark theme with purple accents
wider,wide,8dβ Increases stereo widthnarrow,monoβ Decreases stereo width
less muddy,clearer,clean,clarityβ Reduces low-end mudmore muddy,muddy,warmβ Adds warmth/low-end
brighter,bright,crisp,shineβ Increases high frequenciesdarker,dark,dullβ Reduces high frequencies
space,reverb,plastic,high-techβ Adds reverb and spacedry,intimate,closeβ Reduces reverb
8d,orbit,around,immersive,binauralβ Enables the binaural orbit engine for moving 3D soundstatic,center,monoβ Keeps the sound anchored in front
-
JUCE Framework (v7.0 or later)
- Download from JUCE.com
- Or install via package manager
-
C++ Compiler
- macOS: Xcode 12+ with command line tools
- Windows: Visual Studio 2019+ or MSVC
- Linux: GCC 7+ or Clang 6+
-
CMake (v3.15 or later) - Optional, if using CMake build
-
Clone the repository:
git clone https://github.com/yourusername/species8-plugin.git cd species8-plugin -
Open Projucer:
- Launch Projucer from your JUCE installation
- Open
Species8.jucer(if provided) or create a new project:- Project Type: "Audio Plug-In"
- Project Name: "Species8"
- Add all source files from
Source/directory
-
Configure module paths:
- Set JUCE module path to your JUCE installation
- Enable VST3, AU, and Standalone formats
-
Export project:
- Select your IDE (Xcode, Visual Studio, Linux Makefile)
- Click "Save Project and Open in IDE"
-
Build in your IDE:
- Xcode: Select scheme and build (βB)
- Visual Studio: Build solution (F7)
- Make: Run
make CONFIG=Release
-
Clone and prepare:
git clone https://github.com/yourusername/species8-plugin.git cd species8-plugin -
Add JUCE to the project:
Option A - Using JUCE as a subdirectory:
git submodule add https://github.com/juce-framework/JUCE.git git submodule update --init --recursive
Option B - System-wide JUCE: Make sure JUCE is installed and CMake can find it via
find_package(JUCE) -
Update CMakeLists.txt: Uncomment the appropriate JUCE integration method in
CMakeLists.txt:# For submodule approach: add_subdirectory(JUCE) # OR for system installation: # find_package(JUCE CONFIG REQUIRED)
-
Build:
mkdir build cd build cmake .. cmake --build . --config Release
-
Install plugins:
- macOS: Plugins will be in
build/Species8_artefacts/- VST3: Copy to
~/Library/Audio/Plug-Ins/VST3/ - AU: Copy to
~/Library/Audio/Plug-Ins/Components/
- VST3: Copy to
- Windows:
- VST3: Copy to
C:\Program Files\Common Files\VST3\
- VST3: Copy to
- Linux:
- VST3: Copy to
~/.vst3/
- VST3: Copy to
- macOS: Plugins will be in
species8-plugin/
βββ CMakeLists.txt # CMake build configuration
βββ README.md # This file
βββ Species8.jucer # Projucer project file (optional)
βββ Source/
βββ PluginProcessor.h # Main audio processor header
βββ PluginProcessor.cpp # Audio processor implementation
βββ PluginEditor.h # GUI editor header
βββ PluginEditor.cpp # GUI implementation
βββ StereoWidthProcessor.h # Custom stereo width DSP
βββ StereoWidthProcessor.cpp
βββ WaveformDisplay.h # Waveform visualization component
βββ WaveformDisplay.cpp
βββ DragDropComponent.h # Drag & drop handler
βββ DragDropComponent.cpp
-
Load the plugin in your DAW (Ableton, Logic, FL Studio, etc.)
-
Drag an audio file onto the waveform area
- Supported formats: WAV, AIFF, MP3, FLAC, OGG
-
Type a prompt describing your desired sound:
- Example:
"wider, less muddy, brighter" - Example:
"plastic high-tech space" - Example:
"darker, narrow, intimate"
- Example:
-
Click MUTATE to apply the transformation
-
Adjust parameters:
- Dry/Wet: Mix between original and processed signal
- Output: Final output gain (-24dB to +24dB)
- Bypass: Toggle processing on/off
-
Process audio from your DAW through the plugin in real-time
ProcessorChain<
IIR::Filter, // High-pass filter (20-200Hz, mud reduction)
IIR::Filter, // High-shelf filter (Β±6dB @ 4kHz, brightness)
StereoWidthProcessor, // M/S encoding with width control (0-2x)
Reverb // Space effect (room size + damping)
>The plugin uses simple keyword matching to adjust DSP parameters:
- Text is converted to lowercase
- Keywords are searched using
String::contains() - Matching keywords adjust corresponding parameters by Β±0.2 (clamped to 0-1 range)
- Parameters are smoothed using
juce::SmoothedValueto prevent clicks
This is not AI/ML-based (yet) - it's a deterministic keyword-to-parameter mapping system.
- Add real AI/ML model for prompt interpretation
- Sample playback/trigger functionality
- More DSP modules (distortion, compression, chorus)
- Preset system for saving prompt-generated settings
- Visual feedback for active parameters
- MIDI control and automation
- Multi-band processing
- Spectral display
- Plugin Formats: VST3, AU, Standalone
- Sample Rates: 44.1kHz - 192kHz
- Bit Depth: 32-bit float processing
- Latency: Minimal (<10ms)
- CPU Usage: Low-moderate (depends on reverb quality)
- Thread Safety: Full thread-safe parameter access
This project is provided as-is for educational and commercial use. Built with JUCE Framework (GPL/Commercial license).
Created by: Your Name Framework: JUCE Inspired by: Modern AI-driven audio tools and the concept of evolutionary sound design
Species 8 - Where prompts become sonic reality.
