Tina's Adventures in Soundfont-Making


Relative to yesterday's entry, it looks like all the tornadoes are going to stay south of here today. At last check, the National Weather Service was calling one of them "large and dangerous". That's about as grave as the tornado warning bulletins can get. I didn't recognise the name of the place that was going to be affected; Chilocco, or something. Probably some random small town in southern Kansas.

Today's discovery is no less awe-inspiring, though! At least to me. As you might know, I've been slowly converting the Digidesign SampleCell II factory library into soundfonts and putting them onto the Internet Archive. Thus far, I've done the strings, brass, and a selection of synthesisers that I thought were the most capable (there are a lot more synth samples on there, but most of them are already duplicated by other soundfonts). I also spent about 2 hours last month sampling various patches on my Fantom X and had entertained the idea of even sampling all the GM2 patches, except for the fact that the latter was going to be way more work than I was prepared to do and most of those sounds didn't stand up to the test of time. I did make a workable set of synthbasses and performance layers (nothing I'm planning to release, that is), which served as an introduction to Polyphone. Beyond simply loading someone else's samples into the software, I was making my own; setting my own loop points, attenuating the volume, really making a soundfont out of nothing.

One of the things I was getting hung up on was, how do I get a good loop without it sounding like it came off the Fairlight CMI in 1981? It turns out there are some unorthodox mouse movements you can make in the sample editor that let you zoom into the waveform, at which point you can see that Polyphone even gives you a ghost image of the opposite loop point. Say you're editing the loop end; you can see a ghost of the loop start so you can find proper zero-crossing where the sample can't be heard looping. Or as near as you can get to it.

Another thing was, how do I get the samples to loop seamlessly? Well, it turns out you don't have to squint yourself blind, looking for a loop point; Polyphone can manufacture a seamless loop for you with the Auto-Loop tool! What the hell?! Looping a sample is, like, 50% of the work and Polyphone does it for you?

The penultimate thing was, how do I combine soundfonts? I'd been poring over the documentation, suffering over menus, looking for a button that read, "Import Soundfonts". It turns out that Polyphone works a lot like Microsoft Word; in that, you can open a soundfont file, select the preset you want to take over to another file, press CTRL+C—you know, the universal "copy" command?—then go to the other file and press CTRL+V. Done. Combined. This is a free software program! It does stuff that you'd have to pay $500 15 years ago for free!

The only issue I'm still having with it is that it seems to have abilities that sforzando and RF-Soundfont don't understand. Polyphone lets you attach so-called modulators to a preset or an instrument that will change the character of the sound under certain conditions. Grand piano soundfonts tend to use this a lot in order to simulate velocity effects. Theoretically, this should lead to a 1st-class sound! Unfortunately, sforzando doesn't know what the hell any of that means and it simply discards the modulators like they aren't there. RF-Soundfont is a little more understanding, but it tends to discard envelope data, leading one-shot instruments, like pianos and marimbas, to play forever. One of my current projects involves parameter adjustments on a sample-by-sample basis; setting a single constant pitch and adjusting the ranges manually. This also is too much for sforzando. In this case, it's also too much for RF. It's going to take my dyscalulic ass way too long to figure out how to fix it by numbers alone, so I'm going to just resample all the sounds. However, it would be nice if I didn't have to do that. Obviously, if Polyphone has the ability to set up all of this data, ipso facto there must be a program someplace that is able to interpret it. In the interim, I don't see that I have any choice but to brute-force my soundfont into working properly, because I would like people to actually be able to, you know, use what I make.

What's this project called? Wouldn't you like to know. All in good time...

--27 April 2024--


HOME