Hermetic Modular Alchemy Lab V2 · firmware 0.1.0

seqa generative sequencer for the Alchemy Lab

Two generated voices that follow your chords, four drum triggers, and a Launchpad to play it all.

tested on a computer not yet on a module
12 HP · drawn at true scale · Bass page

The idea

What it does

One Lab runs a bass line, a lead line and four drum triggers. The two lines are generated, and they are made of chord tones, so when the progression moves they move with it. You shape them with a handful of knobs and keep the ones you like.

Knobs are thresholds

Turn it back and the line comes back

Every step owns a fixed random number. DENSITY is a threshold against it, so raising DENSITY only adds notes, and lowering it brings back exactly the line you had. LENGTH works the same way for note lengths.

Chords

Lines follow the progression

A step stores "the 2nd chord tone", not "E". A locked line still re-voices on every chord change. The default is A minor, i – VI – III – VII, a bar each.

Drums

Programmed, generated, or both

Steps you enter (on the Launchpad, or in a text file on the SD card) plus a generator on the pots: density thresholds or Euclidean rhythms, added on top. Works with no controller plugged in.

Keep, roll, undo

Eight slots per voice

ROLL makes a new line, MUTATE changes a quarter of it, UNDO swaps the last one back (again for redo), LOCK freezes it. Each voice has 8 pattern slots and the drums 16, queued to the next bar.

The panel

Four pages · click any control

B1 cycles the pots through the bass, the lead and the drums. Hold B3 for Setup. The voice pots edit the pattern that is playing now; when another pattern takes over, the pots have to catch its values before they move anything, so nothing jumps.

Select a control

The panel

6 pots × 4 pages · 3 buttons · 10 jacks
Hover or tap a pot, a button or a jack. B2 plays and stops. B2 and B3 held together for two seconds open Settings: brightness, presets, the USB port, and the SD-card firmware picker.
JackDoesSignalDriven by
J1Clock inrising edge; 1, 2, 4 (16ths) or 24 ppqncodec in, AC-coupled
J2Reset in: the next clock edge is step onerising edgecodec in, AC-coupled
J3Bass pitch1 V/oct, 0–5 VMCP4728, calibrated
J4Lead pitch1 V/oct, 0–5 VMCP4728, calibrated
J5Bass gate0 / 5 VMCP4728, latched with J3
J6Lead gate0 / 5 VMCP4728, latched with J4
J7Kick5 ms triggerSTM32 DAC
J8Snare5 ms triggerSTM32 DAC
J9Hat5 ms triggercodec, DC-coupled
J10Perc5 ms triggercodec, DC-coupled

The generator

The core's own maths, running in this page · seed 2026, slot 1

This is the line the module starts with after a fresh flash, computed by the same hash the firmware uses. Drag DENSITY down and up: notes leave and come back in the same places. Downbeats come in first.

Drums

Three ways in · the same pattern here and in the Launchpad below

A drum pattern is the steps you programmed plus what the generator adds. Click the steps below to program them, turn the amounts to add generated hits (the grey ones), and copy the text into /seq/drums.txt on the card.

Click: on / off · shift-click: 75 → 50 → 25 % · bright = programmed, dim = 25–50 %, grey = generated
/seq/drums.txt · pattern

      

On the Launchpad

DRUMS mode: four drums, two rows each, 16 steps. Tap for on or off; SHIFT and tap for 75, 50, 25 %. Grey pads are generated; tapping one programs it.

On the pots, no controller needed

B1 to the DRUMS page. KICK, SNARE, HAT and PERC set how much the generator adds; STYLE picks Gen 1–4 or Euclid 1–4; PATTERN picks which of the 16 plays, at the next bar. Each pattern keeps its own.

From the Mac: /seq/drums.txt

Write patterns as text (the box above does it for you), put the file on the card, power-cycle. The module reads it at power-up when it has changed, writes only the patterns it names, and switches their generator off so the file is what plays. B2 flashes green when it took it, red when a line made no sense (nothing changes then). The file stays on the card.

Getting the file onto the card

Take the microSD card out of the Lab, make a folder called seq at the top, and save the text as drums.txt inside it. Put the card back and power the Lab up.

Drum presets

A preset already keeps the drums: Settings (B2+B3 for 2 s), pots 2 and 3, saves or loads slots 0–10, and so does the web programmer. A preset is the whole state, both voices included. To keep just drum ideas, use the 16 patterns, or keep several drums.txt files on the Mac.

Loop length per drum

In the file, a line's length is that drum's loop, 1 to 64 steps: a 16-step kick with a 12-step hat gives polymeter. The Launchpad edits the first 16 steps.

Launchpad Mini MK3

Playable here · shares the generator above · click the pads

The top row picks the mode; the right column is the mutes in every mode. Press ▶ (top right) to run the playhead at 120 BPM.

Bass mode

Point at a pad

 
Each pad says what it does here. The simulator runs the same rules as the firmware: tapping a step ends the loop there, pattern slots queue for the next bar, drum steps toggle on and off.

Launch Control XL and Haute42

Through the same powered hub · both optional

Launch Control XL

factory template 1 · knob row per voice
DENSLENSLIDEJUMPTONESOCTRANGESWING
KICKSNAREHATPERCSTYLEPATT––

Row 1 is the bass, row 2 the lead. RANGE spreads the line over 1–3 octaves; SWING is how much of the global swing that voice takes. Row 3 is the drums page: four amounts, STYLE and PATTERN. The faders do nothing yet. A knob turned on the XL moves the value on the Lab too, and the Lab's pot then has to catch it.

Haute42

XInput mode · only behind the hub

For playing, not editing. The face buttons and bumpers mute while held. The triggers push that voice to full density while held, a fill, and let go returns it. The directions move the octaves, Start plays and stops, the stick clicks mutate.

Clock and transport

Internal tempo until something clocks J1

The first pulse takes over

With nothing on J1 the Lab runs at TEMPO. The first rising edge on J1 switches to the external clock and plays step one on that edge. Between pulses the position is filled in from the measured period, and it never runs past where the next pulse will land.

Two seconds of silence stops it

If J1 goes quiet for 2 s the transport stops and control goes back to TEMPO. The next pulse starts it again from step one.

Stop means stop

B2, ▶ on the Launchpad, PLAY on the XL or Start on the Haute42 stops it even while J1 keeps clocking; the pulses keep being measured. Play again and it starts from step one on the next pulse, in time.

Reset is on the next pulse

A rising edge on J2 makes the next J1 pulse step one, the Eurorack convention. With no clock, reset rewinds at once. J1 and J2 are AC-coupled, so only edges count, never a held level.

Patterns change on the bar

A queued pattern, for a voice or the drums, takes over at the next bar line, so a change always lands on the one.

Resolution

96 ticks per quarter note inside. Clock pulses are read every millisecond, so an external pulse lands within 1 ms of where it arrived.

Setup, saving and flashing

What to know before the first power-up

It saves when you stop

Your patterns, knobs, locks, drums, tempo and key save themselves to preset slot 5 three seconds after the last change, but only while stopped. A save pauses the timing for a moment, which would drop beats mid-song. While playing with unsaved changes, B2 flashes magenta every two seconds. Powering off mid-jam loses what changed since the last stop.

Launchpad mode is the default

The front USB-C is either the host for the controllers (Launchpad) or the web programmer's port (Mac), one per boot. Hold B1 while powering up for Mac mode once. The choice lives in Settings (B2+B3 for 2 s), and every firmware on the card shares it.

Power for the controllers

The Lab's front port gives no 5 V. Use a powered USB hub or OTG adapter in front of it; the host handles one hub level with up to three devices, which is exactly Launchpad + XL + Haute42.

Other firmware on the same card

The SD picker in Settings swaps firmware. Each one keeps its own preset slot (seq 5, Meld 6, Warps 7, Clouds 8, Elements 9, Marbles 10, Plaits 11, Smack 12, Mark 13, Belt 14, Relay 15), so switching away and back loses nothing.

Getting it

Seq isn't released yet. It has been built and tested on a computer, and its first run on a module is next. When it's out, it installs like every other instrument on the Alchemy Lab page: flash the first one with Hermetic's web programmer, then carry it on the card and switch to it from the picker.

Status

Firmware 0.1.0 · not yet released

Checked

  • The sequencer itself is checked by tens of thousands of automatic tests on a computer: the generator, chords, lock and undo, both clocks, the drums and their generator, Euclidean rhythms, the drums.txt reader, gates and glide, saving and loading.
  • The whole firmware runs, unchanged, in an Alchemy Lab emulator, where playing and stopping, following a clock on J1, the Launchpad, the Launch Control XL, the Haute42 and the drum file are all tested.
  • What it saves comes back exactly after a power cycle, and a damaged save is repaired rather than trusted.

Not yet tried on hardware

  • Clock and reset on J1/J2 through the AC-coupled inputs (1 V threshold).
  • The Launch Control XL's button colours.
  • All three controllers on the hub at once.
  • Reading /seq/drums.txt from a real card.
  • Not built yet: the CHORDS page (the progression is fixed for now) and autotune in TUNE mode.