User-programmable universal CV processor. 8 CV in, 8 CV out (16-bit, ±10V), 4×4 multicolor LED matrix. Patches are text/forge-built networks of circuits: LFOs, quantizers, sequencers, logic, MIDI — all in one module.
Patch Ideas · 10
▸ Show diagram Hide diagram
▸ Show diagram Hide diagram
▸ Show diagram Hide diagram
▸ Show diagram Hide diagram
▸ Show diagram Hide diagram
▸ Show diagram Hide diagram
▸ Show diagram Hide diagram
▸ Show diagram Hide diagram
▸ Show diagram Hide diagram
Behaviors
A patch is a list of circuit instances (lfo, quantizer, algoquencer, arpeggio, contour, mixer, logic, midiin, etc.) with each input parameter set to a fixed number, a register (I/O/P/B/L/G), a controller control, or an internal cable name. 70+ built-in circuit types cover sequencing, quantizing, envelopes, LFOs, logic, MIDI, random, slew, swing, chord generation, calibration.
Entire patch is evaluated at ~5.5 kHz (≈180 µs per cycle). Circuits execute top-to-bottom in file order; internal cables resolve in one cycle if source precedes destination, else incur ~160 µs delay. Reordering circuits can shave a loop cycle of latency.
Every input accepts three columns: source value, multiplier/attenuation, offset. Result = A·B+C. Multiplier and offset can themselves be CVs — so every input has a built-in VCA + mixer for free.
If a circuit writes to N3, input I3 returns that signal when nothing is patched, and the external jack signal when patched. Classic use: internal clock (LFO→N1) overridden by external clock patched to I1.
Button toggles, sequencer steps, matrix mixer positions, calibrations — all saved to the SD card ~1.5 s after change. State survives power cycles. LFO phases, cvlooper recordings, temporary values are not saved. Per-circuit dontsave=1 disables save.
With X7 attached, patches upload from Forge over USB-MIDI sysex in under a second. No SD card swap. The only way to iterate fast. Without X7, upload requires pulling SD card to PC, writing droid.ini, reinserting, pressing the button.
On load, errors encode the offending line number and column via coloured LEDs on the 4×4 matrix. Full error text is written to ERRORS.TXT on the SD card. X1 register sends a live number value for in-patch inspection.
Any string starting with _ is a named internal cable. One output writes it, any number of inputs read it. Equivalent to a virtual patch cable inside the DROID. Used heavily for modulation routing without eating physical jacks.
Input voltage is scaled: 10V ↔ 1.0, 5V ↔ 0.5, −10V ↔ −1.0. Numbers sent to O registers scale the same way out to the jack. V/oct uses 0.1 per semitone so 0.5 = 60 semitones up = C5. Numbers beyond ±1 are clipped at ±10V at the jack but used at full precision internally.
Declare multiple pot circuits pointing at the same physical P1.1 with different select inputs tied to a button/buttongroup/switch output. Each pot circuit drives its own target. One pot becomes attack/decay/sustain/release on a contour — menu-style CV control. Physical position persists per virtual slot.
Controls
| Global | Button | Loads the patch from the SD card at droid.ini. Press after swapping the card. momentary · also used for maintenance menu on long-press |
| Global | Micro SD slot | Holds droid.ini (patch) and DROIDSTA.BIN (saved circuit states). always keep card inserted during play · removing card loses state saves |
| I/O display | 4×4 LED matrix | Top two rows mirror inputs I1–I8, bottom two rows mirror outputs O1–O8. Bipolar signals shown red/blue, unipolar white. can be overridden with R1–R16 registers for custom display · X1 register shows a number live |
| Rear | Controller bus header | 6-pin chain to P2B8/P4B2/P10/S10/P8S8/B32/M4/E4/DB8E controllers. X7 always first if present. up to 16 controllers · last controller's jumper = LAST · others = PARK |
| Rear | G8 expansion header | 8-pin chain to up to 4× G8 gate expanders. adds 8–32 gate in/out jacks · red stripe down on ribbon cable |
I/O
IN · 1
- I1–I8 ±10V · 16-bit · clipped at ±10V CVEight CV inputs. Read as numbers −1.0 … +1.0 inside the patch. Every circuit input can attenuate (×) and offset (+).
OUT · 2
- O1–O8 ±10V · 16-bit · precise timing CVEight CV outputs. Patch circuit outputs to O1–O8. Any number outside −1..+1 is clamped at ±10V.
- N1–N8 (virtual) same as I when unpatchedVirtual output registers that feed the normalization of I1–I8. Patch an internal LFO to N1; I1 reads that LFO when unpatched, the external signal when patched.
Expanders
DROID G8 4HP
DROID gate expander. Eight tristate jacks, each freely assignable per-patch as gate input (≥0.75V = high) or 0V/5V output. Up to four chain to one master for 8–32 extra gate jacks. Auto-detected, no droid.ini entry.
Behaviors
Each jack's direction is decided by how it appears in the patch: if a circuit reads from G3 (input side of a parameter), jack 3 becomes an input; if a circuit writes to G3 (output side), jack 3 becomes an output. A jack cannot be both simultaneously. Flexible gate I/O topology without hardware switches.
Hardware compromise: the tristate I/O chip that makes the jacks bidirectional cannot source 10V. 99.9% of Eurorack modules trigger cleanly at 5V, but some vintage analog envelopes may need higher. For those cases, use one of the master's O1–O8 outputs, which swing to 10V.
On MASTER (no built-in gate jacks), the first G8’s jacks are G1..G8, the second G8 is G2.1..G2.8, and so on. On MASTER18 (which has four built-in gate outs named G1..G4), the first G8 is numbered G2.1..G2.8 and the fourth G8 becomes G5.1..G5.8. Dot-notation (Gn.m) works universally on both masters.
G8 v2 introduced daisy-chaining. Master → G8₁ → G8₂ → G8₃ → G8₄ via 8-pin ribbon cables, no termination jumper needed. Gives up to 32 extra gate I/O on a single DROID system. The last G8 in the chain may be v1 or v2; all earlier positions must be v2 because v1 has only one connector.
Unlike controllers (P2B8, P10, etc.) G8s are NOT declared in droid.ini — they are detected automatically. Writing to G3 just works if a G8 is present; if no G8 is present the patch still loads and other non-G registers run normally.
The eight LEDs follow default jack state (blue = input high, red = output high) unless the patch writes to their R registers: R17–R24 for the first G8, R25–R32 for the second, R33–R40 for the third, R41–R48 for the fourth. Values between 0 and 1 produce colors/brightnesses per the master’s LED color table. Great for sequencer position, envelope phase, or any patch-generated display.
Patch Ideas · 5
▸ Show diagram Hide diagram
▸ Show diagram Hide diagram
▸ Show diagram Hide diagram
▸ Show diagram Hide diagram
▸ Show diagram Hide diagram
I/O
IN · 1
- Jack 1–8 (as input) ≥0.75V = 1 (high), below = 0 · negative voltages read as 0 GATEAny of the eight jacks acts as a gate/trigger input when a G register is read in a circuit parameter. Register names: G1..G8 (first G8 on MASTER, dot-notation G1.1..G1.8 also works), G2.1..G2.8 (first G8 on MASTER18 — G1..G4 are reserved for the MASTER18’s built-in gate outs), and Gn.m for chained G8s.
OUT · 1
- Jack 1–8 (as output) 0V or 5V (cannot output 10V — hardware limitation of the tristate chip) CVSame jacks act as outputs when any circuit writes to their G register. The jack emits 5V for values ≥ 0.1, otherwise 0V. No continuous CV — the I/O chip that makes the jacks bidirectional only supports digital 0V/5V output.
Controls
| Panel, one per jack | 8 multicolor LEDs | Indicate jack state. Blue = input high, red = output high. Can be overridden from patch via R17–R48 registers for custom display. one LED per jack · R registers allow visual feedback for any patch value |
| Rear | Master connector (v2: right-hand, labelled “Master”) | 8-pin IDC header wired to the DROID master’s G8 expansion port (or to the previous G8 in the chain). red stripe down · both v1 and v2 have this connector |
| Rear | Chain connector (v2 only, left-hand) | Second 8-pin header that feeds the next G8 in the chain. v1 G8 does not have this — a v1 unit must be the last module in the chain. no termination jumper needed · up to 4 G8s total |
DROID P10 5HP
DROID controller. Ten pots — two large (same as P2B8) and eight small — all 0–10V / 0.0–1.0. Free assignment from the patch to any circuit parameter. Up to 16 controllers chain to a master.
Behaviors
A bare P1.1 reference can be used directly as a CV, but wrapping it in a pot circuit unlocks features: notch at 0.5 (artificial detent), overlay multiple virtual pots on the same physical knob (with select), bipolar range with split halves, and 16 LED position display on the master matrix. The P10's physical travel stays constant; virtual values follow via selectat + persisted state.
Declare N pot circuits all reading P1.1 but each with a different select input. Only the currently-selected virtual pot is active; others retain their last value. Classic DROID trick to get attack/decay/sustain/release on one P10 knob via a 4-way buttongroup switch. Physical rotation edits whichever virtual pot is lit.
Wherever P1.n is used, the patch can attenuate and offset it: attack = P1.3 * 0.3 gives 0–0.3 instead of 0–1. Bipolar mapping: input = P1.1 * 2 - 1 gives −1…+1. Removes the need for external attenuverters.
The saved state in DROIDSTA.BIN records the last virtual value for each select slot, NOT the physical pot position. On power-up, virtual values are restored; the physical pot is only read when you touch it (after take-over behavior configured in the pot circuit). This prevents jumps when switching virtual menus.
In the patch, [p10] must appear in the same order as the physical chain, starting with the controller closest to the master (or X7). Swapping order garbles incoming data — Forge visually mirrors physical chain order and offers a 'master on right' option.
At 5HP the P10 fits more knobs per HP than the P2B8 or P4B2. Trade-off: small pots are harder for fast performance edits but ideal for set-and-forget parameters (quantizer scales, algoquencer density, mixer levels) while the two large pots stay at hand for live-performance controls.
Patch Ideas · 6
▸ Show diagram Hide diagram
▸ Show diagram Hide diagram
▸ Show diagram Hide diagram
▸ Show diagram Hide diagram
▸ Show diagram Hide diagram
▸ Show diagram Hide diagram
I/O
OUT · 3
- P1.1 (large) 0.0–1.0 (= 0–10V when routed to O register)First large pot. On first P10 in chain addressed as P1.1 in patch; on second controller in chain, P2.1; etc.
- P1.2 (large) 0.0–1.0Second large pot.
- P1.3–P1.10 (small) 0.0–1.0Eight small pots, same 0.0–1.0 range, just smaller physical knob. Harder to fine-tune but space-efficient.
Controls
| Panel | Pots 1–10 (P1.1–P1.10) | Two large top pots + eight small pots. All identical behavior. Output 0.0 at fully CCW, 1.0 at fully CW. 0.0–1.0 number range · = 0–10V if routed to an O register · use A×B+C in patch to rescale |
| Rear | LAST / PARK jumper | Three-pin jumper terminating the controller chain. Must be LAST if this P10 is the last controller, PARK or removed otherwise. wrong setting: LEDs light on boot but no pot data reaches master |
| Rear | LINK IN / LINK OUT | Two 6-pin shrouded headers for chaining. LINK IN to previous controller (or master/X7), LINK OUT to next controller. do not connect to the unshrouded Debug header · powered by master, no separate power |
DROID X7 4HP
DROID expander. USB-C + TRS MIDI in/out with polyphonic mapping, four extra gate outs at modular levels, USB access to the master's SD card, sub-second sysex patch upload from the Forge.
Behaviors
The X7 connects to the master's 6-pin controller header and MUST be the first module in the controller chain. Any P2B8, P10, B32, M4 etc. chain off the X7's OUT connector. Only one X7 per master. The X7 is not declared in the patch — it's auto-detected — and does not consume a controller number, so P1.1 still refers to the first non-X7 controller. The X7 also works with the MASTER18 (adding its four gates and a second USB/MIDI bus).
In the left position the master exposes its SD card as a mass-storage device to the host PC. While in this mode the patch is NOT running — outputs freeze. Return switch to middle to re-mount the patch and resume. Useful for grabbing ERRORS.TXT, STATES1.TXT or writing droid.ini directly.
With the switch right the X7 is a class-compliant USB MIDI device. Forge's Activate! button uploads the patch via sysex in under a second, with no SD card eject. The only interactive DROID development workflow; without an X7 every iteration requires SD card swapping.
midiin assigns incoming note events across as many voice slots as outputs declared. Supports note on/off, CC, pitch bend, aftertouch, clock, running state, pedals. USB and TRS streams are independent — two simultaneous input streams.
midiout converts CV pitches and gates to MIDI. Built-in pitch-stabilization detection eliminates micro-variations from Eurorack sequencers/quantizers, so sequenced melodies translate cleanly to MIDI notes without jitter retriggers.
Frees master O1–O8 from gate-duty. Outputs 0V/5V. Use for drum triggers, clock distribution, envelope gates. Addressed just like G8 expander jacks but always available as long as the X7 is connected, regardless of G8 presence.
midithrough forwards all events from one MIDI stream (TRS or USB) to the other — e.g. let USB-MIDI pass straight to TRS out. It does no filtering or on-the-fly processing, but any midiin and midiout circuits still work in parallel, so you can splice additional events into the forwarded stream.
The X7 is a USB device, not a host. USB-only MIDI keyboards (no DIN, no TRS) cannot be connected to the X7 via USB. Use the TRS MIDI IN with the supplied DIN adapter instead. The USB port is for connection to PC/Mac/tablet/phone only.
Patch Ideas · 6
▸ Show diagram Hide diagram
▸ Show diagram Hide diagram
▸ Show diagram Hide diagram
▸ Show diagram Hide diagram
▸ Show diagram Hide diagram
▸ Show diagram Hide diagram
I/O
IN · 1
- MIDI IN (TRS) MIDI TRS A/B autodetect3.5mm TRS MIDI input with autosensing for MIDI TRS type A and B. Accessed in patch via midiin circuit.
OUT · 2
- MIDI OUT (TRS) MIDI TRS (A by default)3.5mm TRS MIDI output. Switch must be middle or right for DIN adapter use. Accessed via midiout circuit.
- G9 / G10 / G11 / G12 0V / 5V GATEFour dedicated gate/trigger outputs at modular level. Always addressed in the patch as G9, G10, G11, G12 (G1–G8 are reserved for the first G8 expander, whether present or not). Output only — unlike a G8 these jacks cannot be used as inputs.
Controls
| Global | Mode switch (top) | Three-position switch at the top of the panel selecting the function of the USB-C port. left: USB-stick mode (master exposes SD card, patch stops) · middle: USB off (use for loading patches / DIN adapter output) · right: USB-MIDI active |
| Rear | TRS type A/B switch (rear) | Small switch on the back of the module selecting MIDI TRS type A or B for the TRS output only (the input auto-senses). set to position B when using the shipped TRS↔DIN adapters |
| Panel | USB-C port | Class-compliant USB. Appears as mass-storage or MIDI device depending on switch. Not a USB host. requires Rev 1.5.1 hardware and firmware orange-912+ for USB-C↔USB-C · earlier revs need the supplied USB-A↔USB-C cable |
| Panel | LED indicators | Eight multicolor LEDs (R49–R56) overridable in a patch. Factory function: SD card state, USB-MIDI state, TRS MIDI in, TRS MIDI out, and the four gate outputs G9–G12. top-left: SD card · top-right: USB-MIDI · second-row-left: TRS MIDI in · second-row-right: TRS MIDI out · bottom 2×2 field: G9 G10 / G11 G12 (green=note on, red=note off, blue=other MIDI event) |