This project builds a very basic sound synthesizer.
- creating a window
- integrating a user interface framework (ImGui)
- hardware accelerated rendering with Metal
- Audio concepts like oscillators, envelopes, frequency shifter and low and highpass filters
All you need to follow along or just build this project is:
- Visual Studio Code
- XCode command line tools (not XCode itself)
- cloc to measure lines of code
The following VS Code extensions are also partly necessary:
In order to build the project clone this repository and update the submodule libs/imgui with
git submodule update --init
Then run sh build.sh ALL
once to get ImGui to build into an object file. Every subsequent build only requires
sh build.sh
In order to run execute
./synthesizer
Immediate mode user interface:
https://github.com/ocornut/imgui
The font I used to replace the standard ImGui font is Blender Pro Book
Fonts made from Web Fonts is licensed by CC BY 4.0