Inspecting a soundfont on iOS

1k views Asked by At

It is possible using AudioUnits on iOS to create samplers that load and play soundfont (or SF2) files. This is a really great feature. The problem is that I don't see any interface for inspecting a soundfont to see: a) how many presets it contains and b) the names of the presets it contains.

It is possible to obtain the current preset name by first loading the soundfont into the sampler using AudioUnitSetProperty with kAUSamplerProperty_LoadInstrument and then calling AudioUnitGetProperty with kAudioUnitProperty_ClassInfo on the sampler. This is not very efficient however, and only tells you the name of the currently loaded preset. It also does not seem to tell you how many presets are contained in the soundfont.

How does one do these things without using 3rd party code (surely it is natively supported)?

2

There are 2 answers

0
Brad Howes On

This is a very old question, but I do have another solution: my SoundFonts application. It is available on the AppStore for a small fee, or you can use the source to build what you want.

The repo contains an SF2 parser in C++ that I reworked from some code I found online. The repo also contains a catalog.py Python script that generates listing from a SF2 file. It uses the sf2utils Python package.

0
robuch On

Another option is a soundfont editor for OSX called polyphone