§ Guide · Workflow

Swap a project onto a new drum pack with AI

Published September 2026

You have a finished arrangement and a drum pack you like better. Give an AI agent the path to that pack and it reads what every sampler in the session currently plays, matches each one to a file in the new pack by name, and rebuilds your Logic Pro project on it — kick for kick, snare for snare, hats for hats. The regions, the timing and the mixer stay exactly where you put them. For this swap, your audio never leaves the machine: the agent passes local paths, the cloud does the session work, and the download hands you copy commands that place your own files into the project.

Why replacing samples by hand is worse than it sounds

On paper it is a small job: sixteen tracks, sixteen new one-shots. In practice you open each sampler, navigate, audition, load, repeat — and if two packs later the first one was right, you do it all again. The arrangement was never the hard part; the clicking is. It is also mechanical, which is what an agent is for: the mapping is a name match over a folder listing, and the edit is one operation per track.

Nothing below requires the DAW to be open, or the desktop app to be installed.

The mechanism: a sampler references a sample, it does not contain it

This is what makes the privacy claim mechanical rather than a promise. When Logic's Quick Sampler plays your kick, the project file does not hold the audio — it holds a reference, a name and a location the DAW resolves on open. The same is true of Ableton's Simpler and of most samplers in most DAWs; it is why a project "loses" its samples when you move a folder.

That indirection means the entire project can be written correctly with only the filenames. The cloud builds the session — tracks, regions, buses, routing, and each sampler wired to a canonical name — without ever having heard a byte of your drums. Then the download returns a place_local_files list: ready-made cp commands that copy each sample from your disk into the unzipped bundle. Open the project and every sampler resolves.

The split: the cloud does session structure, your machine keeps the audio. Files upload only when the server must hear them — separation, transcription, conversion, generation, bounce.

Step 1 — connect the MCP server

claude mcp add --transport http --scope user doseedo https://api.doseedo.com/mcp

The first tool call opens a browser to sign in. For a headless setup, append --header "X-API-Key: dsk_live_..." with a key from Settings → API keys. The same endpoint installs as a custom connector in the Claude phone and web apps and in Cursor. The full tool list is on the MCP server page.

Step 2 — let it read the session

Ask in plain language. The agent lists the sessions on your account and reads the one you name as a full arrangement: every track with its id, regions in beats and seconds, mixer levels in real dB, plugin chains, tempo, markers — and, on each sampler in the chain, the sample it is currently playing. That last field is the whole basis of the swap:

{
  "track_id": "t_a4c123b1612d",
  "name": "Kick",
  "volume_db": 0,
  "plugins": [
    { "slot": 0, "name": "Quick Sampler",
      "sample": "DAYTRIP_kick_madrid_01.wav" }
  ]
}

A track name, a stable id to address it by, and the filename it plays. Match that filename against a folder and you have the swap.

Step 3 — point it at the pack

> Read my "Nightbus" session. My new drum pack is at
  ~/Samples/Packs/DirtyTape/. Match every drum track to
  the closest file in that pack and show me the mapping
  before you change anything.

The agent lists the folder, lines each track's current sample up against it, and proposes a table: KickDT_Kick_03.wav, SnareDT_Snare_Rim.wav, and so on. Reviewing it is the one place your judgement is required — packs name things inconsistently, and "Perc 2" is a guess until you confirm. Correct the wrong ones in a sentence.

Step 4 — the swap itself

For each track the agent issues one edit — load_quick_sampler_sample with the track id and the absolute local path of the new sample:

load_quick_sampler_sample {
  track_id:    "t_a4c123b1612d",
  sample_path: "/Users/you/Samples/Packs/DirtyTape/DT_Kick_03.wav"
}

Sixteen of those go in one batch and nothing about the arrangement moves. You can keep going in the same breath — "bring the new snare down 2 dB and put a Tape Delay on the hats" — since faders, plugin inserts by name, tempo and markers are ordinary edits on the same session. If a file is not on this machine, the agent uploads it and references it by content hash instead.

Step 5 — download, unzip, place the files

Ask for the project and the download hands back two things in one response: a short-lived signed URL, which needs no API key or header, and the place_local_files list of copy commands.

# the signed URL from the download response — no auth header:
curl -o ~/Downloads/Nightbus.logicx.zip \
     "<short-lived download_url>"
unzip ~/Downloads/Nightbus.logicx.zip -d ~/Downloads/

# then the place_local_files commands from that same response:
cp ~/Samples/Packs/DirtyTape/DT_Kick_03.wav \
   ~/Downloads/Nightbus.logicx/Media/kick.wav
cp ~/Samples/Packs/DirtyTape/DT_Snare_Rim.wav \
   ~/Downloads/Nightbus.logicx/Media/snare.wav
# …

That step is required: the samplers are wired to those names, and without the copy they open empty. An agent in a terminal just runs the commands for you.

If Doseedo Desktop is running on a Mac with Logic Pro open on that session, skip the download entirely — the edits reach the open project within seconds and the file stays synced. With it closed they persist and bake in on next open, which is what makes "swap the drums on the track I left at the studio" a thing you can do from a phone.

Try it on one project first

Install the MCP server, point an agent at a session and a pack folder, and ask for the mapping before the edit. The whole loop is a few minutes.

Set up the MCP server →

What this does not do

FAQ

Can AI replace the samples in my project?

Yes, for tracks whose sound comes from a sampler. An agent connected to the Doseedo MCP server reads the session, sees which sample each Quick Sampler currently plays, matches your new pack by filename and role, and issues one load_quick_sampler_sample edit per track. You review the mapping before it commits.

Does my drum pack get uploaded to a server?

No, not for a sample swap. The agent passes each file's absolute local path; the cloud only builds the session — tracks, regions, routing and the sampler wiring — and the download returns copy commands that place your files into the bundle from your own disk. Audio uploads only when the server has to hear it: separation, transcription, conversion, generation or a bounce.

How can the project be rebuilt if the server never sees the audio?

Because a DAW's sampler stores a reference to a sample, not the audio itself. The project file records a name and a path; the DAW resolves it on open. So the whole project can be written correctly with only the filenames, and the actual audio is dropped in afterwards by the copy commands the download hands you.

Do I need the DAW open for this?

No. The swap works with the DAW closed and with no desktop app running — the edits persist and the rebuilt project downloads as a file. If the Doseedo Desktop app is running and connected to Logic Pro on a Mac, the same edits also apply to the open project within seconds.

Which DAWs does this work with?

Live session editing and offline bounce target Logic Pro today, through the Doseedo Desktop bridge on macOS. Reading, building, converting and downloading projects covers Logic Pro, Ableton Live, FL Studio, Pro Tools and REAPER, in all 20 conversion directions.

Can it batch replace samples across a whole folder of projects?

An agent can loop the same read, match and edit sequence over every session in your account, so a pack swap across many projects is one instruction. Each project still downloads individually — spot-check the mapping on the first before turning it loose.

Related