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.