The "LICENSE" file applies to everything but "sokol_audio.h" To see the "sokol_audio.h" license, visit: https://github.com/floooh/sokol/blob/master/LICENSE
This application acts as a custom digital audio synthesiser that translates alphanumeric ABC notation data into sound.
The code is structured to cleanly handle:
- Text Parsing: It reads through standard ABC notation format strings to extract musical keys, notes, pitches, accidentals, lengths, and tempo markings.
- Waveform Synthesis: It dynamically translates those parsed musical elements into their corresponding digital audio frequencies.
- Audio Streaming: It pushes the calculated frequencies directly into a live audio stream for real-time playback.
Watch the synthesiser demo on Medal
If you need music files to test out the synthesiser, check out these resources:
- ABC Notation Official Website: Visit this site to find thousands of traditional tunes, folk songs, and classical arrangements written entirely in the text-based ABC format.
- Aether Foundry 16-Voice: Go to this site to download a complex 16-voice/channel arrangement of a fictional piece generated by Codex, not based on any music.
- Beethoven's 16-Voice Symphony No. 7 (Movement 2): Go to this website to download an advanced, highly complex 16-voice/channel arrangement of Beethoven's Symphony No. 7, Movement 2 in an
.abcfile to truly put this synthesiser's polyphony to the test.
- This project utilizes Sokol Audio for its core, minimal, cross-platform audio stream initialization and playback wrapper. Huge thanks to the creators of the Sokol headers for providing an exceptional utility for low-level audio streaming.