Mobile port · concept plates

Unified-timeline studio — phone layout

One hero surface at a time, surface tabs along the top, and time controls grouped at the bottom: a fixed transport bar with the resizable timeline ribbon riding above it. Every desktop control stays reachable; almost none stay visible.

CONSTRAINTPhone · single-pane
TABSTop · surfaces
SPINEBottom · time
Time / playhead / transport Selection Annotation
PLATE 01

The spine & the resizable ribbon

Tabs top · time bottom · 3 snaps

Surface tabs sit along the top. At the bottom, the transport bar is fixed — the irreducible spine — and the timeline ribbon expands upward above it through three snaps, trading stage for tracks by degrees. It never hits zero on its own; the transport is always the floor.

9:41●●●
Stage
Time
Nodes
Mixer
Tree
V1
00:12:04
1 2 3
Peek — ribbon collapsed to a sliver; transport still anchors the bottom.
9:41●●●
Stage
Time
Nodes
Mixer
Tree
RASTER
VEC
AUD
AUD
00:12:04
Half — arrange & trim across tracks while the stage stays in view.
1

Tabs own the top

Stage / Time / Nodes / Mixer / Tree. The active surface is home; the rest are one tap away. Moving them up clears the bottom for the controls your thumb actually lives on.

2

Ribbon expands upward

Drag the grabber up for more tracks, down for more stage. A continuous reveal, not a modal toggle — there's always a sliver left.

3

Transport = the fixed floor

Play, playhead time and a zoomed-out project scrub never move and never disappear. It's the irreducible spine; the ribbon is detail layered on top of it.

PLATE 02

Tweak mode — the pull model

Selection → inspector

You arrive with a full project and a vague target, so controls come to what you point at. Tap anything and its properties rise in a sheet above the transport. The header carries jump-to chips that reframe to another surface with the same object still selected.

9:41⌕ ●●●
Stage
Time
Nodes
Mixer
Tree
Ellipse · Vector layer
PropertiesTimelineNodesAutomation
Fill
#9A6BC0
Opacity
Position
x 108
y 54
Z-order
Front ▾
00:12:04
1 2 3
Half tier shown — drag up for every advanced parameter, down to a 3-control peek. Transport stays pinned below.
1

Selection-driven

Tap selects and summons the sheet. Once selected, dragging the object moves it; dragging empty space pans. One chain: tap → inspect → move → long-press.

2

Jump-to chips = parity move

Timeline · Nodes · Automation reframe to that surface with the object still held — replacing the desktop trick of seeing panes side-by-side.

3

Sheet floats over the floor

The inspector rises above the transport, never under it — so even mid-tweak you can scrub and see the playhead. Object actions like send to back live on the .

+

Two ways to find the thing

For "I don't know what I want to tweak": the command palette and an outliner surface (the Tree tab) — a browsable map of the whole project.

PLATE 03

Sketch mode — the push model

New file · intent seeds

An empty project with a clearish intent, so a tool defines the surface and gets out of the way. "New" offers intents — the same non-binding menu as desktop. Picking one sets the hero surface and a minimal toolset; switching intent mid-session just swaps the hero while a real project quietly accretes underneath.

9:41●●●
Start something
Sets your first surface — nothing is locked.
DrawFull canvas · stylus · radial brushes
AnimateStage + keyframe scrub strip
ComposeInstrument + arrangement ribbon
RecordBig button · waveform fills screen
Edit videoClip bin + trim timeline
BlankEmpty unified timeline
Open recent…
1
Intent picker — mirrors the desktop new-file flow; the seed steers nothing once content exists.
1

Intent seeds, state steers

At creation there's nothing else to go on, so intent is the right call. The moment content exists, the original type stops driving anything.

2

Home-on-open ≠ birth type

Re-opening lands on the file's last-focused surface + last selection — not the type it was born as. A music file that grew an animation layer shouldn't open music-shaped.

3

Lossless underneath

Every intent writes to the same document model. Whatever you rough out on the train reconstitutes as a full pane layout back on desktop.

PLATE 04

Music surface — the GarageBand fix

Expression + context, together

GarageBand denies you the when while you play. Here the instrument lives in the thumb zone with a compressed arrangement ribbon pinned above it — loop boundaries, the playhead sweeping toward the wrap, and squashed lanes of what you're playing against. The transport anchors the bottom as everywhere else.

9:41●●●
Stage
Time
Nodes
Mixer
Tree
DRUMS
BASS
KEYS ●
Grand Piano ▾Loop ⟳ 2 bars● REC
LIVE TAKE · KEYS
2.1.03
120bpm
1 2 3
Record-against-context — see the loop wrap and the other tracks while your thumbs are on the keys.
1

The loop boundary is visible

Green markers show where the 2-bar loop wraps; the amber playhead sweeps toward it — the exact when GarageBand's modal switch hides.

2

Playing against the mix

Squashed drum/bass lanes stay on screen so you hear and see what your take lands over. The live KEYS lane fills as you record.

3

Same spine, same floor

Transport with bars-beats + tempo anchors the bottom. Drag the ribbon down for full arrangement; the Mixer is a portrait-native surface one tab away.

PLATE 05

Orientation is a per-surface reflow

Not an app-global mode

No surface forces a rotation — that's the user's wrist, not the app's call. But the same timeline data emphasises a different axis per orientation: landscape spends pixels on time resolution, portrait spends them on track count. Rotation preserves selection, playhead and zoom-center; it only reflows.

9:41●●●
Stage
Time
Nodes
Mixer
Tree
V1
V2
RAS
A1
A2
A3
A4
FX
00:12:04
Portrait — vertical room buys more tracks. Best for arranging, reordering, seeing structure.
Stage
Time
Nodes
Mixer
Tree
V1
A1
A2
00:12:04
Landscape — wide axis buys time resolution. Best for scrubbing, precise trims.

Reflow, don't reset

Same selection, playhead and zoom-center — just re-emphasised. A rotate that throws away where you were is its own GarageBand-tier annoyance.

Per-surface character

Stage follows the project's aspect; instrument prefers landscape for key width; mixer is portrait-native. The ribbon absorbs whatever the hero leaves over.

🔒

Manual lock

People work lying down and propped at angles. The device suggests; the user can pin. Auto-rotate never fights a drawing gesture.

PLATE 06

Omnibutton & the gesture map

Tools vs commands · 7 + 1 meanings

The omnibutton produces tools/objects; the global menu holds commands/destinations — a clean tool-vs-command line. Below, the resolved stage gestures: seven meanings, no collisions, each reinforcing a desktop idiom rather than inventing a phone-only convention.

9:41⌕ ⋯ ●●●
Stage
Time
Nodes
Mixer
Tree
Shape
V1
00:12:04
1 2
Radial fans away from the finger to dodge occlusion. Global commands live in the top .
1

Omnibutton = tools/objects

Brushes, shapes, instruments, nodes — things you place or use. Long-press on empty space can summon this same create menu at the point you pressed.

2

Global menu = commands

Export, render, project settings, and the command palette itself live in the top /. If an item feels like either, it's usually a selection action in disguise → inspector.

Palette is the safety net

Every menu-bar verb has one contextual home plus the palette. That's what lets contextual homes hide rare commands without breaking parity.

tap object
select  + summon inspector
tap empty
deselect
drag selected
move the object / clip
drag empty
pan the view (matches timeline scroll)
two-finger drag
pan — always, everywhere (escape valve)
pinch
zoom — time-zoom on timeline, spatial on stage
long-press object
actions menu for that object
long-press empty
create-here radial (proposed)
double-tap object
enter / edit — go a level deeper
double-tap empty
zoom-to-fit
double-tap-drag empty
marquee select — fast transient path

Two tiers for marquee

The double-tap-drag gesture is the fast, transient path. A sustained marquee mode covers heavy vector multi-select — and with the gesture in hand, it may not even need a dedicated button.

Origin disambiguates

Marquee is strictly empty-space-initiated. Double-tap-drag starting on an object never marquees — same spatial-zones logic as the ruler vs lanes.

Crisp double-tap window

Empty space is where both zoom-to-fit and marquee branch off the same tap-tap, so tighten the detection window there specifically.

PLATE 07

Node editor — focus & patch

Audio synthesis · port-to-port

For synthesis the graph is patch-heavy: several cables of one type running between modules. So ports are identified by name — gate, velocity, pitch — not just type; type only decides what may connect, the name decides which is which. Connections are wire-level, parallel cables between a single pair are normal, and one output can fan out. Focus mode tunes a module's parameters; patch mode runs the cables.

9:41⌕ ⋯ ●●●
Stage
Time
Nodes
Mixer
Tree
◂ gateMIDI→CV.gate
◂ velocityMIDI→CV.vel
ADSRENV · CV
Attack
Decay
120 ms
Sustain
env ▸VCA.in
+ Add node  ·  ⌕ Search
00:12:04
1 2
Focus — one module's parameters; its named ports are travel chips. Input chips name the remote port, so two cables from the same node never collide.
9:41⌕ ⋯ ●●●
Stage
Time
Nodes
Mixer
Tree
PatchMIDI→CV ▸ ADSRCV
pitch
→ Osc 1
velocity
velocity
gate
gate
tap a source port, then a target — both are CV, so the name decides the match
00:12:04
3
Patch — two modules as port lists, each cable a row. The CV pair (gate, velocity) is just two rows; pitch fans off to the oscillator.
1

Ports are named, not just typed

Input chips read the remote endpoint as node.portMIDI→CV.gate, MIDI→CV.vel — so two cables from one node stay distinct even though both are CV. Type gates compatibility; the name carries identity.

2

Focus still travels & renders live

Tap a chip to jump to that endpoint; the minimap keeps you placed. The audio graph evaluates at the playhead, so transport stays — scrub and the envelope previews where you are.

3

Patch mode for cabling

A pair (or small cluster) shown as two port lists; each cable is a row. Parallel cables between the same pair are normal, and an output fans out (pitch → Osc). Tap a source port then a target — compatible ports light up, incompatible dim. This is the modular workflow, not one-node-at-a-time.

!

Honest scope

Phone is tune-a-module and patch-a-few; large graph restructuring stays a desktop job. Reachable for parity via the palette and these two views — without faking a tiny pannable canvas of boxes.

PLATE 08

Keyboard cap & the reclaimed space

Portrait · keys ≤ ⅓

Key width governs playability, and width is set by the screen's short axis — so past about a third of a portrait screen, taller keys add nothing. The resize catches at that cap; pulling further reveals an instrument workspace above the keys instead. By default it's a note view of the current part, pitch-aligned to the keys; toggle it to performance controllers. Landscape has no room for this, so it's a portrait-only affordance.

9:41●●●
Stage
Time
Nodes
Mixer
Tree
DRUMS
BASS
Grand Piano ▾
NotesControllers
● REC
CURRENT PART · KEYS
2.1.03
120bpm
1 2 3
Macro → micro → input: arrangement context up top, note workspace in the middle, capped keys in the thumb zone.
Stage
Time
Nodes
Mixer
Tree
DRUMS
Grand Piano ▾
KeysNotes
● REC
PIANO ROLL · time ▸
2.1.03
120bpm
4
Landscape · Notes — standalone, the editor flips to a conventional piano roll (pitch ↕, time ▸) to spend the wide axis on time. The context ribbon still rides on top.
1

The cap, and what fills it

Keys grow to ~⅓ then stop; continued upward drag reveals the workspace. The keyboard holds its ergonomic height — the new room opens above it. Same continuous-reveal as the timeline ribbon.

2

Default: see what you play

A note view of the current part, each column sitting over its key below (a waterfall toward the amber now line). The see-what-you're-doing principle the GarageBand port breaks — and editable in place.

3

Or perform: Controllers

Toggle the zone to pitch/mod strips, an XY pad, an arpeggiator — the other natural use of space above keys. The same drag, a different occupant.

4

Landscape splits them — and reflows

No room to stack, so keys and notes become a Keys / Notes toggle, with the context ribbon persisting in both — you lose seeing keys-and-notes together, never the when. And the note view itself reflows: Synthesia-style (pitch ↔, aligned to keys) when it sits above the keyboard in portrait; a conventional piano roll (pitch ↕, time ▸) when it's standalone in landscape and the wide axis is better spent on time. Rotate back and your part, playhead and selection carry across.

UNIFIED-TIMELINE STUDIO · PHONE CONCEPT PLATES 01–08 WIREFRAME — LAYOUT & GESTURE INTENT, NOT FINAL VISUAL