| Light | Dark |
|---|---|
![]() |
![]() |
A Windows desktop app that records system audio track by track. It watches the Windows Global System Media Transport Controls (GSMTC), the same API behind taskbar controls and browser media players, and splits recordings every time the track changes. GSMTC also supplies the metadata (artist, title, album, cover art), so the source app must expose that information for tagging to work.
Important
Windows 10 / 11 only. GSMTC and DirectShow audio capture are Windows-exclusive features.
- Per-track recording: starts and stops on every track change, no manual splitting needed
- Any GSMTC source: music streaming apps, browser players, or anything else that exposes media controls
- Isolated app capture: on Windows 10 2004+ (build 19041+), captures only the currently playing app's audio via WASAPI process-loopback, no virtual audio cable needed
- DirectShow fallback: on older Windows, or for apps that can't be resolved, capture from any DirectShow audio device via ffmpeg
- Warm pre-roll recorder: ffmpeg stays running in the background to eliminate spawn latency on track changes
- ID3 metadata & album art: artist, title, album, and cover art embedded on save, left untagged if the source doesn't expose metadata
- MP3 and WAV output: configurable format and bitrate (128-320 kbps)
- Audio trimming: drag-to-select waveform editor with per-song and global presets, re-encodes in place
- Session filter: lock recording to a specific source, or follow whichever app is active
- Duplicate handling: skip, overwrite, or auto-increment filenames
- Minimum save duration: discard clips below a threshold you set
- Two-click stop: clicking Stop mid-song waits for the track to end before stopping; click again to stop right away
- Pause-tolerant recording: a short pause doesn't split the file, recording just picks back up; a pause past a configurable timeout stops and discards the clip
| Requirement | Notes |
|---|---|
| Windows 10 / 11 | GSMTC + DirectShow audio capture |
| Windows 10 2004 (build 19041) or later | Required for automatic isolated app capture; older builds fall back to manual DirectShow device selection |
| ffmpeg | Bundled automatically; a system install is used as a fallback |
- Download the latest release from the Releases page:
Autotape3000-setup.exefor the installer, orAutotape3000-portable.exefor the portable version (no install needed). - Run the installer or launch the portable executable. No admin rights required.
- On first launch, a setup wizard walks you through picking an audio device and output folder.
- Hit the record button, then play music in any GSMTC-enabled app. Recordings split with each track change.
Note
ffmpeg is bundled with the app. If the bundled binary fails, install ffmpeg separately and point the app to it in Settings → ffmpeg Binary.
By default, Autotape 3000 captures only the audio of the app currently reporting a track via GSMTC: no virtual audio cable, no manual routing. This uses the Windows WASAPI process-loopback API (ActivateAudioInterfaceAsync with PROCESS_LOOPBACK_MODE_INCLUDE_TARGET_PROCESS_TREE), the same mechanism behind OBS's "Application Audio Capture" source, via a small bundled native helper (see Development).
This requires Windows 10 build 19041 (version 2004) or later, and currently only resolves win32 desktop apps (not Store/UWP-packaged apps) to a process.
In Settings, this is two linked controls: Media Source picks which app to follow (for track detection, artwork, and — in this mode — audio), and Audio Capture Method picks how to record it. Audio Capture Method shows "Isolated — follows Media Source" as an option only when process-loopback is supported; selecting it always captures whatever app Media Source currently resolves to, not a separately-chosen app.
On Windows 10 versions older than build 19041 (version 2004), or for apps process-loopback can't resolve, route your music app through a virtual audio cable and point Autotape 3000 at that device instead.
Recommended: VB-Cable Virtual Audio Device (free)
- Install VB-Cable and set CABLE Output as your default playback device in your music streaming app of choice.
- In Autotape 3000, select CABLE Output as the audio device in Settings.
- Audio played on your system will now be captured directly.
Tip
If you want to hear audio while recording, enable "Listen to this device" on CABLE Output in Windows Sound settings, or use VB-Cable's companion app VoiceMeeter for more flexible routing.
Every recorded track can be trimmed after it has been saved. Open a track from the Recording Log to launch the waveform editor.
- Drag to select the region you want to keep directly on the waveform
- Per-song presets: save a trim range for a specific track and reuse it on re-encode
- Global presets: apply the same head/tail trim to every track, useful for consistent intros/outros
- Re-encodes the file in place; the original is not kept
All settings are in the Settings tab:
| Setting | Default | Description |
|---|---|---|
| Output folder | ~/Music/Autotape 3000 |
Where recordings are saved |
| Format | mp3 |
mp3 or wav |
| Bitrate | 320 kbps |
MP3 only |
| Media Source | auto |
Which app to follow, for metadata and (in Isolated mode) audio |
| Audio Capture Method | Isolated (Windows 10 2004+ / build 19041+) |
Records the Media Source app's audio directly, or a DirectShow device as a fallback |
| Min save duration | 0 s |
Discard clips shorter than this |
| Discard after paused | 60 s |
Stop and discard the recording once playback has stayed paused this long; 0 disables |
| Duplicate action | increment |
skip, overwrite, or increment |
| ffmpeg binary | (auto) | Leave blank to auto-detect |
This is optional and not needed to run the app, but if you want to build from source or contribute, here are the instructions:
pnpm install # install dependencies
pnpm dev # start dev server with HMR
pnpm build:win # build + package Windows installer → dist/pnpm dev runs against the isolated-app-capture helper only if you've built it (see below); otherwise it falls back to the DirectShow device picker. pnpm build:win requires the helper to be built first — it runs pnpm build:native automatically.
The isolated app capture feature is implemented by a small Rust binary using the wasapi crate, spawned by the main process and piped into ffmpeg for encoding. Building it requires the Rust toolchain (rustup) — end users never build it themselves, they get the prebuilt binary bundled in releases, the same way ffmpeg is bundled via @ffmpeg-installer/ffmpeg.
pnpm build:native # cargo build --release, then copies the binary into resources/native/- Electron + electron-vite
- React 19 + TypeScript
- Radix UI + Tailwind CSS v4
- node-id3 — ID3 metadata tagging
- @ffmpeg-installer/ffmpeg — bundled ffmpeg binary
- PowerShell + WinRT — GSMTC integration
- Rust +
wasapi— native WASAPI process-loopback capture helper


