/synthesizer

Primary LanguageObjective-C++

Audio Synthesizer

This project builds a very basic sound synthesizer.

Topics covered in this project

  • 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

What you need

All you need to follow along or just build this project is:

VS Code extensions

The following VS Code extensions are also partly necessary:

How to build and run

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

Further links

Immediate mode user interface:
https://github.com/ocornut/imgui

Font used

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