At Grump's request, I have posted on Github my python tools to assist putting together an SFZ sample set.
https://github.com/jlearman/jSfzTools
The main feature is handy for recording actual instruments as it does (or tries to do) pitch detection. You record one velocity layer at a time and then feed them all into a script that chops up the notes and labels them according to pitch (and keeping the layer part from the layer filename.) After that you run another script that takes a small text control file, sees all your chopped files, and builds a keyboard map and creates the .sfz file.
It's definitely nerdware: command-line tools with no GUI. Also, it's hacked together with duct tape and baling wire, and mostly written long ago when I was new to python. It works for me, though sometimes with some fiddling.
It requires python 2.7 or thereabouts. Python 3 won't work. You're on your own installing Python. I use Cygwin, which is a lot of trouble if all you want is Python. That also gives me all my favorite UNIX tools.
After initially using it for my Rhodes back in 2005, I've since used it to sample my MIDI keyboards so that I can use them in my DAW without the keyboard attached, very convenient. Also, it's nice to be able to re-render instantly after a MIDI edit, rather than having to play the full part each time.
When recording MIDI, be sure to leave some silence at the beginning (at least 1/10 sec or so). The algorithm samples noise before each note to calibrate (so it knows when the note has ended). Nasty things happen if you leave that out.
Jeff's tools for compiling multilayer sfz samplesets
-
- KVRist
- 247 posts since 5 May, 2020
- KVRAF
- 7413 posts since 8 Feb, 2003 from London, UK
Nice. I've some bash scripts that work for drums - so no pitch detection - plus a rather "customise this into whatever fits the naming convention the last person came up with" approach. And velocity curve nightmares that still plague me. So "work" is subject to interpretation, hence I've never felt able to post them
.
-
- KVRist
- Topic Starter
- 247 posts since 5 May, 2020
Yeah, I sidestepped the velocity curve issues; just use the default curve or whatever curve, made simple by using normalized velocity layers. I keep thinking about starting a project to, when sampling a MIDI instrument, to actually calibrate it. But ... never felt the need when playing them, so why bother?
These tools just do the chopping and mapping, no more. But with a big sampleset, that's a lot of help!
These tools just do the chopping and mapping, no more. But with a big sampleset, that's a lot of help!
-
- KVRian
- 1189 posts since 11 Jun, 2019
Thank you very much Jeff! I´ll first have to fiddle into that Scripting Stuff a little bit - but when that is done your Script will probably be very helpful and save lots of Time here.
And it´ll be a Motivation until then. I´ll probably have to learn some Scripting anyway..
I wish you all the Best - and stay save! (We´re currently overrun by Covids again here in Germany :/ )
