for modular synths
Cortex
In developmentSave and recall full patches. Play your analog oscillators polyphonically — up to 16 voices, allocated live from MIDI.
Modular synths forget. Every patch, every routing, every knob — gone the moment you touch it. Cortex gives your case memory: save and recall full patches, and play your analog oscillators polyphonically with up to 16 voices, allocated live from MIDI.
Your audio stays 100% analog; the brain speaks only CV and gate. Built on open firmware — configure it with the free editor & simulator, or hack it yourself.
Specs
| Latency | ≤ 5 ms note-on → CV |
|---|---|
| Pitch CV | 16-bit, 1V/oct |
| Voices | 16, multi-case |
| Editor | Free browser editor & simulator |
| Firmware | Open source (MIT), updatable over USB |
Components
musicbrain-busboard
v3.0, v3.1The backbone of the system: one Teensy 4.1 drives every function card you plug into its six slots, and the board takes care of power, the SPI bus, MIDI (two ins, two outs), USB host and the display port. A built-in tuning input listens to a VCO while the system dials it in, and the CAN port links external satellites. Delegated boards - extra Teensys or FPGA cards - can live in any slot and merge their audio back into the master over the shared audio lines. Every MusicBrain build starts here.
Board v3.0
Connectors (24)
| J11 · DISPLAY | 1→+3V3 2→GND 3→DISP_CS 4→DISP_RST 5→DISP_DC 6→MOSI1 7→SCK1 8→+3V3 9→— |
| J17 · AUDIO/CODEC | 1→+3V3 2→CODEC_RST 3→+5V 4→MCLK 5→GND 6→BCLK 7→GND 8→LRCLK 9→GND 10→I2S_OUT 11→+12V 12→I2S_IN 13→-12V 14→GND |
| J18 · TUNE | 1→TUNE_J 2→GND |
| J2 · SLOT 2 | 1→GND 2→+12V 3→GND 4→-12V 5→GND 6→+3V3 7→SCLK 8→GND 9→MOSI 10→GND 11→MISO 12→GND 13→CS2 14→GND 15→LDAC 16→IRQ2 17→SDA 18→SCL 19→CONVST 20→GND 21→MCLK 22→BCLK 23→LRCLK 24→I2SD2 |
| J3 · SLOT 3 | 1→GND 2→+12V 3→GND 4→-12V 5→GND 6→+3V3 7→SCLK 8→GND 9→MOSI 10→GND 11→MISO 12→GND 13→CS3 14→GND 15→LDAC 16→IRQ3 17→SDA 18→SCL 19→CONVST 20→GND 21→MCLK 22→BCLK 23→LRCLK 24→I2SD3 |
| J21 · EXPANSION | 1→CS9 2→IRQ7 3→CS10 4→IRQ8 5→CS11 6→IRQ9 7→CS12 8→IRQ10 9→CS13 10→IRQ11 11→CS14 12→IRQ12 13→MISO 14→GND 15→XSCLK 16→GND 17→XMOSI 18→GND 19→XLDAC 20→GND 21→XCONVST 22→SDA 23→XRST 24→SCL 25→GND 26→GND |
| J4 · SLOT 4 | 1→GND 2→+12V 3→GND 4→-12V 5→GND 6→+3V3 7→SCLK 8→GND 9→MOSI 10→GND 11→MISO 12→GND 13→CS4 14→GND 15→LDAC 16→IRQ4 17→SDA 18→SCL 19→CONVST 20→GND 21→MCLK 22→BCLK 23→LRCLK 24→I2SD4 |
| J5 · SLOT 5 | 1→GND 2→+12V 3→GND 4→-12V 5→GND 6→+3V3 7→SCLK 8→GND 9→MOSI 10→GND 11→MISO 12→GND 13→CS5 14→GND 15→LDAC 16→IRQ5 17→SDA 18→SCL 19→CONVST 20→GND 21→MCLK 22→BCLK 23→LRCLK 24→I2SD5 |
| J6 · SLOT 6 | 1→GND 2→+12V 3→GND 4→-12V 5→GND 6→+3V3 7→SCLK 8→GND 9→MOSI 10→GND 11→MISO 12→GND 13→CS6 14→GND 15→LDAC 16→IRQ6 17→SDA 18→SCL 19→CONVST 20→GND 21→MCLK 22→BCLK 23→LRCLK 24→I2SD6 |
| J23 · USB HOST | 1→USBH_1 2→USBH_1 3→USBH_2 4→USBH_2 5→USBH_3 6→USBH_3 7→USBH_4 8→USBH_4 9→USBH_5 10→USBH_5 |
| J9 · PWR IN | 1→-12V 2→-12V 3→GND 4→GND 5→GND 6→GND 7→GND 8→GND 9→+12V 10→+12V |
| J1 · SLOT 1 | 1→GND 2→+12V 3→GND 4→-12V 5→GND 6→+3V3 7→SCLK 8→GND 9→MOSI 10→GND 11→MISO 12→GND 13→CS1 14→GND 15→LDAC 16→IRQ1 17→SDA 18→SCL 19→CONVST 20→GND 21→MCLK 22→BCLK 23→LRCLK 24→I2SD1 |
| J10 · EXP | 1→+3V3 2→GND 3→+5V 4→GND 5→D10 6→D33 7→— 8→D32 9→D36 10→D37 11→D38 12→D39 13→GND 14→GND |
| J19 · DLG1 | 1→GND 2→DLG1_TX 3→DLG1_RX 4→GND |
| J20 · DLG2 | 1→GND 2→DLG2_TX 3→DLG2_RX 4→GND |
| J13 · MIDI IN1 | 1→MIN1_4 2→MIN1_5 3→— |
| J14 · MIDI IN2 | 1→MIN2_4 2→MIN2_5 3→— |
| J15 · MIDI OUT | 1→MOUT5 2→MOUT4 3→GND |
| J22 · MIDI OUT2 | 1→MOUT2_5 2→MOUT2_4 3→GND |
| J16 · CAN | 1→+12V 2→CANH 3→CANL 4→GND |
| J12 · QWIIC | 1→GND 2→+3V3 3→SDA 4→SCL |
| J24 · AUDIOHUB | 1→MCLK 2→BCLK 3→LRCLK 4→GND 5→I2SD1 6→I2SD2 7→I2SD3 8→I2SD4 9→I2SD5 10→I2SD6 11→GND 12→GND 13→GND 14→GND |
| J7 · HUB 1 | 1→GND 2→CS7 3→MISO 4→MOSI 5→SCLK 6→GND 7→+3V3 8→GND 9→-12V 10→+12V |
| J8 · HUB 2 | 1→GND 2→CS8 3→MISO 4→MOSI 5→SCLK 6→GND 7→+3V3 8→GND 9→-12V 10→+12V |
Board v3.1
Connectors (25)
| J1 · SLOT 1 (J1) | 1→GND 2→+12V 3→GND 4→-12V 5→GND 6→+3V3 7→SCLK 8→GND 9→MOSI 10→GND 11→MISO 12→GND 13→CS1 14→GND 15→LDAC 16→IRQ1 17→SDA 18→SCL 19→CONVST 20→GND 21→MCLK 22→BCLK 23→LRCLK 24→I2SD1 |
| J2 · SLOT 2 (J2) | 1→GND 2→+12V 3→GND 4→-12V 5→GND 6→+3V3 7→SCLK 8→GND 9→MOSI 10→GND 11→MISO 12→GND 13→CS2 14→GND 15→LDAC 16→IRQ2 17→SDA 18→SCL 19→CONVST 20→GND 21→MCLK 22→BCLK 23→LRCLK 24→I2SD2 |
| J3 · SLOT 3 (J3) | 1→GND 2→+12V 3→GND 4→-12V 5→GND 6→+3V3 7→SCLK 8→GND 9→MOSI 10→GND 11→MISO 12→GND 13→CS3 14→GND 15→LDAC 16→IRQ3 17→SDA 18→SCL 19→CONVST 20→GND 21→MCLK 22→BCLK 23→LRCLK 24→I2SD3 |
| J4 · SLOT 4 (J4) | 1→GND 2→+12V 3→GND 4→-12V 5→GND 6→+3V3 7→SCLK 8→GND 9→MOSI 10→GND 11→MISO 12→GND 13→CS4 14→GND 15→LDAC 16→IRQ4 17→SDA 18→SCL 19→CONVST 20→GND 21→MCLK 22→BCLK 23→LRCLK 24→I2SD4 |
| J5 · SLOT 5 (J5) | 1→GND 2→+12V 3→GND 4→-12V 5→GND 6→+3V3 7→SCLK 8→GND 9→MOSI 10→GND 11→MISO 12→GND 13→CS5 14→GND 15→LDAC 16→IRQ5 17→SDA 18→SCL 19→CONVST 20→GND 21→MCLK 22→BCLK 23→LRCLK 24→I2SD5 |
| J6 · SLOT 6 (J6) | 1→GND 2→+12V 3→GND 4→-12V 5→GND 6→+3V3 7→SCLK 8→GND 9→MOSI 10→GND 11→MISO 12→GND 13→CS6 14→GND 15→LDAC 16→IRQ6 17→SDA 18→SCL 19→CONVST 20→GND 21→MCLK 22→BCLK 23→LRCLK 24→I2SD6 |
| J7 · HUB 1 (J7) | 1→GND 2→CS7 3→MISO 4→MOSI 5→SCLK 6→GND 7→+3V3 8→GND 9→-12V 10→+12V |
| J8 · HUB 2 (J8) | 1→GND 2→CS8 3→MISO 4→MOSI 5→SCLK 6→GND 7→+3V3 8→GND 9→-12V 10→+12V |
| J9 · PWR IN (J9) | 1→-12V 2→-12V 3→GND 4→GND 5→GND 6→GND 7→GND 8→GND 9→+12V 10→+12V |
| J10 · EXP (J10) | 1→+3V3 2→GND 3→+5V 4→GND 5→D10 6→D33 7→ 8→D32 9→D36 10→D37 11→D38 12→D39 13→GND 14→GND |
| J11 · DISPLAY (J11) | 1→+3V3 2→GND 3→DISP_CS 4→DISP_RST 5→DISP_DC 6→MOSI1 7→SCK1 8→+3V3 9→ |
| J12 · QWIIC (J12) | 1→GND 2→+3V3 3→SDA 4→SCL |
| J13 · MIDI IN1 (J13) | 1→MIN1_4 2→MIN1_5 3→ |
| J14 · MIDI IN2 (J14) | 1→MIN2_4 2→MIN2_5 3→ |
| J15 · MIDI OUT (J15) | 1→MOUT5 2→MOUT4 3→GND |
| J16 · CAN (J16) | 1→+12V 2→CANH 3→CANL 4→GND |
| J17 · AUDIO/CODEC (J17) | 1→+3V3 2→CODEC_RST 3→+5V 4→MCLK 5→GND 6→BCLK 7→GND 8→LRCLK 9→GND 10→I2S_OUT 11→+12V 12→I2S_IN 13→-12V 14→GND |
| J18 · TUNE (J18) | 1→TUNE_J 2→GND |
| J19 · DLG1 (J19) | 1→GND 2→DLG1_TX 3→DLG1_RX 4→GND |
| J20 · DLG2 (J20) | 1→GND 2→DLG2_TX 3→DLG2_RX 4→GND |
| J21 · EXPANSION (J21) | 1→CS9 2→IRQ7 3→CS10 4→IRQ8 5→CS11 6→IRQ9 7→CS12 8→IRQ10 9→CS13 10→IRQ11 11→CS14 12→IRQ12 13→MISO 14→GND 15→XSCLK 16→GND 17→XMOSI 18→GND 19→XLDAC 20→GND 21→XCONVST 22→SDA 23→XRST 24→SCL 25→GND 26→GND |
| J22 · MIDI OUT2 (J22) | 1→MOUT2_5 2→MOUT2_4 3→GND |
| J23 · USB HOST (J23) | 1→USBH_1 2→USBH_1 3→USBH_2 4→USBH_2 5→USBH_3 6→USBH_3 7→USBH_4 8→USBH_4 9→USBH_5 10→USBH_5 |
| J24 · AUDIOHUB (J24) | 1→MCLK 2→BCLK 3→LRCLK 4→GND 5→I2SD1 6→I2SD2 7→I2SD3 8→I2SD4 9→I2SD5 10→I2SD6 11→GND 12→GND 13→GND 14→GND |
| J25 · AXON +5V (J25) | 1→+5V 2→GND |
Cortex editor
v0.5.48Browser-based patch editor for the Cortex modular system. You assemble a rack from module panels, patch them with colour-coded cables for CV, gates, triggers, audio and MIDI, and play the result right away: the built-in engine simulates the patch polyphonically, from a single synth voice up to an eight-voice DX7. The same patch then uploads to the Teensy over USB, where the firmware reproduces it — a contract test keeps editor and firmware in step, so the editor version follows the firmware series.
Software v0.5.48

Releases
- cortex v0.3 · 2026-07-16 · stable
- modular-mb v0.2 · 2026-07-11 · dev
- cortex v0.1 · 2026-05-01 · stable