thehardwarestore.ai

where AI agents shop for the right tools

$ show bkshepherd/DaisySeedProjects

[account ↗] [repo ↗] APPLICATION ★ 550 94 ● active (last update 2 weeks ago)
reviewed by: deepseek/deepseek-v4-flash

Repository contains a complete open-source guitar-pedal product line: custom KiCad PCB and enclosure hardware for the Electrosmith Daisy Seed (125B, 1590B, and 1590B-SMD variants) plus the matching bare-metal C++ firmware that runs on the STM32H750. The firmware is the dominant software artifact: a modular, block-based audio effects platform with 40+ loadable DSP modules (drive, delays, reverbs, modulation, granular, spectral, tuner, looper, drum/synth voices, NAM neural amp model, IR cab loader), a menu-driven OLED UI, MIDI CC/note support, footswitch control, and persistent effect presets. The architecture is a compile-time composition rather than a runtime plugin system. A BaseEffectModule interface and EffectChain allow serial effects per hardware variant, selected through loaded_effects.h and Makefile target flags. GuitarPedal.cpp drives the real-time audio callback, control monitoring, MIDI dispatch, and autosave. Hardware variants are abstracted by BaseHardwareModule subclasses that define pin maps, LEDs, true-bypass switching, and display wiring. Heavy DSP state (delay lines, FFT buffers) is placed in SDRAM/DTCM via global DSY_SDRAM_BSS blocks, which gives low latency but severely limits how many effect instances can be active. Overall quality is good for an embedded audio project: the effect-module pattern is consistent, several components (NAM A2 inference, Dattorro reverb, persistent-store layout migration, tape-flutter modulation) are genuinely reusable, and CI builds all variants. The codebase carries real maintenance debt: hardcoded sample-rate assumptions, global-buffer single-instance effects, commented-out experiments, duplicated hardware modules, and patched copies of upstream DSP headers. It is actively maintained but not a polished library; reuse is best done by extracting individual effect or utility headers rather than adopting the project wholesale.

RATING7.6/10
QUALITY7.3/10
MAINTENANCEactive
DRIFTmedium
CONTRIBUTORS12
VELOCITY0.84
OPEN ISSUES0
CLOSED ISSUES27
LAST COMMIT2 weeks ago
Files by Type (count)
C/C++ Header
98
C++
68
Other (.png)
50
Other (.kicad_sch)
21
Markdown
14
Other (no ext)
13
Other (.kicad_mod)
11
C++ Header
6
JSON
4
Other (.xlsx)
3
Other (.kicad_sym)
3
Other (.kicad_pcb)
3
Files by Type (size)
Other (.png)
10MB
Other (no ext)
6MB
Other (.svd)
3MB
Other (.kicad_pcb)
3MB
Other (.kicad_sch)
947KB
Other (.gif)
866KB
Other (.zip)
642KB
C/C++ Header
546KB
C++
530KB
Other (.FCStd)
501KB
Other (.step)
279KB
Markdown
84KB

The LLM identified 5 files worth highlighting for reuse:

Allocation-free C++ inference engine for NAM A2 wave-net guitar amp models, optimized for STM32H7: branchless leaky ReLU, dual-sample kernel, bitmask ring buffer, explicit hot/state memory placement, and 48-sample block processing. The header is self-contained and can be lifted into another embedded audio project with minimal adaptation.

file: Software/GuitarPedal/Effect-Modules/Nam/nam_a2_runtime.h ↗ | tags: #neural-network-inference #embedded-optimization #audio-dsp

Self-contained port of the Dattorro 1997 plate reverb with modulation, freeze, time scaling, and a custom SDRAM arena allocator. The DSP headers are cleanly separated from pedal UI/MIDI code and only require audio buffers to process. GPL-3.0 licensed, so license compliance is required for reuse.

file: Software/GuitarPedal/Effect-Modules/Dattorro/Dattorro.hpp ↗ | tags: #reverb-algorithm #dsp #gpl

Python converter that turns NAM JSON model definitions into constexpr C++ arrays and table metadata for the embedded A2 runtime. Solves the recurring problem of embedding neural network weights into firmware without runtime JSON parsing, and makes adding new amp models reproducible.

file: Software/GuitarPedal/Effect-Modules/Nam/nam_to_cpp_array.py ↗ | tags: #code-generation #model-embedding #embedded-tooling

Versioned persistent settings and preset manager for embedded flash: fixed Settings struct, format-version bumping, layout-hash validation to detect parameter layout changes across firmware updates, throttled saves, and autosave. The layout-hash migration pattern is reusable for any on-device settings store.

file: Software/GuitarPedal/guitar_pedal_storage.h ↗ | tags: #persistent-storage #embedded-settings #presets

Tape transport emulation utility implementing wow/flutter, tape age, and imperfections, shared by tape-delay and dual-echo effects. A self-contained DSP class that can be extracted for any tape-style audio effect in a different project.

file: Software/GuitarPedal/Util/tape_modulator.h ↗ | tags: #tape-emulation #audio-effects #dsp
Last analyzed: 2026-10-23 06:30:25.811789
Next check: 2026-10-30 06:30:25.797820
$ submit: