So I went down the rabbit hole and wrote a whole whack of Matlab and a SikuliX scripts to automate a bunch of stuff including batch making previews for instrument and drum programs. Note that all my xpm's were made with Kitmaker and Preset maker (not affiliated) so this is what all these scripts are designed to work with.
Make sure you test the scripts on a copy of your MPC library. I take no responsibility if this kills your library or sends your cat to sspace. You have been warned.
Dropbox link to all my scripts and a video showing the Sikuli script working, so anyone who wants to use it will know where to change the values.
https://www.dropbox.com/sh/vsvxb40jboqnthx/AAAQBy4s8aHYR_nFF8DAzn9ba?dl=0For drum programs only (written in SikuliX, tested on macos 10.15.7)
- you will need to install SikuliX (I can not provide help with this but its pretty straight forward)
- take a look at the video to see what the script does
- read the comments in the script to see what values you will need to change
- you will need to provide a two column csv file with the xpm name and path to said xpm file
- I have included a matlab script that will generate this csv file for you
- you will need to use a midi sequence for the drums
- takes about 70 secs to make a drum preview
For instrument programs only (written in Matlab, paid software but with free trial. *should* also work in the free and open source GNU Octave)
- you will need to install Matlab (they give a free full functional trial, i believe its 30 days)
- scripts I wrote do the following (this list is the same order as the dropbox folder):
- Rename xpm to start with folder name
- I had kitmaker make kits based on category (eg. bass, pads, synths) but I wanted to have the category in the xpm name (eg. bass - awesome bass.xpm) this script takes the name of the parent folder and puts that in all the xpm file names and changes the name xml tag so it shows up properly on the MPC
- Rename folders that have ' Samples-Loose' appended to folder and xpm name
- Kitmaker will use the orignal folder name so if it contains 'Samples' it will be in the folders and xpm name. this removes them.
- Move Loose presets up one folder
- kitmaker will make Loose presets if they are unidentified. This means there is a subfolder called Loose and the xpm name will have '-Loose' appended as well as the xml tag will only show 'Loose'. this script removes all 'Loose' names and renames things
- Move all presets up one folder
- Kitmaker puts each .xpm in its own folder with samples. I wanted all my (for example) bass xpm in a folder called bass. This moves them all up one folder.
- eg. this will only work if your folder structure looks like this:
- /volume/Instruments/bass/awesome bass/awesome bass.xpm
- /volume/Instruments/bass/more awesome bass/more awesome bass.xpm
- the resulting folder will be this after the script (note - all the corresponding samples will also be moved up one folder)
- /volume/Instruments/bass/awesome bass.xpm
- /volume/Instruments/bass/more awesome bass.xpm
- Change parameters in xpm files
- This can be used on any xpm file and will allow you to change a parameter in all your xpm files.
- eg. Kitmaker doesnt add volume release in any of the xpm. This script changed all my xpm so I have release values for all xpm.
- you can use this to change any parameter. just need to open an xpm in a text editor and look for the tag you want to change. for ex. I changed the polyphony of all my bass xpm to mono.
- make instrument previews
- last but not least. This script does not use a midi sequence for the preview but rather a original sample from the xpm. It searches the xpm file and looks for a match on a user defined key and octave (eg. C2)
- In other words, you will get a single note as a preview instead of a sequence. i dont need to hear a funky bassline, i just want to know what the sample sounds like.
- I processed about 500 xpm in about 5 mins.
I have spent more time writing these scripts (3 weeks evening coding) than I have on my new MPC One so I plan on disconnecting from the interwebs for the next while. So dont be angry if I dont answer or provide support for these scripts.