Select your language

Vascular app icon
Music apps · iOS & Android

Vascular — Tactile Synth


Grow a living network of synth voices on a canvas. The graph is the sound.

Get it on Google Play Coming soonApp Store
What it is

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
Screenshots

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.

The Vascular canvas: amber generator nodes and teal processor nodes joined by glowing connections, with the key bar along the bottom
01The canvas is the instrumentAmber nodes make sound, teal nodes process it, ivory ones are the outlets you actually hear. Every line between them is a connection, and corpuscles travel along it in the direction the signal flows. What you see is exactly what is playing.
The spawn palette, showing regions of generator families and processors
02Rest a finger on the canvas: the paletteTapping empty space seeds a voice at random; holding it opens the palette instead, where 47 generator families and 69 processors are sorted into regions — basic, granular, spectral, sustained, percussion, digital and the rest. Choose one and it arrives under your finger, freshly voiced.
A generator node's sheet, with sliders for level, effects send, pitch, filter and its own synthesis parameters
03Press edit, then a nodeEach voice opens on its own sheet: level, effects send, pitch and filter, then the parameters belonging to that particular synthesis. A die scatters them around the family's defaults, and lfo draws the node a new modulator every time it goes on. A slider a modulator is reaching is marked, so you can see what is moving on its own.
A node switched to drone, its sheet showing no loop length or clock division
04Drone or clockEvery source either holds or strikes, and it arrives set the way its family wants it — a drum or a plucked string clocked, an oscillator or a bowed body droning. A clocked node gets a loop length and its own division of the tempo, from 1/8 to x4, so two nodes at different speeds still land on the same beat. Switch it to drone and both disappear, because a held voice has no steps to describe.
A sampled acoustic instrument's sheet, with keys that transpose its written phrase by a scale degree
05Two fingers: a sampled instrumentTwo fingers on empty canvas seed an acoustic node — one of twelve sampled instruments, from marimba and harp to accordion and cathedral organ — arriving with a melodic loop written for it in the session's key. Its keys move that line by a scale degree rather than bending it, and a short press writes it a new melody without the voice stopping.
The fx sequencer: four lanes of sixteenths, each named for a processor, with bars drawn across them at different lane lengths
06Hold the patterns key: the fx sequencerFour lanes of sixteenths, each carrying any processor in the fleet. Draw bars on a lane and each one lands its processor on a single outlet, chosen at random, for as long as the bar lasts. Give each lane its own length — one to thirty-two steps, as here — and they make polyrhythms against a single clock; set a lane drifting and it runs on a clock that races, lags and stops, so its bars arrive when nobody could say.
A grid of thirty-two pattern slots, several stored, with a morph time
07Press it instead: thirty-two patternsA short press recalls a slot, a long press stores the whole organism into it. Recall never jumps — the instrument morphs from where it is to where it is going over a few seconds, so a performance can move through its patterns like a piece of music. Each slot carries its lanes and every node's settings with it.
The randomizer sheet with three tabs: create, randomize and expand
08Create, randomise, expandThree tabs behind one key. Create draws a whole organism; randomize throws position, wiring or gates across what is already there; expand grows the canvas in the direction it already leans — rhythmic, melodic or abstract, read from what is on it — at simple, medium or complex. Expansion mostly grows network: filling sources that lead nowhere, deepening chains, running one chain into another. One undo step however much it adds.
The master effects chain, open on its reverb stage
09The master chainSix stages in signal order — bit crush, saturation, compression, delay, reverb and output — shared by everything that reaches the speakers, with a per-node send deciding how strongly each outlet enters it. The instrument starts dry: every master mix begins at zero, so what a node carries is the whole of what you hear until you decide otherwise.
The guided paths sheet: abstract, rhythmic, melodic and none, with abstract chosen
10Tap the compass key: guided pathsA bounded vocabulary for what you make by hand. Choose abstract — texture, spectral matter, unstable space and electroacoustic transformation, as here — rhythmic or melodic, and every voice and processor you seed by hand is drawn from that path, with the compass key lit while it is active. None hands back the whole palette. A path only shapes what you draw; it never creates sources of its own.
Global steering: generators and acoustic nodes on a filter fader, processors on dry / wet, each group with its node count
11Hold it instead: global steeringOne control, moved on every node that has it. The sheet groups what is on the canvas by kind, in each kind's own colour and with a count — here three generators and two acoustic voices, each group on a filter, and four processors on dry / wet. A kind that is not on the canvas is simply not listed, and each fader opens at the average of the nodes it moves, so a single drag takes the whole canvas from soaked to nearly dry instead of opening every node's sheet in turn.
Session settings: root note, scale, tempo, mutation rate and pattern morph, with the session list down the left
12Sessions are the musicA session carries its root note and scale — western modes, Japanese pentatonics and more — its tempo, how often the organism mutates on its own, and how long a pattern takes to morph. Every voice you seed, and every melody an acoustic node writes for itself, lands in that key. Sessions are saved, loaded and swapped from the list down the left.
The global setup tab, headed accessibility, with text size from small to extra large
13Global setupThe settings sheet's other tab holds preferences for the instrument rather than for one session, and they stay put whichever session is loaded. Its first heading is accessibility: the text size, small to extra large, and whether the contextual help opens with the instrument.
The takes list, with play, rename, share and delete beside each recording
14Hold the record key: the takesTap it and a take starts; hold it and the takes you have already made open, to play, rename, share or delete. A take is minutes of playing with nothing to undo it, so deleting one asks first, with its name and length in the question.
The guide, listing gestures against what each one does
15A guide written against what the code doesEvery gesture, every key and every sheet, page by page — the fx sequencer among them. The counts of families and processors are asked of the instrument rather than written down, so the guide cannot drift out of date about its own palette.
The contextual help overlay naming a region of the interface over the live canvas
16Hold the help key: the tourHelp drawn over the instrument rather than instead of it. Each step rings one region of the interface and says what it is for, so it is read while looking at the thing it describes — including the step that points at the patterns key and explains the hold that opens the sequencer.
Capabilities

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.

Accessibility

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.

Changelog

What changed, and when

1.6.2Build 20 · 14 September 2026

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.
1.6.1Build 19 · 14 September 2026

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.
1.6Build 18 · 14 September 2026

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.
1.4.6Build 17 · 10 September 2026

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.
1.4.5Build 16 · 10 September 2026

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.
1.4.4Build 15 · 9 September 2026

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.
1.4.3Build 14 · 9 September 2026

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.
1.4.2Build 13 · 9 September 2026

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.
1.4.1Build 12 · 8 September 2026

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.
1.4Build 11 · 8 September 2026

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.
1.3Build 10 · 7 September 2026

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.

Get Vascular

Available now on Google Play, with the App Store release coming soon.

Get it on Google Play Coming soonApp Store

Type size is adjustable throughout, and the interface is designed to stay usable with limited sight.