My S2400 Drag and drop kit building technique

Hi All,

After scouring this forum and trying to answer the phrase “THERE’S GOT TO BE A BETTER WAY” … I came up with something tonight that is free and allows you to build kits on your computer via drag and drop with a bit of added work on the end. It’s a functional and FREE way to load in 16 samples at a time using “Load Sounds Folder” and keep their order the way you lay them out.

So you will need to download and install two pieces of free software…

first one is Python … (Download Python | Python.org)
Second one is Speedrum Lite … (Apisonic Audio Freeware)

First step is copy and paste the following text into a .txt document and save it, then find the file and change its extension to .py instead of .txt - important to make sure you use TextEdit on Mac or Notepad on PC to create this file.


import os
import shutil
import xml.etree.ElementTree as ET

# Define the input .speedk file and output directory
xml_file = "C:/Users/YourName/Documents/your_preset.speedk"  # Update this
output_dir = "C:/Users/YourName/Documents/Exported_Samples"  # Update this

# Get the folder where the .speedk file is located
root_folder = os.path.dirname(xml_file)

# Ensure output directory exists
os.makedirs(output_dir, exist_ok=True)

# Try reading the file first
try:
    with open(xml_file, "r", encoding="utf-8") as f:
        content = f.read()
    print("Successfully read the file.")
except Exception as e:
    print(f"Error reading file: {e}")
    exit(1)

# Try parsing the XML
try:
    tree = ET.ElementTree(ET.fromstring(content))  # Directly parse from string
    root = tree.getroot()
    print(f"XML Root element: {root.tag}")
except ET.ParseError as e:
    print(f"Error parsing XML: {e}")
    exit(1)

# Extract all sample file paths (look in the same folder as the .speedk file)
samples = []
for element in root.iter():  # Iterate through all XML elements
    sample_file = element.get("SampleFile")  # Extract "SampleFile" attribute
    
    if sample_file:
        sample_path = os.path.join(root_folder, sample_file)  # Look in the root folder
        
        if os.path.exists(sample_path):
            samples.append(sample_path)
            print(f"Found sample: {sample_path}")
        else:
            print(f"WARNING: Sample file does not exist - {sample_path}")

print(f"\nTotal Valid Samples Found: {len(samples)}")

# If no samples are found, exit early
if not samples:
    print("No valid sample files found. Exiting.")
    exit(1)

# Copy and rename files with numbers
print("\nCopying and renaming files...")
for i, sample in enumerate(samples, start=1):
    ext = os.path.splitext(sample)[1]  # Get file extension
    new_filename = f"{i:02d}_{os.path.basename(sample)}"  # Prefix with number
    new_path = os.path.join(output_dir, new_filename)
    
    shutil.copy(sample, new_path)  # Copy with new name
    print(f"Copied: {sample} -> {new_path}")

print("\nAll samples copied successfully.")

Next, the workflow is pretty simple…

-Open up Speedrum Lite in your favorite DAW - drag and drop your samples onto the pads (taking into consideration the order of left to right, low to high) to make your kit,

-Save the drum kit preset making sure that you have it enabled to save Samples along with the preset file,

-open the .py file you created with a text editor by right clicking and using “open with” either TextEdit or Notepad and replace file location … xml_file = “C:/Users/YourName/Documents/your_preset.speedk” with the location of your preset file keeping the quotation marks

-specify output folder by changing - output_dir = “C:/Users/YourName/Documents/Exported_Samples” to your desired output folder (it will make a folder for you if it doesn’t exist)

-Save the .py file with your drum kit preset location and output location updated

-right click the file and on Mac - Open with “Python Launcher”

and voia la - the kit that you just made in that good ol folder diving convenient fashion
should be placed and numbered into a new location, ready to copy the folder over and “Load Sounds Folder”

I hope this helps someone, it was my fix for making kits on my computer and loading them fast without dealing with a shuffled deck of samples.

Cheers all!

I just noticed another potentially useful thing for people about this if you use the full version Speedrum 2 you can render your sample edits to the folder really quickly as it offers a “Render Sample (Replace)” function. So load up all your sounds, take the extra time off or just tweak, right click the pad and Render, select the file name in the saved kit samples folder and it swaps it out for the edited one. Now you can run the numbering script and have an edited kit pretty quick.

6 Likes

Will have a go with it, thanks for taking the time to create this thread, It will definitely help someone! :+1:

2 Likes

Noice! Glad to help anyone drop some beats. I just built a kit and had it rocking in a few minutes so for me this saves a bunch of time over using the jog wheel.

1 Like

Thank you! I hope Isla finds inspiration in this, and creates a simple app.

I know part of the magic of the S2400 is the sample engine and using it to resample sounds for that 12-bit flavor, but it would also be great to build kits on the computer, transfer, and go.

2 Likes

This is great stuff.
Thanks!
I am working on a kit builder which will become part of the web app, this is a great alternative in the meantime!

2 Likes