diff --git a/README.md b/README.md
index d31a575..4358fe7 100644
--- a/README.md
+++ b/README.md
@@ -33,6 +33,14 @@ All clips are exactly 8 seconds — the standard length for foley sound datasets
- **Hardware encoding** — GPU-accelerated export via NVENC, VAAPI, QSV, AMF, or VideoToolbox
- **Subject tracking** — auto-adjust crop center using YOLOv8 detection (optional)
+### Audio extraction & editing
+
+- **Extract audio area** — save an exact-length audio slice from the playhead (length steps by 1s, no upper cap)
+- **Output format** — WAV / MP3 / FLAC / M4A / OGG / OPUS, remembered between sessions
+- **Non-destructive edits** — fade in/out, EBU R128 normalize, and gain, applied via ffmpeg on extract (and audition)
+- **Waveform preview** — a read-only strip of the current area (↻ to refresh; decode length-capped so long areas don't stall)
+- **Audition** — Play/Stop the current area with the edits applied
+
### Audio scanning
- **Embedding models** — WAV2VEC2 (base/large), HuBERT (base/large/xlarge), BEATs
@@ -43,6 +51,7 @@ All clips are exactly 8 seconds — the standard length for foley sound datasets
- **Hard negatives** — mark false positives to refine training
- **Model versioning** — timestamped backups with rollback support
- **Scan export** — batch export from scan results with spread and minimum duration filtering
+- **Location** — scan controls live in the **Audio** tab's *Scan / Classify* pane (formerly the *Scan* tab)
### Scan results panel
diff --git a/main.py b/main.py
index 2b03989..e77708b 100755
--- a/main.py
+++ b/main.py
@@ -4471,7 +4471,6 @@ class MainWindow(QMainWindow):
# Extract audio area — an exact-length audio slice from the playhead,
# saved via a Save As dialog (format follows the chosen extension).
- transport_row.addSpacing(12)
self._spn_audio_len = QDoubleSpinBox()
# No practical upper cap — audio areas can be minutes long; ffmpeg stops
# cleanly at end-of-file if the source is shorter. Arrows step by 1s;
@@ -4972,9 +4971,21 @@ class MainWindow(QMainWindow):
# ── Changelog ────────────────────────────────────────────
- APP_VERSION = "1.2"
+ APP_VERSION = "1.3"
_SPLIT_HEADER_H = 22 # deck split-column header height (keep both deck spots in sync)
CHANGELOG: list[tuple[str, list[str]]] = [
+ ("1.3", [
+ "Audio workspace tab — the Scan control-deck tab is "
+ "now Audio, a QToolBox with two panes. "
+ "Extract & Edit has the audio-area length, an output "
+ "format picker (WAV / MP3 / FLAC / M4A / OGG / OPUS, "
+ "remembered), non-destructive fade in/out, normalize, and "
+ "gain applied on extract, a read-only waveform strip "
+ "(↻ to refresh), and Play/Stop audition of the current area "
+ "with the edits applied. Scan / Classify keeps the model, "
+ "threshold, and scan/auto/speech/review controls. The extract "
+ "length + button moved off the transport row into this tab.",
+ ]),
("1.2", [
"Per-tab export folder — each file-list tab now remembers "
"its own output folder; switching tabs follows that tab's folder. "