Requirements: macOS 14 or later (Apple silicon), Windows 10 or later (x64), Linux x64. Separation models download on demand; each stem’s weights are a few hundred MB to just over 1 GB, so keep disk space free.
macOS: open the DMG and drag Printemps into Applications. The build is signed and notarized by Apple, so it opens on a double-click.
Windows: run the installer (.exe) and follow the wizard. If SmartScreen appears, choose More info › Run anyway.
Linux: download the AppImage, make it executable and run it:
The app opens on the Home page. Click Choose audio file, or drop a file onto the dashed area; File › Import audio… (⌘O) works too.
WAV, FLAC, MP3, M4A, AIFF and OGG are accepted. Each project holds exactly one audio file; importing creates the project and opens the workspace immediately.
Below the import area, Recent projects lists your work and can be searched; All projects opens the full history page (section 10).
Importing copies the audio into the app’s private folder; the original file is never modified.
3. The workspace
Header: the arrow at the top left returns Home, as does clicking the Printemps logo; the pencil next to the project name renames it in place. On the right are Analyze (rhythm and key) and Export (export tracks).
Toolbar: Tracks, the monitoring source switch Original / Stems, time display format (Time / Bars & beats), the metronome switch and Split; zoom controls sit on the right.
Timeline: the metronome lane on top, then the original audio track and one track per separated stem. Click or press-and-drag the ruler to move the playhead, even while a separation is running.
Clip details: the right panel shows the selected clip’s name, offset, duration, source in/out, and the Separate and Export clip buttons.
Transport: return to start, play/pause, loop, in/out, the timecode and master volume along the bottom.
4. Choose stems and separate
Select a clip on the timeline (right after import that is the whole original audio) and click Separate in the right panel, or use Tracks › Separate selected clip….
Tick the stems you want. Search by name, model id or instrument family, or browse by category. The summary at the bottom shows how many models are cached or still to download, the download size and the processing device.
Start. Missing models download first (cancellable) and separation begins automatically afterwards. Progress appears in the workspace lane; you can keep auditioning and moving the playhead meanwhile.
Each stem becomes its own track, plus an extra Other (residual) track containing everything you did not select.
Secondary separation: you can separate a clip on a result track again (for example extract the kick from Drums). The source clip is kept and the new results are inserted at the same position.
If a separation fails or is cancelled the lane offers Retry or Close. If the app quits mid-task, the task is marked Interrupted on the next launch and can be retried.
Supported stems
The current model targets the 53 stems below. Search matches the English name, the Chinese name and the family; pick as many as you like, and whatever you leave out is summed into the Other track.
How cleanly they separate depends on the material: an instrument that is not in the track cannot appear, and stems that overlap can bleed into each other.
5. Audition
Space plays/pauses, Home returns to the start, ←/→ seek 1 second and 10 seconds with Shift.
Original / Stems switches monitoring between the untouched audio and the separated result.
Each track has S (solo: hear only soloed tracks), M (mute) and a gain fader; master volume is in the transport bar.
Loop: I / O set the in and out points, L or the loop button toggles looping.
Zoom: + / −, 0 fits the whole audio; trackpad pinch and the scroll wheel work as well.
6. Edit clips
Select a clip by clicking it; details appear on the right.
Split: move the playhead and press S or click Split in the toolbar.
Trim: drag the handles at either end, or type exact Source in / Source out values in Clip details and press Enter for millisecond precision.
Rename: click the pencil next to the clip name, Enter to confirm, Esc to cancel.
Work on one section: with a trimmed clip selected, Separate or Export clip processes only that range; results land at the same position on the timeline (the offset is preserved).
7. Rhythm and key
Click Analyze in the header to estimate BPM, key, time signature and the first beat locally. Analysis only runs when you ask for it.
Results show in the header (for example 120 BPM, G major, 4/4). Click them to open Rhythm & key, edit the values by hand or Reset to the recommendation. Edits only affect the ruler and metronome, never the audio’s speed or pitch.
Variable tempo or too few beats are reported so you can fill the values in yourself.
Switching the time display to Bars & beats lays the ruler out in bars according to the time signature.
Metronome: the toolbar switch adds clicks during playback; its volume is on the metronome lane.
8. Track list
Press T, click Tracks in the toolbar or use Tracks › All tracks…. Here you can:
reorder by dragging or with the arrow buttons;
show / hide tracks (hidden tracks leave the workspace and mix and can be shown again any time);
delete result tracks (cannot be undone; the original track cannot be deleted).
9. Export
Exports always create independent WAV (24 bit) or FLAC copies in the export folder you choose; the results in the app’s private folder are untouched.
Export clip: select a clip and click Export clip in the right panel, or press ⌘⇧E. Only that clip’s range is exported.
Export tracks: the header’s Export button. Tick the result tracks to export (the original audio is not included); every visible clip becomes its own file.
Alignment: both dialogs offer Clip range (files start at the clip) or Project timeline (leading silence pads each file to its position in the project, so it drops straight into a DAW aligned).
When finished, Open folder reveals the files. Change the export folder in Settings.
10. Manage projects
All projects on the Home page, or ⌘⇧O, opens the history page. Search by name, filter by task state or by whether results exist, sort by time or name.
Each project card can be opened, renamed, exported or deleted directly.
Deleted projects move to the Deleted list and can be restored any time. Tick “also remove the audition results the app saved” or purge from the Deleted list to remove the local files for good.
Projects save automatically as you edit. If a save fails, a banner at the top of the workspace offers Retry save.
11. Model library
Open it from the header’s model icon or Tools › Model library….
Every target stem and its model is listed, cached ones first with their weight size. Download models ahead of time or delete caches you no longer need.
Search by name or instrument and filter by cache state.
The model cache folder can be moved (to an external drive, for instance); after moving it, cached models must be re-downloaded or moved by hand.
Processing device: Automatic (shows which device it will actually use), CPU, Apple MPS (experimental, Apple silicon) or a discrete GPU (needs a custom environment set under Inference environment). The GPU entry is named after the backend actually detected, NVIDIA CUDA or AMD ROCm — a ROCm build exposes AMD GPUs through the same API. Automatic never picks MPS.
Inference environment: the bundled runtime is CPU only. To use NVIDIA CUDA or AMD ROCm, point this at your own Python environment (it needs torch, numpy, soundfile, PyYAML, einops, rotary-embedding-torch and beartype). It affects separation only; analysis keeps using the bundled runtime.
Model download source: huggingface.co by default. Switch to the hf-mirror.com mirror, or enter another host (scheme, host and port only), if that one is unreachable. Models you already downloaded are unaffected.
Network proxy: used when downloading models. Follow the system, use no proxy, or enter a custom address (http, https or socks5, optionally with credentials, e.g. http://127.0.0.1:7890).
Diagnostic log: exports the failures recorded this session. Your account name, file paths, track names and project ids are removed, and the app never sends it anywhere.
Model cache folder and export folder.
Updates: check, download and install on restart.
Enabling NVIDIA CUDA with your own Python
The bundled runtime is CPU only. With an NVIDIA GPU you can prepare your own Python environment and point Inference environment at it. That environment is used for separation only, analysis keeps using the bundled runtime, and Use default returns you to it at any time. This is experimental.
You do not need the CUDA Toolkit. PyTorch’s CUDA wheels carry the runtime libraries they need; a recent display driver is enough. Installing the toolkit only costs you several more GB for nothing.
Windows ships two kinds of command-line window and they need slightly different syntax. Pick one and the instructions and commands below follow it; if you are unsure, keep PowerShell.
Install Python 3.13 from python.org (3.10 through 3.14 all work) and tick “Add python.exe to PATH”.
Open a terminal window. Hold the Windows key and press R. A small “Run” box appears in the corner of the screen; type powershell and press Enter. The window opens on a prompt beginning with PS C:\Users\your name>, which means it is ready. (You can also press the Windows key, type powershell and click “Windows PowerShell” in the results.)Hold the Windows key and press R. A small “Run” box appears in the corner of the screen; type cmd and press Enter. The window opens on a prompt ending with C:\Users\your name>, which means it is ready. (You can also press the Windows key, type cmd and click “Command Prompt” in the results.) For each command below, use the copy button in its corner, paste it into the window with Ctrl+V and press Enter. Wait for the prompt to come back before running the next one.
Create a separate environment rather than installing into the system Python:
py -3.13 -m venv $env:USERPROFILE\printemps-cuda
py -3.13 -m venv %USERPROFILE%\printemps-cuda
Install CUDA PyTorch. This downloads about 2.4 GB and can take ten minutes or more; the window scrolls progress as it goes, so leave it open until the prompt comes back:
Back in Printemps, pick C:\Users\<your name>\printemps-cuda\Scripts\python.exe under Settings › Inference environment. A missing package is refused by name; once it passes, the row shows the torch version and whether CUDA is available.
Set Processing device to NVIDIA CUDA.
If step 5 reports no CUDA, the display driver is usually too old. Reinstall torch with cu128 or cu126 in place of cu130. torchaudio is not needed; separation never imports it.
13. Keyboard shortcuts
These work throughout the workspace; text fields and dialogs keep their own keyboard controls. Press ? in the app to see them at any time.
Key
Action
S
Split clip at playhead
Space
Play / pause
Home
Return to start
← / →
Seek 1 second
Shift + ← / →
Seek 10 seconds
I / O
Set in / out
L
Toggle loop
+ / −
Zoom in / out
0
Fit audio
T
Track list
?
Keyboard shortcuts
Menu shortcuts
Key
Menu item
⌘O / Ctrl+O
Import audio…
⌘⇧O / Ctrl+Shift+O
All projects
⌘⇧E / Ctrl+Shift+E
Export clip…
⌘⇧T / Ctrl+Shift+T
All tracks…
⌘, / Ctrl+,
Settings…
14. Troubleshooting
Model download failed: check the connection and click Retry download; finished files are kept and only the rest is downloaded. If you need a proxy, set it under Network proxy in Settings; if huggingface.co is unreachable, switch the model download source to the mirror.
MPS is slow or unstable: switch the processing device to CPU; MPS remains experimental.
Separation interrupted: reopen the project and click Retry in the progress lane; the source track is retained.
Save failed: usually a read-only folder or a full disk; fix it and click Retry save. Data survives a restart.
Where is my data: ~/Library/Application Support/printemps on macOS, %APPDATA%\printemps on Windows, ~/.config/printemps on Linux; see the privacy policy for details.
For anything else, open an issue on GitHub. Before you do, use Export log under Settings › Diagnostic log and attach the text file it writes. It holds only this session's failures, with your account name, file paths, track names and project ids removed, and you can read it first and decide whether to attach it.