diff --git a/clips/templates/clips/index.html b/clips/templates/clips/index.html
index 6de64b3..1337f9f 100644
--- a/clips/templates/clips/index.html
+++ b/clips/templates/clips/index.html
@@ -48,6 +48,14 @@ and PUTs with ordinary CSRF protection — no endpoint in this app is exempt.
color: var(--fg); background: #1c1f2b; border: 1px solid #2b3040;
font: inherit; max-width: 360px; }
.load-status { margin-top: 6px; font-size: 12px; opacity: .75; }
+ .export { width: 640px; margin-top: 14px; padding-top: 12px;
+ border-top: 1px solid #2b3040; font-size: 12px; }
+ .export .row { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
+ .export .gap { flex: 1; }
+ .export select { margin-left: 6px; padding: 3px 5px; color: var(--fg);
+ background: #1c1f2b; border: 1px solid #2b3040; font: inherit; }
+ .export .readout { margin-top: 7px; }
+ .export .note { margin: 7px 0 0; }
.controls { width: 640px; margin-top: 18px; padding-top: 12px;
border-top: 1px solid #2b3040; font-size: 12px; }
.controls select { margin-left: 8px; padding: 3px 5px; color: var(--fg);
diff --git a/frontend/src/arthur/audio/mix.cljs b/frontend/src/arthur/audio/mix.cljs
index 095c476..cec1e6f 100644
--- a/frontend/src/arthur/audio/mix.cljs
+++ b/frontend/src/arthur/audio/mix.cljs
@@ -3,12 +3,25 @@
The mix is derived from saved audio track leaves and immutable footage blobs.
The transport still has one audio element, so seeking, rate changes and looping
- stay tied to the same clock the picture reads."
+ stay tied to the same clock the picture reads.
+
+ THE AUDIO BUFFER IS THE PRODUCT AND THE WAV IS ONE PACKAGING OF IT. Playback
+ wants a URL an `