Moonchild is a hi-fi multi-effect pedal implemented in C++ for the Daisy Seed microcontroller running on the PedalPCB Terrarium guitar pedal platform.
It combines a transparent modulated chorus, a plate/hall reverb with continuous character morphing, and a freeze function that captures your reverb tail as a living, evolving pad you can play over.
by Folklore Electronics
- Chorus — three decorrelated delay lines with triangle LFO modulation and slow drift oscillator
- Reverb — four-tap FDN with input diffusion, plate/hall character morphing, and stereo late field
- Freeze — captures the reverb tail into three parallel voices that evolve over time
- Tilt EQ — full-range tone control that shifts spectral balance without killing content
- Chorus Enhancement — shimmer voice chain adds octave-up harmonic layer to the chorus (SW1)
- Orbit / Widen — stereo field expansion with bloom (SW2)
- Bond / Interaction — cross-couples the chorus and reverb engines with feedback (SW3)
- Character — continuous plate-to-hall reverb morphing (SW4)
| Control | Label | Function |
|---|---|---|
| Knob 1 | FLOW | Chorus LFO rate (0.1 – 3 Hz) |
| Knob 2 | VEIL | Dry/wet crossfade |
| Knob 3 | FADE | Reverb decay time |
| Knob 4 | SWAY | Chorus modulation depth (0.2 – 5 ms) |
| Knob 5 | BIND | Chorus/reverb balance (left = chorus, right = reverb) |
| Knob 6 | HAZE | Tilt EQ (left = warm, noon = flat, right = bright) |
| SW1 | AURA | Chorus enhancement on/off |
| SW2 | ORBT | Orbit / stereo widening on/off |
| SW3 | LINK | Bond / chorus-reverb interaction on/off |
| SW4 | HALL | Reverb character (plate to hall) on/off |
| FS1 | CHR | Tap: chorus on/off. Hold: momentary chorus-to-freeze send |
| FS2 | REV | Tap: reverb on/off. Hold: freeze toggle |
| LED | Off | Solid | Pulsing |
|---|---|---|---|
| LED1 | Chorus off | Chorus on | FS1 held (sending to freeze) |
| LED2 | Reverb off | Reverb on | Freeze active |
LED pulse range is 50–100% brightness to avoid flicker.
- Electrosmith Daisy Seed
- PedalPCB Terrarium (or compatible Daisy Seed pedalboard)
- ARM DFU-capable USB connection for flashing
You don't need to install anything or know how to code. Just download the .bin file from the Releases page and follow these steps:
- Locate the two small buttons on the Daisy Seed: BOOT and RESET
- Hold down BOOT
- While holding BOOT, tap RESET
- Release BOOT
- The Daisy Seed is now ready to receive firmware
- Go to flash.daisy.audio
- Click the File Upload tab
- Click BROWSE... and select the
moonchild.binfile you downloaded - Click the FLASH button (this may prompt you to select your Daisy Seed from a browser popup)
- Wait for it to finish, and your pedal is ready!
The web programmer works in Chrome or Edge. It will not work in Firefox or Safari.
If your Windows PC doesn't recognize the Daisy Seed in the browser flasher, you likely need to replace the default USB driver with WinUSB.
- Put your Daisy Seed in BOOT mode (Hold BOOT, tap RESET, release BOOT).
- Download and run Zadig.
- Go to Options > List All Devices.
- Select DFU in FS Mode (or STM32 BOOTLOADER) from the main dropdown menu.
- Ensure the target driver with the green arrow points to WinUSB.
- Click Replace Driver.
- Refresh the web flasher page and try connecting again.
Three delay lines with offset triangle LFO modulation create a rich ensemble effect. A 12kHz anti-alias filter blended 55/45 with the raw input keeps the chorus transparent. A single gentle saturation stage (linear below 0.8) runs in parallel with the clean signal at 72/28 for dynamics preservation.
Four-tap feedback delay network with four input diffusion allpasses. Delay tap positions crossfade between plate (bright, tight) and hall (dark, wide) based on SW4 state and K3 decay setting. The late reflection field includes stereo cross-feed, halo blending, and slow drift modulation for spatial movement.
Hold FS2 to capture the current reverb tail into three parallel freeze voices with staggered loop lengths (97ms, 149ms, 199ms). The frozen pad evolves over time through texture drift, tonal evolution, and live-play reactivity. Hold FS1 while frozen to blend live chorus into the frozen bed.
Turning off reverb while frozen triggers a graceful shutdown tail that decays naturally instead of cutting abruptly.
The dry signal is never filtered on the bypass path. An 80Hz HPF only applies to the effect engine inputs. A 120Hz bass recovery filter blends lost low end back into the wet bus. Matched stereo HPFs on the reverb output prevent phase mismatch on mono sum. The tilt EQ replaces a traditional resonant lowpass for full-range usability across the entire knob sweep.
git clone https://github.com/GuitarML/DaisyCloudSeed
cd DaisyCloudSeed
git submodule update --init --recursivemake -C libdaisy
make -C DaisySPcd petal
git clone https://github.com/FuzzyLotus/Moonchild
cd Moonchildmake
make program-dfuConnect your Daisy Seed via USB and put it into DFU mode (hold BOOT, tap RESET, release BOOT) before running
make program-dfu.
You need the ARM GCC embedded toolchain. On most Linux systems:
# Fedora/RHEL
sudo dnf install arm-none-eabi-gcc arm-none-eabi-newlib
# Ubuntu/Debian
sudo apt install gcc-arm-none-eabiOr download directly from ARM's website.
Moonchild/
├── MoonChild.cpp # Main DSP source
├── terrarium.h # Terrarium hardware abstraction (included locally)
├── Makefile
└── README.md
terrarium.h is included directly in this repo so you don't need to rely on the Terrarium submodule separately.
SW2 (ORBT) and SW3 (LINK) are physically swapped in software to match the intended panel layout. SW2 reads from Terrarium::SWITCH_3 and SW3 reads from Terrarium::SWITCH_2. If you're wiring your own enclosure, label them according to the panel layout above, not the PCB silkscreen.
Pull requests are welcome! If you build on this project, please share your work openly under the same license.
- Fork the repo
- Create a branch:
git checkout -b my-feature - Commit your changes:
git commit -m "Add my feature" - Push and open a Pull Request
Please test on real hardware before submitting.
GNU General Public License v3.0 — see LICENSE for details.
You are free to use, modify, and share this project. You may not use it in closed-source or commercial products. Any derivatives must also be released under GPL-3.0.
Built on the GuitarML DaisyCloudSeed build environment, which bundles libDaisy and DaisySP. Thanks to Brandon Muir and Jeremy Costa for the name and pedal inspiration - without you, I wouldn't have thought of building such a thing!
terrarium.h is copyright PedalPCB, included with original copyright notice intact.
Moonchild by Folklore Electronics