Skip to main content

Create Sample Packs

~25 min

Build your sample library with AI stem separation

What You Can Extract

Turn any song into source material for your productions. AI separation gives you clean, isolated elements.

Drums
Kicks, snares, hats
Bass
Basslines, 808s
Vocals
Chops, phrases
Melodies
Synths, keys, guitars

đŸ„ Drum Breaks

Extract drum loops from funk, soul, and breakbeat records. Chop into one-shots for your drum rack.

đŸŽč Chord Progressions

Isolate piano, synth, or guitar chords. Loop or chop for harmonic inspiration.

đŸŽ€ Vocal Chops

Extract vocal phrases, ad-libs, and harmonies. Perfect for house, EDM, and hip-hop.

🎾 Instrument Loops

Grab guitar riffs, horn stabs, or string sections to layer in your productions.

1

Select Your Source Material

Choose songs with elements you want to sample. Consider:

  • Old records: Vinyl-era drums and bass have unique character
  • Live recordings: Real drums and instruments add organic texture
  • Different genres: Cross-genre sampling creates unique sounds
  • High quality sources: Start with lossless or high-bitrate files
Legal Note: Sampling copyrighted material may require clearance. For commercial releases, consider royalty-free sources or get proper licensing.
2

Separate the Stems

Use StemSplit to isolate the elements you want. For sample packs, always choose "All Stems"to get maximum flexibility.

Input: song.mp3
Output:
📁 drums.mp3 - Kick, snare, hats, percussion
📁 bass.mp3 - Bass guitar, synth bass, 808
📁 vocals.mp3 - Lead vocals, harmonies, ad-libs
📁 other.mp3 - Everything else (keys, guitars, synths)

Batch Processing with API

Processing many songs? Use the API to automate:

batch_stems.py
import requests
import os

API_KEY = "sk_live_xxx"
SONGS = ["song1.mp3", "song2.mp3", "song3.mp3"]

for song in SONGS:
    # Upload and process each song
    response = requests.post(
        "https://stemsplit.io/api/v1/jobs",
        headers={"Authorization": f"Bearer {API_KEY}"},
        json={
            "sourceUrl": f"https://your-storage.com/{song}",
            "outputType": "ALL_STEMS",
            "quality": "BEST"
        }
    )
    print(f"Processing {song}: Job ID {response.json()['id']}")
3

Chop and Process

Import stems into your DAW and start chopping:

Drum One-Shots

  1. Find clean hits (kick, snare, hat) in the drum stem
  2. Zoom in and cut precisely at transients
  3. Add short fade-out to avoid clicks
  4. Normalize to consistent level (-1dB peak)
  5. Export as individual WAV files

Loops

  1. Find a section that loops cleanly (usually 1, 2, 4, or 8 bars)
  2. Trim to exact bar boundaries
  3. Time-stretch if needed to match your target BPM
  4. Add crossfade if the loop point isn't seamless
  5. Include BPM in filename: drum_loop_95bpm.wav

Vocal Chops

  1. Find interesting phrases, words, or sounds
  2. Cut with some room before/after for flexibility
  3. Consider pitch-shifting for variation
  4. Add reverb tails for texture samples
4

Organize Your Library

Good organization is crucial for finding samples quickly:

📁 Sample Library/
📁 Drums/
📁 Kicks/
â™Ș kick_punchy_01.wav
â™Ș kick_vinyl_02.wav
📁 Snares/
📁 Hats/
📁 Loops/
â™Ș break_funk_95bpm.wav
📁 Bass/
â™Ș bass_loop_Cm_120bpm.wav
📁 Vocals/
📁 Melodic/

Naming Convention Tips

  • Include type: kick_, snare_, loop_
  • Add character: punchy, vinyl, lo-fi
  • Include key for melodic: Cm, Fmaj
  • Include BPM for loops: 95bpm, 120bpm
  • Number variations: 01, 02, 03

Producer Tips

  • ‱ Layer stems: Combine the bass stem with a different drum stem for unique textures
  • ‱ Process heavily: Run stems through saturation, filters, or granular effects for original sounds
  • ‱ Create variations: Pitch-shift, reverse, or time-stretch for more samples from one source
  • ‱ Build drum racks: Load chopped drums into Ableton's Drum Rack or FL's FPC
  • ‱ Use "Other" stem: Often contains hidden gems like textures and atmospheres