An instrument you grow by touch
Vascular is a canvas-based electroacoustic instrument for touch devices — phones and tablets, on iOS and Android. You grow a network of sound-generating and sound-processing nodes with your fingers, and that network is at once the signal routing, the picture of the instrument and the surface you perform on. Tap empty space to seed a voice. Hold a node and touch elsewhere to grow a processor out of it. Hold it and touch another node to join the two.
The canvas is one continuous stereo field, read left to right: a node at the left edge is heard hard left, and dragging it glides across the image rather than stepping. The nodes at the end of each chain are the ones that reach the speakers, and they are drawn ivory so you can pick them out from the teal that feeds them. Everything is heard the moment it happens.
- PlatformiOS, iPadOS and Android · phones and tablets
- Palette47 generator families and 69 processors
- Sampled12 acoustic instruments, in the session's key
- Performance32 morphing pattern slots · four-lane fx sequencer
- Also runs asan Audio Unit (AUv3) inside a host
- AccessibilityText size from small to extra large
A look inside
Vascular is played in landscape. Most of the instrument stays out of the way until you ask for it: a key pressed opens one sheet, and the same key held opens another. These are the sheets behind those gestures.
Built for performance
A palette that keeps growing
47 generator families — oscillators, additive, granular, spectral, FM, stochastic, digital buffers, drums and more — plus twelve sampled acoustic instruments that arrive already playing a phrase of their own.
Routing by touch
69 processors — filters, reverbs, delays, distortion, spectral and vocoding stages — are nodes on the same canvas. Hold one and touch another to connect them; tap a branch again to cut it.
The fx sequencer
Four lanes of sixteenths that strike processors onto your outlets. Per-lane lengths make polyrhythms against one clock, and any lane can be set adrift on a clock of its own.
Patterns that morph
Thirty-two snapshots of the whole instrument, recalled with a smooth morph between them — mutes, modulators, steering, rhythms and lanes included. Forty-eight steps of undo behind everything.
Sessions, keys and scales
Each session keeps its own root note, scale and tempo, so every voice you seed is in tune with the rest. Western modes, Japanese pentatonics and more.
Record, share, plug in
Capture takes as you play, then rename, replay and share them from your device. On iOS the same instrument loads as an Audio Unit inside a host, keeping its own sessions, patterns and recordings.
Built to stay legible
Vascular is designed by someone with bilateral coloboma, so limited sight is a starting assumption here rather than a box ticked at the end. Global setup opens on it: the text size runs from small to extra large, and the top step stops where it does on purpose — any further and the sheets can no longer hold their own rows on a phone in landscape, and an accessibility setting that makes the interface unusable at its largest step is not one.
The rest follows from the same premise. A held node states its name at a size you can read at arm's length. The key bar sizes itself to the largest keys the surface will take rather than settling for small ones. Nothing can be placed underneath the keys where its touches would be swallowed, and turning the device over carries every node proportionally into the new field instead of stranding it past an edge.
Colour is never the only thing carrying meaning. Node families are told apart by colour, but an outlet is drawn ivory and ringed, a gated node flashes on its own pattern, signal direction is shown by movement along each connection, a modulated slider is marked, and the pattern slots read as four levels of brightness. Nothing in the interaction runs on a timer either — holding a node is inert for as long as you like, so taking your time costs nothing.
What changed, and when
Patterns remember everything, the fx sequencer included.
- Mutes come back with a pattern, in both directions: a node stored muted recalls muted, and one muted since the store starts sounding again.
- So does every other setting on a node — filter, pitch, effects send, inversions, modulator, steering, clock speed and rhythm. Volume, sliders and position glide over the morph; the rest switch at that node's own moment during it.
- Each pattern slot carries the fx sequencer: processor, bars, length, sync or drift, wet and parameters. A lane that keeps the same processor keeps running, so its tail is not cut and a drifting lane does not restart.
- The master effects stay with the session instead, as the room the whole performance plays in.
The guide and the tour describe what is actually there.
- The fx sequencer has a page of its own in the guide, and a step in the guided tour that rings the patterns key and explains the hold.
- The number of generator families and processors is now read from the instrument rather than written down, so it is right and stays right.
- Described for the first time: the input node and its channel, a clocked node's speed against the tempo, the audio output setting, the gates throw, and a session bringing its lanes back with it.
The fx sequencer, network expansion, and a digital region in the palette.
- The fx sequencer. Hold the patterns key. Four lanes of sixteenths, each carrying any processor; every bar lands its processor on one outlet at random for the length of the bar. Per-lane lengths of one to thirty-two steps make polyrhythms against a single clock, and each lane is either in sync with the tempo or adrift on a clock of its own. Two dice: deal four new processors and keep your bars, or draw new bars, lengths and parameters on every lane. Saved with the session.
- Expand. The randomizer gains a third tab that grows the organism in the direction it already leans — rhythmic, melodic or abstract — at simple, medium or complex. It mostly grows network rather than piling on voices, and it no longer collapses a canvas onto one outlet.
- Outlets are ivory, so the nodes that actually reach the speakers can be found among the teal that feeds them.
- A third throw on the randomizer deals every node a fresh rhythm, or none.
- A digital region in the palette: bitbend, glitchtable, chordtable and fmnoise — four generators built on a buffer read round at a speed.
The phaser phases, the comb combs, and two sliders stop bursting.
- The phaser was silent. It is a string-machine phaser now: a swept all-pass chain mixed equally against the dry so the notches actually cut, with feedback for the peaks between them. Each node starts its sweep elsewhere, so two of them do not breathe together.
- The comb was a flanger. Its loop is held still now — short it rings, long it echoes — with damping in the loop and a little tape drift on top.
- The taps' spacing slider burst. Its read heads slide instead of jumping a block at a time, so moving the slider bends the echoes rather than splicing them.
The bell rings again, and the 303 transposes.
- The bell only ever struck once — it rang, decayed and stayed silent for the life of the node. It is rebuilt on each step now, so it rings on the grid like anything else struck. Held as a drone it still rings once, because that is what a bell does with nobody striking it.
- The 303 is transposed from keys, not a slider. Its pitch is a written line rather than a tuning, so the slider bent the audio and snapped back on release. Two keys move the line by a scale degree instead, and refuse rather than clamp at the edge of its register.
Saving stops lying.
- Saving into a session stops renaming it. Saving into the session you were already in showed that row as "unsaved" rather than by its name.
- Deleting a session no longer moves you into a different one — deleting a row above the loaded one left you in that row's position, which is another session entirely, with the next save writing somewhere it never belonged.
The tempo actually arrives, and the palette grows at both ends.
- The instrument was not running at your tempo. The session pulse was set once at launch, before the audio engine existed, and quietly dropped — so everything clocked was counting a grid nothing else was on. Set a tempo and it now reaches the sound.
- A gated node flashes in time with what you hear, at any tempo, from the first step.
- 2-op holds its pitch. The palette-wide parameter wobble was moving its modulator ratio by nearly three semitones, and in FM the whole upper spectrum slides with it.
- Four new families, among them gendyn — Xenakis's dynamic stochastic synthesis, a waveform redrawn rather than repeated.
The palette, and a lot less crackle.
- Every clocked source has its own division of the tempo — 1/8, 1/4, 1/2, 1, x2, x4. Powers of two, so a node at 1/8 and a node at x4 still land on the same beat.
- A drone stops pretending it has a loop. Switch a source to drone and the loop length and clock divisions go, because there is nothing left for them to describe. They come back with the clock, and the length you had comes back with them.
- The palette is smaller and better sorted. Duplicates were withdrawn, three thin regions became one called sustained, and oscillators is now basic. Anything you saved that used a withdrawn family still plays.
- The guided paths reach the whole palette — seven families and four processors could not be reached at all while a path was active.
One fix.
- Deleting a recording works, and now says so. The file went immediately but the row stayed on screen, which reads exactly like a button that does nothing. The row goes at once now, and because a take is minutes of playing with nothing to undo it, deleting one asks first.
The instrument starts dry, and the drifting clock is gone.
- Every master mix now starts at zero. The reverb and delay were quietly on before you had drawn anything — a room in the sound from the first note. Nothing has been removed, only switched off.
- A clock is on the grid, always. The choice between a clock that kept time and one that wandered beside it is abolished; the way to be irregular is a pattern with holes in it. The remaining choice is drone or clock, and it arrives set the way each family wants it.
New: churn.
- churn, in the spectral region — a processor that does not work in real time and could not. It records what reaches it in short bites, transforms them out of earshot and plays the result back a fraction of a second later: spectral blurs, freezes and inversions, waveset mangles, grain timewarps, sweeping filters, varispeed and pitched delays. Forty-two processes in eight families, one to three drawn per bite. Short bites at high density are a stutter a beat behind you; long bites return something made of your sound rather than your sound.
- The rings family no longer ticks — its own strum control was being heard as a metronome, about 1.6 times a second, for as long as the node existed.
Earlier releases predate this history. Vascular is in active development, and the newest build reaches testers first.
