User Guide
Looping soundscapes placed in 3D space around you — for focus, calm, and sleep. On Mac and iPhone, with an editor to make your own, and one file you can share.
A weave is a set of looping sounds — rain, a drone, distant birds — each pinned to a point in the space around your head and rendered binaurally. Over headphones it feels less like a stereo file and more like a room you're sitting in.
Every sound is a strand: one loop with its own level, its own place in 3D, and its own character. Play a weave and the strands run together, phase-locked, seamlessly, indefinitely.
Willow is a player on Mac (in the menu bar) and iPhone (fullscreen), plus Loom, the macOS editor that makes weaves — all sharing one engine. This guide covers all three.
The field is Willow's signature view: a top-down map of the space around you. You're the ember dot at the centre. Angle is direction — straight up is in front of you, right is to your right. Distance from the centre is how far away the sound is.
This is about headphones, not about a device being labelled "spatial audio" — a Studio Display or a HomePod supports Apple's spatial audio and still can't deliver Willow's, because the sound has to arrive one channel per ear.
"Forward" is wherever you're facing when you switch it on — often looking down at your phone. You don't have to get that right: hold your head steady for about five seconds, wherever feels natural, and Willow quietly re-centres the field to face you. Look around all you like in between; it only re-centres when you've settled.
Willow lives in the menu bar. Click it and the panel drops down: the weave's artwork on top — tap it to flip to the live field — transport in the middle, everything else a click away.
Open the mixer to set each strand's level, or mute it. Strands the author put in a group collapse into a single row — one fader rides the whole group, so you can pull all the birds down without touching each one.
Some weaves arrive with a strand or group already off — a melody, a distant bell — left there for you to bring in when you want it. Unmute it and it stays that way.
Your mix is remembered per weave, and stored beside your weaves — never inside the shared file, so the original is untouched. Reset to defaults puts it back the way the author made it.
The slider runs to 200%. Up to 100% it's ordinary volume; past 100% it's a real boost above unity, and the bar warms from aurora through ember toward red as you push it. Back it off if it's showing red.
Open the Collection window to see every weave as a card. Single-click one to play or pause it. Filter by mood and tags. To add a weave, drag a .weave or .weavepack file onto the window.
Star a weave — the star on its card, or the right-click menu — and it moves to a Favourites row at the top. Your favourites live on this device, kept beside your weaves like your saved mixes.
Media keys and Now Playing work too — play/pause from the keyboard or Control Centre.
Willow on iPhone is the same player, fullscreen, and it keeps going with the screen locked or the app in the background — it's built to play you to sleep. Everything above about the field, spatial audio and head tracking is the same; the phone just puts it within thumb reach.
A tab bar along the bottom: Play (the weave, its field, and the transport), Strands (the mixer — one fader per strand or group), Weaves (your collection), and Unlock (only until you've bought it).
Spatial and Tracking sit either side of the play button, wrapped around it — how you're listening and whether you're listening, together. They light up when on, and go dashed with a reason when they can't (no headphones, Spatial off). Tapping them gives a small tap back, so a quiet target on a dark screen feels like a real switch.
The slider catches gently at 100% — unity, the level weaves are made and balanced at — so it's easy to land there without looking.
Press and hold the play button and a row of times appears above it — 15, 30, 45, 60 minutes, and Off. Pick one and the music starts if it wasn't already; when the time's up it fades down over a quarter-minute and pauses. A ring around the play button counts it down, with a bright mote sweeping the arc so you can see it's still running from across the room. Pausing cancels it.
Not offered on a preview-limited weave — the preview is shorter than the shortest timer.
On the Weaves tab, swipe right on a weave to favourite it (favourites gather in a section on top), or swipe left to delete it. The filter glyph opens the same mood and tag filters as the Mac.
To add one, AirDrop a .weavepack to your phone, or open one from Files or a download — Willow offers itself as the place to open it.
Loom is the editor. Three panes: your strands on the left, the field in the middle, and precise controls on the right.
Loom opens on a welcome screen: New Weave for a blank field, Open Weave for one you've saved, or a link to open Under the Willow — the example that ships with Loom, worth a look to see how a finished weave is put together. That link is also how to get the original back if you ever overwrite it in your collection.
Drag audio files onto the strand list, or use the add-strand button at the top of it. Anything Willow can read gets converted to mono — a strand is a point in space, so it can't be stereo. Your original files are never moved or changed.
No sound to hand? File ▸ Add Test Sound makes one for you — see below.
Drag an orb on the field to set its direction and distance. Right-drag it to raise or lower it (height stays gentle — steep angles lose their sense of place). Hold ⌥ while dragging to snap to neat values, or hold ⇧ to keep one thing fixed — push straight toward or away from the centre and the direction holds while only the distance changes; slide around the centre and the distance holds while only the direction changes. Double-click an orb to mute it. Every move can be undone with ⌘Z.
Set levels in the strand list. Mute and solo are just for listening while you work — they're never saved. Double-click a name to rename it. Right-click a strand to Duplicate it, or choose Normalize on a quiet one to bring it up to a healthy level.
Mute by Default (in the inspector) is the one that ships. Turn it on and that strand — or a whole group — starts silent for listeners, so you can include a layer, a melody or a distant bell, that they bring in when they feel like it. It doesn't affect what you hear here, and their choice is remembered separately from your weave. Set it on a group and it covers every member; a strand inside a group follows the group.
Make a group to keep related strands together — they'll appear as one fader in the player. Drag rows to reorder them, drop a strand onto a group to add it, or drag it out to take it back out.
Save with ⌘S. Export Weavepack wraps the whole thing — audio, artwork and all — into a single .weavepack file anyone can open. Install to Collection drops it straight into your own player.
Installing the same weave again updates the copy in your collection rather than piling up duplicates — Willow recognizes it by the ID at the foot of the Weave tab, whatever you've renamed the file to. It asks first. If you meant to make a variant and keep the original, press ↻ beside that ID to make it a separate weave.
A shared .weavepack carries its cover art with it: in Finder on the Mac, and in Files on iPhone, it shows the weave's own artwork rather than a plain file icon.
File ▸ Add Test Sound drops in a made-up sound with known behaviour, so you can hear where a strand actually sits. They don't all place equally — and that's the point. If a strand feels vague, swapping in clicks tells you whether the position is wrong or the sound simply has nothing to place with.
Beyond level and position, a few switches change what a strand is. These are the difference between a flat loop and a place that feels alive.