https://github.com/schellingb/TinySoundFont
SoundFont2 synthesizer library in a single C/C++ file
https://github.com/schellingb/TinySoundFont
sf2 soundfont soundfont2-synthesizer-library synthesizer
Last synced: 3 months ago
JSON representation
SoundFont2 synthesizer library in a single C/C++ file
- Host: GitHub
- URL: https://github.com/schellingb/TinySoundFont
- Owner: schellingb
- License: mit
- Created: 2017-01-06T20:19:42.000Z (over 8 years ago)
- Default Branch: main
- Last Pushed: 2025-01-27T16:33:16.000Z (4 months ago)
- Last Synced: 2025-01-27T17:34:53.540Z (4 months ago)
- Topics: sf2, soundfont, soundfont2-synthesizer-library, synthesizer
- Language: C
- Size: 2.23 MB
- Stars: 662
- Watchers: 38
- Forks: 81
- Open Issues: 46
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
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.
```c++
#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](https://github.com/stevefolta/SFZero).
## Documentation
The API documentation can be found on [top of the library source code](https://github.com/schellingb/TinySoundFont/blob/master/tsf.h).
There are also [examples available](https://github.com/schellingb/TinySoundFont/tree/master/examples) 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).
## License
TinySoundFont is available under the [MIT license](https://choosealicense.com/licenses/mit/).