Put a bunch of your own samples into a convenient “Instrument”

Most people don’t know how easy it is to make an SFZ that contains up to 128 samples mapped to different “pitches” (I know I didn’t). You might think – “I don’t want to make a sample of a pitched instrument like a piano”, but you don’t have to do that. You can take any collection of samples and trigger them independently with full polyphony. They can be sound effects, recordings of VCV patches, recordings of guitar noises. Whatever you want.

This short section of the manual for SFZ Player is enough to get you started (link below). If you have the samples already you can throw together an SFZ mapping them to CV in just a few minutes, using only a text editor.


Thanks for the tip with the VS-Code extension. There is a snippet for region which is very useful if you want to map a complete set of samples.

Ah, glad you like it. Of course I only found it because I was editing an SFZ and VSCode “suggested” it to me. Often I ignore those suggestions, but in this case it’s a good thing. I am terrible with typos, and anything that can show me a mistake is a real help.

I made my own tool in the past to generate sfz files but they have full absolute paths since the samples come from multiple folders. I don’t think yours likes the absolute path? Looks like sforzando can accept full paths.

That sounds like a bug to me. I’ve never tried to use an absolute path. I’ll look into that. I can see how it wouldn’t work - I always prepend the cwd, I think. I guess a line or two of code to detect an absolute path wouldn’t be too hard. tx!

I made this about 10 years ago. You need java to run it but it still works. You add some source folders and it goes through and picks out a certain number of files and makes an sfz file for you with those random files mapped across the keyboard.

I would also suggest to use excellent and free Polyphone program for quick (and automatic) conversion of ANY sf2 files (there are tons of them in comparison to sfz’s) - in Export menu you just choose “sfz”-output and with 2 additional clicks (output path and something else, I don’t remember it now) you get SFZ-Player ready “multi-instrument” (with all needed “globals”, “groups”, “regions” etc.) :wink:

Have you tried it with my SFZ player? I would think it wouldn’t work, as most converted sf files I’ve seen put everything in one big wav file and index into it with opcodes that I don’t (yet?) support.

Aye, sure, I already tried it several dozen times (in past week) with different sf2’s collected for many years before on my comp :slight_smile: And in most of the cases (but not in all of them, alas) the result was rather acceptable, though many of them have “click problems” (which could be partly fixed manually via any text editor)

oh, nice! tx for the info. btw, the “click problem” is I think fixed in a release coming out this week. It turns out the SFZ spec was wrong about default ampeg_release. The spec said one millisecond, which is what I implemented (not realizing that a bunch of sfz instruments leave it blank and rely on the default). Turns out sforzando player defaults to 30 ms. So I did that and logged a bug against the spec.


Thanx for clarifying it once more, though I already read that useful info in another thread here :wink: Anyway, I suppose that my (or, better, Polyphone’s) “makeshift” method is much simpler for bulk “trial and error” conversions (although, I admit once again that it doesn’t work for all sf2’s).

1 Like

I wonder if their conversion is better than scorzando’s. Could you send a link to an sf2 that converted ok for you?

Hmm…I I can offer two options for you - a) give me some e-mail for detailed elaboration or b) I could send you direct linx to converted files (with original sf2’s or/and final sfz’s). In fact, all my test conversions were made from my fonts, previously downloaded and I didn’t remember their original sources now.

I just tried to use the forbidden program, and I think I found a really fast way to map a folder structure to a working sfz-file.

  1. Open the program which name cannot be written and create the following structure:


  1. Open explorer and go to the files you want to map, select them all and choose Start → Copy Path


  1. Paste into column E:

  1. Replace the number behind pitch_keycenter, lokey and hikey with the key where you want your mapping to begin and pull down the rows:

  1. Hit Control-H and replace the absolute path with “sample=”. If your samples are in a folder and you want to put the final SFZ-File on the same folder-level as the folder with the samples, then the paths have to start with the folder containing the samples:


  1. Save as *.prn

  1. Copy the file in the explorer, so that you can edit it if something is wrong. Then rename one of them to a .sfz and open it in a text editor to check the file.

  1. If it looks fine, start up VCV and use your favorite Squinky Labs SFZ-Player to load your new file.

  2. If it works, close the program no one will ever use off-work and pretend you used VS Code.

Troubleshooting: The “export as *.prn”-option will save a file with the same spacing as the columns look like. If you have missing spaces between two opcodes then just increase the column-width. Too many whitespace is not a problem!

  • mo

Oh, that’s cool. Maybe at some point I can steal that and put it in the manual?

btw instead of specifying pitch_keycenter, lokey and hikey, if they are all the same you can just use key. that is in the manual :wink:

Also - I wonder how easy this is in google sheets? At least that is free :wink:

Oh, even easier then. Nice. And of course you can add that to your manual.

I’m pretty sure I have and it works as intended.

Yesssss… Yesssss… Make the SFZs. Make many of them! And share! Yes, share the SFZs!

(I use Chicken Systems’ Translator to rip SFZs for my Akai samplers.) :slightly_smiling_face:

Yeah, my initial results are that sf2 converted with Polyphone often play just fine, sf2 converted with sforzando don’t work at all.

Good to know. I’ve been mailing to get that program to try converting Kontakt instruments.