OverviewManualRelease notesPrivacy
MANUAL · v0.1

Everything DUNA does, and how to drive it.

DUNA draws automation curves and sends them as MIDI, so any parameter of any plug‑in in any host — and any hardware synth — can be moved in time with your music. This page documents the whole instrument: lanes, the curve editor, recording in Logic's four modes, the three output resolutions, host setup for AUM and Loopy Pro, the standalone routing view, and the clock.

What DUNA is

DUNA is a native automation instrument that ships as an AUv3 plug‑in and a standalone app, for iOS, iPadOS and macOS (Mac Catalyst). One purchase covers both. The engine is header‑only C++17, the AU bridge is Objective‑C++, the interface is SwiftUI.

It makes no sound. What it does is move things: you draw a shape, point it at a knob, and DUNA plays that movement forever, locked to the beat. It is the only app in the Temperamento family that is silent on purpose.

Why it sends MIDI rather than reaching into the plug‑in. An AUv3 cannot touch another AUv3's parameters — every plug‑in runs sealed in its own process, and there is no API across that wall. So the host has to mediate, and MIDI is the one language every host and every plug‑in already speaks. That indirection is not a limitation to work around; it is exactly why DUNA works with plug‑ins you already own, and with the hardware on your desk, without either end being modified.

AUv3 + standalone

The same rack either way — in a MIDI slot in your host, or as its own app with a virtual MIDI port.

16 lanes

Each with its own shape, length, depth and destination. All independent, all locked to the same beat.

No timeline needed

Lanes loop from the beat position, so they work in hosts that have no arrangement at all — which is most of them on iOS.

One-tap mute

The speaker icon in the header silences every lane, the NOTES loop and the arp at once, and every ON chip shows OFF while it's engaged — the rack looks as silent as it is. Nothing underneath is actually switched off, so tapping it again brings everything back exactly as it was.

If you are coming from Logic

This is the single thing most likely to confuse you, and it is structural rather than a missing feature. It is worth two minutes now.

In Logic, the recorder is the host. Logic owns every plug‑in it loads, so it can see any knob you touch anywhere. Arm a track, move a control, and Logic captures it.

DUNA is a plug‑in. It cannot see another plug‑in's controls — that is the same sandbox wall described above, seen from the other side. No AUv3 on iOS can watch another one's knobs.

So DUNA's fader is the knob. Do not reach for the synth's control. Move DUNA's record fader instead: it drives the parameter, and that movement is what gets recorded. It is precisely the same as dragging in Logic's automation lane rather than on the plug‑in's own panel. Everything downstream is identical — the only thing that changes is where your finger lands.

A hardware knob closes most of the remaining distance. Bind one with LEARN CC and you are turning a real control, DUNA records it, and the synth follows — which is as close to the Logic feel as a plug‑in can get.

Your first lane

01

Load your instrument

Any AUv3 synth, drum machine or sampler. Play it and check you can hear it.

02

Load DUNA beside it

In a MIDI slot, not an audio channel — DUNA makes no sound of its own.

03

Route DUNA's output

One connection to your instrument carries every lane. Some hosts, AUM among them, also need a second connection to their own control-mapping bus before MIDI Learn can see it — see the AUM walkthrough below for exactly which.

04

Start MIDI learn

In your host, on the parameter you want to move.

05

Press MIDI LEARN

The lane sweeps its destination across the full range — exactly what a learn function is waiting for. It binds on the spot.

06

Stop, then switch it ON

Press MIDI LEARN again, flip the lane on, and the parameter is now following the shape.

The 1 2 3 strip under the mode bar says the same thing in nine words, and disappears once you dismiss it.

Nothing moving? A lane on 16 BAR takes 32 seconds at 120 BPM to complete one pass, which looks like nothing is happening. Set it to 1 BAR while you are learning.

One lane, one knob

A lane is somebody turning one knob for you, forever. You tell it three things: what shape to move in, how long a pass takes, and which knob. Everything else is refinement.

ON / OFFArms the lane. Off sends nothing at all — not a zero, not a held value, nothing.
NameTap it to rename. CUTOFF is worth more than LANE 3 once there are eight of them.
CURVE / LFOWhich generator runs. Tapping CURVE opens the editor; LFO uses the shape chip beside it.
ShapeSine, triangle, ramp, saw, square, sample‑and‑hold. The sparkline shows the real waveform, drawn by the same evaluator that plays it.
DivisionHow long one full pass takes: 1/32, 1/16, 1/8, 1/4, 1/2, or 1 to 16 bars.
DestinationTap → CC102 to set the controller number, MIDI channel and resolution. The number beside it is the value going out right now.
MIDI LEARNSweeps this lane's destination so a learn function can catch it. Press again to stop.
DEPTHShrinks the shape without redrawing it. The movement stays, the range narrows.
TRIMSlides the whole shape up or down. Depth is how far it turns; trim is where it starts.
ARMArms the lane for recording. Only visible while REC is on.
Grip (≡)Drag the handle at the left of a row to reorder it — a lane, ARP, or the XY pad all move the same way. Dragging anywhere else still scrolls, which is why reordering lives on a handle. A lane carries its destination, curve and name with it; ARP and the pad simply take their spot in the stack, since neither has a destination of its own.
▾ / ▸Folds a lane down to just its header, hiding the shape and depth/trim rows — the same disclosure ARP and the XY pad already had. Useful for shrinking a lane you are not working on so there is less to scroll past. Persisted, so it stays folded.
🗑Deletes the lane — tap once to arm it, tap the same icon again to confirm. Not shown if this is the only lane left, since DUNA always keeps at least one.

Want to wiggle a knob instead of picking a shape? An LFO lane only offers preset waveforms, but you can record your own move: press REC, tap ARM on the lane, and move DUNA's record fader (or a hardware knob bound with LEARN CC). The lane switches from LFO to a drawn curve and keeps what you played. DUNA cannot watch the synth's own knob, so the fader stands in for it. See Recording.

Give lanes different lengths. A three‑bar lane against a four‑bar one takes twelve bars to line up again, and never repeats the same way in between. It costs nothing, because every lane reads the beat independently — and it is the cheapest way to make a loop stop sounding like a loop.

ADD LANE at the foot of the rack asks what the new lane should be — a drawn curve, an LFO, or either axis of the XY pad — with a live preview of each shape and what it is for. Up to sixteen lanes. Sixteen is the ceiling because MIDI has sixteen channels and HI‑RES lanes need one each; past that they would fight.

Draw it, bend it

Tap a lane's CURVE chip to open it. The white dot riding the curve is the playhead — it shows exactly what the lane is sending as you edit.

Tap empty spaceAdds a breakpoint there.
Drag a pointMoves it. It cannot cross its neighbours, so the shape can never fold back on itself.
Drag a ringThe hollow ring at a segment's midpoint bends that segment — convex, concave, or straight again.
Hold a pointDeletes it. The first and last points stay, since they define where the shape starts and ends.
Two fingersFine adjust: every drag slows to about a fifth of its travel, with a FINE badge to say so.
EDITThe default tool — add, drag, bend, delete.
DRAWFreehand pencil. Drawing over the same place again redraws it rather than piling points up. When you lift, the stroke is tidied: drawing samples densely so nothing is missed, then the points that carry no shape are dropped. A bend is never dropped, because interpolation cannot reproduce one.
ERASERubs out every point you drag over, not just the nearest one. The first and last points always survive, since they define where the cycle starts and ends.
LINERules a straight ramp across a span in one drag.
SNAPSixteenths horizontally, eighths vertically. Off when you want it loose.
RAMP / PEAK / DIP / FLATStarting shapes. Grab one, then bend it into what you want. Replaces the whole curve, so it needs a second tap on the same chip to confirm — a first tap only arms it.

The readout under the plot gives the selected point's position, value and bend as numbers, so a shape can be matched by eye or by figure.

Fine adjust is genuine multi‑touch, so it works on iPhone and iPad. On a Mac a trackpad arrives as a mouse, so use SNAP for precision there instead.

Play it in, fix it in the piano roll

NOTES is a loop of MIDI notes, from one bar to sixty‑four, played from the same beat as every lane. Like the lanes it has no position of its own: it is locked to the host's beat, plays when the host plays, holds still when it stops, and starts again from bar 1 when it rolls. It sends on a channel of its own.

Press REC and play. Notes land where you played them as the loop goes round, from a keyboard your host routes into DUNA, from a hardware controller in the standalone app, or from the two-octave keyboard in the NOTES panel itself. Held notes grow on screen while you hold them.

OVERDUB / REPLACEAdd to what is there, or clear the loop the moment your first note of the take lands.
QRecord quantise. Moves each note's start onto the grid as it lands; the length you played is kept.
Length1, 2, 4, 8, 16, 32 or 64 bars, and up to 2,048 notes. Shortening keeps the notes past the end — they go quiet, and come back when you lengthen again.
CHThe MIDI channel the loop and DUNA's own keyboard send on.
KeysReal multi-touch, so chords work. Slide for a run; strike lower on a key to play it louder.

The piano roll. Tap the loop in the NOTES panel, or EDIT, to open it. It opens in SELECT, so a tap never drops a note by accident. On iPhone it fills the screen.

▶ / ■Arms and mutes the loop. It plays with your host: when the host's transport is stopped the loop is silent whatever this says, and it comes in from bar 1 when the host rolls. In the standalone app, or a host that offers no transport, DUNA keeps its own clock, so this starts and stops the loop from bar 1. Stopping also ends a take.
DRAWTap to add a note and drag to size it. Tap an existing note to delete it.
SELECTTap to pick, drag to move (time and pitch together), drag a note's right end to resize, drag across empty space to box several.
ERASERubs out every note you drag across.
SNAPThe grid that notes, moves and resizes land on: 1/4 to 1/32, triplets, or off.
VelocityPaint it in the strip under the roll. One stroke across a phrase is a crescendo.
ActionsQUANT, −OCT / −1 / +1 / +OCT, DUP, LEGATO, ×2 (double the loop and repeat it), ALL, DELETE, CLEAR. Each acts on the selection, or on every note when nothing is selected — no need to select all first. QUANT's label says which (QUANT ALL or QUANT SEL), and the footer reports how many notes it moved.
Moving aroundTwo fingers scroll and a pinch zooms; on a Mac, trackpad and wheel scroll. Drag the keyboard or the ruler, or use the − / + zoom buttons. A long loop opens on its first eight bars, and while you record the view follows the playhead.
KeysSpace plays and stops, B / V / E tools, Delete, arrows transpose (Shift for octaves), Q quantise, R record, ⌘Z and ⇧⌘Z, ⌘D duplicate, ⌘A select all.

Every gesture is one undo step, however long you dragged for. Notes play sample-accurately inside a host, and the engine tracks what it has started on its own, so editing or deleting a note while it rings never leaves it hanging.

An arp for synths that have none

DUNA sits in the MIDI chain, which makes an arpeggiator a natural thing for it to own: notes arrive, it holds them, and re-emits them on the beat. Open ARP at the foot of the rack.

With the arp off, notes pass straight through untouched — a MIDI processor that swallowed notes while idle would break the chain it sits in. It only takes them over when it is on.

PatternsUP, DOWN, UP‑DN, RND, DN‑UP, PLAYED, CHORD, CONV. PLAYED follows the order you pressed the keys rather than pitch; CONV works outside in, lowest then highest then second lowest.
Rate1/4 down to 1/64, including 1/8 and 1/16 triplets.
OctavesOne to four, walked up, down or alternating.
HOLDKeeps it running after you let go of the keys.
GATEHow much of its step each note holds, from staccato to legato.
SWINGPushes the off-steps late.
RATCHETUp to four retriggers inside every step.
ACCENTEvery second, third or fourth step at full velocity.
CHWhich MIDI channel the arp sends on, so it can be aimed at a different synth from your lanes.

It is clocked by the same host beat everything else in DUNA uses, so it locks to your host and to your lanes with nothing to set up. The engine is the one from MESA, vendored unchanged.

One pad, two numbers, any lane can use them

The pad itself does nothing except sit at an X (left‑right) and a Y (up‑down) position, each 0 to 1. On its own it is silent — it does not send MIDI, does not touch anything. To use it, set a lane's source to PAD X or PAD Y: that lane's value becomes whatever the pad's position is right now, and it sends that out to its own destination exactly like any other lane.

So the pad is really a shared LFO with two outputs instead of one. Draw one path and two lanes can ride it at once — one on X, one on Y — each with its own destination, depth and trim. One gesture, two knobs moving.

There are two entirely different ways the position gets set:

PLAYYour finger IS the position, live. Touch the pad and X/Y jump to wherever you touch; any lane watching it follows instantly. Let go and it goes back to whatever it was doing before.
DRAWYou are not playing it — you are recording a route for it to walk on its own, forever, in a loop. Drag across the grid to lay a path of up to 64 cells, painted once per cell you cross. Once drawn, the pad automatically walks that path in time with the beat, at the length set by the division chip.
ERASERemoves cells you drag over from a drawn path.
GLIDE / STEPGLIDE slides smoothly between the cells on the path. STEP jumps discretely from one to the next, which is the rhythmic, Kaoss‑like version.
FWD / REV / PING / RNDWhich way the walk moves through the path — forward (the default), backward, out to the end and back within one cycle, or a shuffled hop between cells. The same idea as the arpeggiator's UP/DOWN/RANDOM patterns, applied to the pad instead of notes.
DivisionHow long one full walk of the path takes. A pad lane's own division chip is greyed, because the pad owns the timing.
CLREmpties the whole path. Needs a second tap to confirm — a first tap only arms it.
LEARN X / LEARN YBinds a hardware controller — two knobs, a joystick, an XY touch strip — to drive the pad live, the same way LEARN CC drives the record fader. Tap, move the control, it is bound. While it keeps sending, the pad follows it; when it goes quiet, the pad hands itself back to the drawn path.

The tools sit outside the surface on purpose. Mid‑performance, a stray touch on the pad must never change what the next drag does.

One gotcha: if a lane's source is PAD X and you record into it, DUNA switches that lane over to a drawn curve to capture your move. What gets captured is the pad itself — a PAD X or PAD Y lane records the pad's own live position (your finger in PLAY, or a hardware axis bound with LEARN X/Y), not the record fader. Recording always means drawing a curve, so a lane cannot record and keep following the pad's own drawn path at the same time.

The drawn path is a closed loop — the last cell leads back to the first — and it is walked from the host beat like every other lane, so it needs no start and cannot drift.

Play the move in

Press REC, tap ARM on a lane, and play the move on DUNA's record fader — or on a hardware knob bound with LEARN CC. The one exception is a PAD X or PAD Y lane: it records the pad itself, driven by touch or by a hardware axis bound with LEARN X/Y, not the fader. It writes only while you are actually holding the control, so the rest of the curve is never touched. Press REC again when you are done.

RECArms recording. There is no mode to choose: it writes where you touch, and nowhere else.
ARMWhich lane receives. Only shown while REC is on.
LEARN CCBinds a hardware knob to the record fader. Tap it, move the knob, done.

Why one button and not five. Desktop DAWs offer Touch, Latch, Write and Trim. Three of those already exist elsewhere in DUNA and do the job better: every lane has a TRIM slider that offsets its curve without destroying it, the pencil overwrites a region in the editor where you can see what you are changing, and Latch is only Touch with a longer hold — on a loop that comes round in seconds. What is left is the one behaviour worth a control.

Recording is drawing with the playhead holding the pen. It writes through exactly the same mechanism the DRAW tool uses, so a recorded take is an ordinary curve — open the editor afterwards and tidy it by hand, bend a segment, delete a wobble. There is no separate "recorded" state to convert.

Because a knob sends no "release", a gap of about a quarter of a second in its stream ends the gesture — which is what lets TOUCH let go when you do.

MIDI LEARN and recording are two different bindings that have nothing to do with each other. MIDI LEARN decides where the lane's value goes; what shapes that value is the control the lane actually records from — the record fader for most lanes, the pad itself for PAD X/PAD Y. A lane that is ON is already sending to its destination whether or not you are recording — there is no silent rehearsal. The moment you move that control, the destination hears it live and it is written into the curve at the same time. DUNA cannot see what happens at the destination to record it back — the same wall that makes it a plug‑in rather than a host — so recording only ever captures the control you are physically touching.

128 steps, or 16,384

A slow filter sweep on ordinary MIDI climbs in audible stairs, because a control change carries only 128 values. Tap the resolution chip until it reads HI‑RES and the lane switches to pitch bend, which carries 16,384 — and needs nothing whatsoever from the receiving app.

CC7‑bit control change, 128 steps. Universal, and enough for most things.
CC14A pair of controllers, n and n+32, giving 16,384 steps. Only some targets read the second half; hardware often does.
HI‑RESPitch bend, natively 16,384 steps. One per MIDI channel, so up to sixteen glassy destinations at once. Give each its own channel.
DefaultsLanes start on CC 102–119, then 20–31 — ranges the MIDI spec leaves undefined, so DUNA can never collide with a synth's factory map.

Use HI‑RES for filter cutoff, volume and pitch — anything where a step is audible. Plain CC is right for everything else and uses a fraction of the bandwidth.

In AUM

  1. Load your instrument. Add a channel and load your synth. Check you can hear it.
  2. Add DUNA to a MIDI strip. Tap + on AUM's MIDI section. DUNA appears under MIDI processors, not effects.
  3. Route DUNA's output — to BOTH. Tap the routing icon on DUNA's node and connect its output to your instrument AND to AUM's built‑in MIDI Control. Both, not one: the instrument is what a lane actually moves, and MIDI Control is what lets AUM's own MIDI Learn see the sweep in the next step at all. Skip MIDI Control and the learn step catches nothing.
  4. Pick what to automate. Open AUM's MIDI Controls and start LEARN on the parameter — or just move that parameter and let Control Finder offer to map it.
  5. Press MIDI LEARN on the lane. AUM catches the sweep and the mapping is made.
  6. Stop wiggling, switch the lane ON. Shape it with CURVE or the LFO chips.

AUM saves its MIDI mappings into the session, so this is a one‑time setup rather than something you redo each time you open the set.

In Loopy Pro

  1. Load both. Add your instrument, then add DUNA — Loopy hosts MIDI AUv3 plug‑ins alongside audio ones.
  2. Open the AU's MIDI learn. Tap the instrument's icon in the mixer. Choose Adjust Effect Parameter, then pick the parameter.
  3. Press MIDI LEARN. With Loopy waiting for a MIDI event, the sweep binds it.
  4. Or bind by hand. Control Settings from the main menu, then Add a New Binding, and enter the lane's CC number directly.

Loopy Pro exposes every parameter an AU publishes, so a lane can reach anything in the session. Its sliders, buttons and XY pads can drive those parameters too — DUNA is the one that moves them over time, on the beat, without a finger.

apeMatrix, Audiobus and Cubasis follow the same principle: load DUNA, start the host's learn, press MIDI LEARN. Only the menu names change.

Recording notes in a host

Automation needs one connection — DUNA into the instrument. Recording into NOTES needs a second, and it is the one that is easy to miss: your keyboard has to go into DUNA, not around it.

  1. DUNA into your instrument. In AUM's MIDI matrix, connect DUNA's output to the instrument. Unlike a lane's CC, a note needs no MIDI Learn step, so this one connection is enough — it carries the NOTES loop and DUNA's own keys straight through. (A lane still needs the second connection to MIDI Control, covered above, before its CC can be learned.)
  2. Your keyboard into DUNA. In the same matrix, connect your keyboard, or the app you play from, to DUNA's input instead of straight to the instrument. DUNA passes what you play on, so you still hear it, and writes it into the loop while REC is on.
  3. Match the channel. NOTES sends on the channel on its CH chip. Most instruments listen on every channel; if yours listens on one, set CH to match.
  4. Press REC and play. What you played comes back round on the next pass.
Other hostsLoopy Pro, apeMatrix, Audiobus and Cubasis need the same two connections — keyboard into DUNA, DUNA into the instrument — wherever that host sets up MIDI routing for a plug‑in. These steps are written in general terms until someone confirms the exact menus; if you know them, tell us.
With the arp onWhat you play is arpeggiated live, but the loop records the notes you actually played, not the arp's run. The loop itself plays straight to the instrument.
StandaloneNo routing needed: DUNA records from every MIDI source switched on in CONNECT, and plays the loop out through its DUNA MIDI port.

Not just apps

Anything on a MIDI interface is a destination. Check the synth's manual for which controller number does what, set the lane's CC to match in the destination sheet, and it moves — no learn step, because the mapping is already in the instrument.

Hardware is also where traffic starts to matter. A DIN MIDI cable carries roughly 350 messages a second. Sixteen HI‑RES lanes produce about 3,000, which is fine over virtual MIDI and far more than a physical port can pass. Watch the readout in the header.

A hardware controller in the other direction is the best way to record: bind a knob with LEARN CC and you are playing a real control while DUNA writes it down.

CONNECT

The standalone app publishes a virtual MIDI port called DUNA, and can also send straight into other apps' MIDI destinations. The CONNECT button shows both, with an activity dot on each so you can see traffic rather than infer it.

Sends toThe virtual DUNA port (on by default, so apps that connect to it themselves keep working), plus every destination on the device. Tick one and DUNA sends directly to it.
Listens toEvery MIDI source, each with a toggle. These drive LEARN CC and knob recording.
ActivityA dot lights as messages pass. A tick says "should be connected"; the dot says "is".

One thing to watch. If an app is ticked here and connects to the DUNA port itself, it receives everything twice. CoreMIDI does not tell an app who has subscribed to its virtual port, so DUNA cannot detect this — if something behaves oddly, turn the virtual port off or untick the app.

Many standalone instruments connect to every MIDI source automatically, so there is often nothing to route at all — just MIDI-learn a control and press MIDI LEARN.

HOST or INT

The badge in the header says where the beat comes from. HOST means your host is supplying tempo and beat position. STOPPED means the host's transport is stopped, so DUNA is holding still. INT means DUNA is running on its own clock — normal, not a fault, and always the case standalone.

A lane has no position of its own. It works out where it should be from the beat:

phase = fmod(beat / cycleBeats, 1)

Bar 3, beat 2 always gives the same point in the shape. So lanes are automatically in step with each other and with the host, nothing can drift, and nothing needs restarting. There is no play button of its own — your host's is the one.

It follows the host's transport. Stop the host and DUNA holds still: lanes park at the host's position, the arp lets played notes straight through, NOTES goes quiet, and nothing is left ringing. Press play and everything starts again from the host's bars — every lane, the arp and the loop together. MIDI LEARN still sweeps with the transport parked, so you can map a lane without rolling anything. Where a host offers no transport at all, and always in the standalone app, DUNA runs on its own clock. Bars follow the host's time signature, so a 3/4 session gets true three‑beat bars rather than hardcoded fours. On a transport start, every lane restates its value, so a receiver that missed the last change is brought back into agreement.

Sessions and presets

Two different things, and they are easy to confuse.

Session stateRunning as a plug‑in, your lanes travel inside the host's project file. Save the AUM or Logic session and everything comes back with it. There is nothing extra to do.
PresetsNamed banks of lanes, recalled independently of any session. The PRESETS button saves the current rack by name.
SharedPresets live in a container shared between the app and the plug‑in, so one saved in the standalone shows up in the plug‑in and the other way round.
RESETUnder START OVER in the presets sheet. Back to one lane of each kind.

The standalone also remembers its rack between launches on its own, so you pick up where you left off without saving anything.

The number in the header

Outgoing MIDI messages per second. It matters because traffic, not processing, is what actually limits how many lanes make sense — the engine costs a fraction of a percent of one core even with sixteen lanes running full curves.

Under 350/sGrey. Safe anywhere, hardware included.
350–1000/sAmber. More than a DIN cable carries. Fine for apps, too much for gear.
Over 1000/sRed. Heavy. Fine over virtual MIDI, nowhere near passable on a physical port.

DUNA keeps this down on its own in two ways: a value that has not changed is never transmitted, and each lane has a rate ceiling. A full sweep at 7‑bit is exactly 128 messages, not thousands. Slow shapes are nearly free — sixteen lanes on four‑bar cycles produce about 500 a second, against 3,000 for the same lanes at HI‑RES.

Built native

FormatsAUv3 MIDI processor (aumi) · standalone app
PlatformsiOS · iPadOS · macOS via Mac Catalyst. Requires 17.6 / 15.4 or later.
LanesUp to 16, each independent
SourcesDrawn curves up to 64 breakpoints · sine, triangle, ramp, saw, square, sample‑and‑hold · XY pad X and Y
Lane lengths1/32 · 1/16 · 1/8 · 1/4 · 1/2 · 1, 2, 3, 4, 8, 16 bars
Notes loop1, 2, 4, 8, 16, 32 or 64 bars · up to 2,048 notes · its own MIDI channel · sample‑accurate playback
Output7‑bit CC · 14‑bit CC pairs · pitch bend (16,384 steps)
InputMIDI CC for learn and recording, and MIDI notes for the arp and the NOTES recorder — from the host or from CoreMIDI
RecordingOne button — writes while you hold the control, from a finger or a MIDI knob
Arp8 patterns · 1/4 to 1/64 with triplets · 1‑4 octaves · hold, gate, swing, ratchets, accents
ClockHost tempo, beat position and time signature, or its own
EngineHeader‑only C++17, real‑time safe, allocation‑free on the render thread
InterfaceSwiftUI · DUSK, DAYLIGHT, BASALT, GYPSUM and SUMI · three layout densities for short plug‑in windows
PrivacyNo accounts, no analytics, no network requests. See Privacy.

Tips