For Developers
Open Source
Build on any Hermetic Modular hardware platform. Every hardware abstraction layer we ship is open source, hackable, and yours to extend.
01
Ready For Your DSP
LED animations, pagination, parameter lock, pot catch, and more — get a polished UX out of the box. Or write your own.
02
Field Programmable I/O
Dynamically control jacks in firmware and re-write analog stages in real time. CV in or out, configured to your patch.
03
Panel Templates
Front panel design and manufacturing templates. Build custom panels from rich templates and produce professional Eurorack panels affordably.
Firmware
Extend the
Daisy Library
Familiar Daisy APIs, extended with Hermetic Modular board support packages and a richer UX layer.
stereo_eq.cpp
#include "alchemy/hw/alchemy_lab_v1.h"
#include "alchemy/surface/control_loop.h"
#include "alchemy/surface/pager.h"
#include "alchemy/surface/cv_matrix.h"
#include "stereo_eq_dsp.h"
using namespace alchemy;
/* Each pot: curve + LED ring animation. */
static VirtualKnob hi_level = VirtualKnob(0, "Hi Level")
.Linear(-24.f, +24.f)
.Ring(Bipolar(kPalette.hi));
static VirtualKnob hi_freq = VirtualKnob(1, "Hi Freq")
.Exp(1000.f, 16000.f)
.Ring(Level(kPalette.hi, FillAnim::Pulse));
/* Bind knobs into a page — B1 flips to the right channel. */
static Page left = Page(0).Knobs(hi_level, hi_freq);
/* SDK surfaces — opt in to what you need. */
static AlchemyLabV1 hw;
static ControlLoop loop(hw);
static Pager pager(hw.buttons[0], 2, kNumPots);
static Presets presets(hw.seed.qspi);
static CvMatrix cv(kNumCvInputs);
int main() {
hw.Init();
eq_dsp::Init(hw.SampleRate());
// CV routing — one line per jack
cv.Jack(0).To(hi_level);
cv.Jack(1).To(hi_freq);
presets.Manage(pager);
presets.BootLoad();
hw.StartAudio(eq_dsp::Process);
loop.Use(pager).Use(cv).Use(left);
for(;;) loop.Tick();
}Module render — placeholder