Software to start creating virtual instruments
A few weeks ago I started to dive into creation of “digital” instruments to use them in any DAW (Cubase, in my case), or even as playback sound font for MuseScore, for example.
I got quite disappointed. I did not find what I was searching for. There is Steinberg’s HALion (expensive, really complex) and Native Instruments' Kontakt (even more expensive), and EXS24 for Logic Pro But with neither of them it is possible to create or export instruments in a format which can be distributed for free so that it can be used by others without a Cubase, Logic or Kontakt license.
I really like the UI of the instruments AmpleSound is providing. To achieve this, I assume they have a custom VST code base or framework which is shared by all their instruments.
I spent some time researching what is possible and what is already existing. So I decided to write it down, to remember it later.
SFZ Format
- Free
- VST and standalone application available: Sforzando
- Documented: SFZ Format
- Sfz files have to be written manually, there is no UI to build your instrument
- No packaged format: An
sfz
is just a text file referring to audio files
Soundfont 2 (sf2
)
- Free
- Binary format
- There is software with an UI to create
sf2
files, the most known one Polyphone, but don’t expect the UIs to be good, it’s still tedious to build the instrument - Supported by MuseScore
- VST available with Sforzando, which is able to read
sf2
DecentSampler
I am not the only one looking for an instrument format which can be shared easily: DecentSampler, created by David Hilowitz is a response.
- Free
- XML Format, similar approach as SFZ
- VST with graphical UI and custom controls for your instrument available
- Files have to be written manually, there is no UI to build your instrument
sf-creator
I wrote a little helper python application to automate my steps to create a sound font and do the mapping of the notes automatically based on the note names in the filename. In the project’s README I collected there some more technical information of tools and libraries with similar or complementary approaches. SFZ and DecentSampler are supported for now as output files.
Compatibility and conversion options
Kontakt to SFZ
- There is a basic SFZ-Export script by Chicken Systems to export Kontakt instruments
- There is another SFZ export script written by David Hillowitz.
Kontakt to DecentSampler
- There is a Decent Sampler export script written by David Hillowitz.
SF2 to SFZ
- Sforzando can read
sf2
files and save them as SFZ
DecentSampler to SFZ
- Not possible yet, but should be quite easy to implement.
SFZ to SF2
- Polyphone can read SFZ and save sf2
- Basic SFZ to SF2 converter in python: github.com/freepats/freepats-tools
More about writing and reading sf2: github.com/paulwellnerbou/sf-creator#sf2-support