schellingb/TinySoundFont

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

C

887

79 commits

updated Jul 19, 2026

See the code

README

TinySoundFont

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

Overview

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.

#define TSF_IMPLEMENTATION
#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.

Documentation

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.

Dependencies

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

Strict No LLM / No AI Policy

No LLMs for issues. No LLMs for source contributions/patches/pull requests.

AI must not be used to generate code for contributions to this project.

Any pull request to this project will ask you to confirm that you are the author and that you are contributing your changes under the license of the project.

License

TinySoundFont is available under the MIT license.

sf2
soundfont
soundfont2-synthesizer-library
synthesizer

schellingb/TinySoundFont

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

C

887

79 commits

updated Jul 19, 2026

See the code

README

TinySoundFont

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

Overview

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.

#define TSF_IMPLEMENTATION
#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.

Documentation

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.

Dependencies

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

Strict No LLM / No AI Policy

No LLMs for issues. No LLMs for source contributions/patches/pull requests.

AI must not be used to generate code for contributions to this project.

Any pull request to this project will ask you to confirm that you are the author and that you are contributing your changes under the license of the project.

License

TinySoundFont is available under the MIT license.

sf2
soundfont
soundfont2-synthesizer-library
synthesizer

Significant stargazers

(top 24 of 27)

Rob Loach

570 followers · starred May 2024

rxi

3,376 followers · starred Feb 2020

Rochus Keller

366 followers · starred Dec 2025

rofl0r

855 followers · starred Mar 2019