SoundFont2 synthesizer library in a single C/C++ file
Switch branches/tags
Nothing to show
Clone or download
schellingb Leave MIDI messages of type SET_TEMPO accessible in the linked list
Add tml_get_tempo_value function to read the tempo value as int
Latest commit 5506592 Oct 17, 2018


SoundFont2 synthesizer library in a single C/C++ file


TinySoundFont is a software synthesizer using SoundFont2 sound bank files.

The library is a single C header file so it is extremely simple to integrate in your C/C++ projects.

#include "tsf.h"


tsf* TinySoundFont = tsf_load_filename("soundfont.sf2");
tsf_set_output(TinySoundFont, TSF_MONO, 44100, 0); //sample rate
tsf_note_on(TinySoundFont, 0, 60, 1.0f); //preset 0, middle C
short HalfSecond[22050]; //synthesize 0.5 seconds
tsf_render_short(TinySoundFont, HalfSecond, 22050, 0);

The library code is based on SFZero by Steve Folta.


The API documentation can be found on top of the library source code.

There are also examples available which come with a sample SoundFont file and build and play sound on Win32, Win64, Linux and MacOSX with no further dependencies.


C standard libraries for fopen, math and malloc (can be removed by providing custom functions with #defines).


TinySoundFont is available under the MIT license.