Firmware

break-alchemy

Hype25/100

Break for the Hermetic Alchemy Lab V2: Ectocore-style break mangling of SD-card sample banks

break-alchemy is custom firmware for the Hermetic Modular Alchemy Lab, by @timncox.

forHermetic Modular Alchemy Lab·by@timncox

Unclaimed. Is this yours? Sign in with GitHub as @timncox to claim it.

Downloads
0
Stars
0
Forks
0
Commits
12
Last commit
Get the source

No release files yet. Build from source.

Custom license· timncox/break-alchemy·downloads come from the creator’s GitHub releases

12
Commits
0
Releases
12 commits and 0 releases in the last year
Activity · last 12 months

Break — Ectocore-style break mangling for the Alchemy Lab

Firmware for the Hermetic Modular Alchemy Lab V2. It plays sliced breaks from an SD card prepared on ectocore.rocks (16 banks × 16 samples, with slices, kick/snare marks and a grimoire) and mangles them through Smack's seeded per-slice glitch engine.

It is inspired by the infinitedigits Ectocore and reads its card format. It contains none of its code: schollz/_core is GPL-3.0, and this is a clean-room implementation from a format description (docs/ectocore-sd-format.md). MIT.

Panel

PLAY                         SHIFT (hold B3)
[P1 BREAK]   B1 [P2 AMEN]    [VOLUME]      [SEED]
[P3 SAMPLE]  B2 [P4 RANDOM]  [BANK]        [PITCH RANGE]
[P5 GRIMOIRE]B3 [P6 DJ FILT] [CLOCK RATIO] [TEMPO]
ControlDoes
BREAKhow many slices carry an effect (squared curve)
AMENCCW: straight · middle: loop a random sequence of 1–32 slices · full CW: random 3-slice phrases
AMEN RANDOMcentre: off · left: jump, and carry on from there · right: jump, then snap back to the grid
SAMPLE / BANKpick among the samples / banks actually on the card
GRIMOIRErune 1–7: which effects BREAK can use (from the card's settings/grimoire, else built-ins)
DJ FILTERLP left, HP right, open at centre
VOLUME100 % at noon, then soft saturation
CLOCK RATIOwhat a J1 pulse is worth: /2 half note, =1 quarter, x2 eighth (2 ppqn, default)
B1tap: re-roll · hold: stop / play
B2tap: tap tempo · hold: punch (every slice retriggers)
Settings (B2+B3)P1 brightness · P2 Trig Out (kick / snare / transient / random) · P3-P4 presets · P5 Evolve (fresh pattern each pass) · P6 Tempo: pitch follows tempo, or keep pitch · page 2 = SD firmware picker

Jacks: J1 clock in · J2 reset · J3 AMEN cv · J4 BREAK cv · J5 SAMPLE cv · J6 AMEN RANDOM cv · J7 clock out (eighths) · J8 trig out · J9/J10 audio out.

LEDs: B1 green playing · amber loading · red no card / load failed · grey stopped · white punching. B2 blue = locked to J1 · grey free-running (white flash per beat) · red = CPU > 80 %.

The card

Export from ectocore.rocks and copy the folder's contents (or the folder itself) to a FAT32 card: bank1/0.0.wav + bank1/0.0.wav.info, … and settings/grimoire/runeN/effectE-on.

Or skip ectocore.rocks: python3 tools/make_card.py <breaks folder> <card> turns any wav / aif / mp3 / flac breaks into the same layout (tempo from the name like amen 136bpm.wav, else from the length; eighth-note slices; kicks and snares guessed for Trig Out). Needs ffmpeg. tools/make_test_card.py <dir> writes a small synthetic card.

Build, test, flash

make libdaisy            # once
make                     # build/break_alchemy.bin
make test                # native: card reader, Amen/runes, engine with a loaded break
make program-live        # flash over HostLink

Emulator (alchemy-lab, branch emu-custom): see emu.mk. make test-real runs emu-tests-real/*.emu against your own card (~/Music/Break Card, or BREAK_REAL_CARD=…); skipped when there is none. make -C <alchemy-lab>/emu test-custom FW_DIR=$PWD runs emu-tests/*.emu against emu-card/.

Home preset slot 4.