FuzzyLotus
Member
[RELEASE] Phantasmagoria v2: Native C++ Spectral Delay Engine
Project Overview
Phantasmagoria is a lush, atmospheric spectral delay engine designed for shoegaze, doom, and ambient soundscapes. It is a 6-knob, 4-toggle "no menus" pedal built for the Electrosmith Daisy Seed on the PedalPCB Terrarium platform. The engine combines reverse delay, pitch shifting, and an infinite freeze engine with a massive echo-chamber reverb.
This release marks a major milestone in the development of the project. While the original version was built using PlugData/Pure Data, the move to native C++ represents a total architectural shift. To keep technical discussions clear and organized, this thread will serve as the hub for the new C++ engine, while the original thread remains the home for legacy builds.
Media Demo
Watch the Phantasmagoria v2 in action on YouTube:
Development Evolution: New in v2
By moving to a native C++ architecture, the engine has received several significant upgrades—most notably, the complete eradication of the Pure Data noise floor:
Control Interface (v2)
Installation & Flashing Instructions
The full source code, updated documentation, and ready-to-flash .bin file are now available on GitHub:
To flash your pedal:
Note for Windows Users: If you encounter connection issues, refer to the README on GitHub for the Zadig/driver fix/driver fix to ensure your PC recognizes the Daisy Seed in DFU mode.
Technical Specifications
The C++ rebuild focuses on maximizing the Daisy Seed hardware potential by eliminating the overhead of the original implementation:
Legacy Archive (Pure Data / PlugData)
The original version remains available for DIYers who prefer working in visual environments or wish to study the original logic:
I have used AI to help me write up the code and documentation, but the ideas and 80+hours of work I've put into fine-tuning things bug fixing, unplugging the pedal, turning the amp on, waiting for the lamps to get hot, were all very real and a challenge I've set for myself. As a complete code noob (except some BASIC JavaScript coding) this is the only way I could accomplish my goal. I hope you forgive me for turning to the dark side
Other than that,
Happy building and doom-ing!
Project Overview
Phantasmagoria is a lush, atmospheric spectral delay engine designed for shoegaze, doom, and ambient soundscapes. It is a 6-knob, 4-toggle "no menus" pedal built for the Electrosmith Daisy Seed on the PedalPCB Terrarium platform. The engine combines reverse delay, pitch shifting, and an infinite freeze engine with a massive echo-chamber reverb.
This release marks a major milestone in the development of the project. While the original version was built using PlugData/Pure Data, the move to native C++ represents a total architectural shift. To keep technical discussions clear and organized, this thread will serve as the hub for the new C++ engine, while the original thread remains the home for legacy builds.
Media Demo
Watch the Phantasmagoria v2 in action on YouTube:
Development Evolution: New in v2
By moving to a native C++ architecture, the engine has received several significant upgrades—most notably, the complete eradication of the Pure Data noise floor:
- The 1kHz Whine Fix (Dead-Quiet Signal Path): One of the most frustrating limitations of the Pure Data/PlugData environment was its lack of support for lower block sizes, which inherently introduced a notorious 1kHz whine into the audio. Moving to C++ allowed us to drop the block size all the way down to 1. The result? That high-frequency artifact is completely gone, leaving a pristine, noise-free signal.
- Massive Performance Boost: The DSP is now significantly more efficient overall, allowing for cleaner processing and near-zero latency.
- Improved Shimmer (SW4): The shimmer engine has been retuned to feed directly into the reverb tail for a more "angelic" wash.
- Enhanced Pitch Shifting: Grain-based processing for the Fifth Down and Octave Down modes is smoother and more responsive than the previous implementation.
- New Web Flasher Support: Users can now flash the pedal directly from a browser in seconds with no coding or toolchains required.
Control Interface (v2)
- Knob 1: Delay Time (20ms - 1800ms)
- Knob 2: Feedback (0 - 95%)
- Knob 3: Reverb Mix
- Knob 4: Tape Warble Depth
- Knob 5: LFO Speed
- Knob 6: Dry/Wet Mix
- SW1: Reverse Delay on/off
- SW2: Fifth Down pitch shift on/off
- SW3: Octave Down pitch shift on/off
- SW4: Shimmer (Octave Up) on/off
- FS1: Bypass
- FS2: Freeze: tap to toggle, hold to accumulate
Installation & Flashing Instructions
The full source code, updated documentation, and ready-to-flash .bin file are now available on GitHub:
- GitHub Repository: FuzzyLotus/Phantasmagoria
- Latest Release: Phantasmagoria v31 Downloads
To flash your pedal:
- Put your Daisy Seed into BOOT mode.
- Navigate to flash.daisy.audio in a compatible browser.
- Upload the phantasmagoria.bin file.
Note for Windows Users: If you encounter connection issues, refer to the README on GitHub for the Zadig/driver fix/driver fix to ensure your PC recognizes the Daisy Seed in DFU mode.
Technical Specifications
The C++ rebuild focuses on maximizing the Daisy Seed hardware potential by eliminating the overhead of the original implementation:
- Latency & Noise Optimization (Block Size 1): By running the engine at a Block Size of 1 (bypassing PD's fixed 64/48 block size limits), the engine provides near-instantaneous audio response and entirely eliminates the 1kHz hardware whine that plagued previous builds.
- Architecture: Native C++ port utilizing the libDaisy and DaisySP libraries.
- Pitch Shifting: Refined grain-based processing with smoother transitions and fewer artifacts.
- Memory Management: Optimized buffer management for the 2-second delay and triple-buffer freeze engine.
- Audio Fidelity: High-fidelity 48kHz sample rate with a drastically improved signal-to-noise ratio.
Legacy Archive (Pure Data / PlugData)
The original version remains available for DIYers who prefer working in visual environments or wish to study the original logic:
- Legacy Archive: Google Drive (Legacy PlugData Files)
- Legacy Discussion: Original PD Project Thread
I have used AI to help me write up the code and documentation, but the ideas and 80+hours of work I've put into fine-tuning things bug fixing, unplugging the pedal, turning the amp on, waiting for the lamps to get hot, were all very real and a challenge I've set for myself. As a complete code noob (except some BASIC JavaScript coding) this is the only way I could accomplish my goal. I hope you forgive me for turning to the dark side
Other than that,
Happy building and doom-ing!
Last edited: