https://github.com/jrachele/zsynth
Synthesizer plugin written in Zig
https://github.com/jrachele/zsynth
audio bitwig clap dsp plugin synthesizer vst zig
Last synced: about 2 months ago
JSON representation
Synthesizer plugin written in Zig
- Host: GitHub
- URL: https://github.com/jrachele/zsynth
- Owner: jrachele
- License: mit
- Created: 2024-12-07T00:09:20.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2025-02-09T04:35:21.000Z (4 months ago)
- Last Synced: 2025-04-14T08:09:52.495Z (about 2 months ago)
- Topics: audio, bitwig, clap, dsp, plugin, synthesizer, vst, zig
- Language: Zig
- Homepage:
- Size: 710 KB
- Stars: 12
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

ZSynth is a light-weight digital synthesizer audio plugin written in [Zig](https://github.com/ziglang/zig).
It uses
Zig-friendly [CLAP](https://github.com/free-audio/clap) [bindings](https://git.sr.ht/~interpunct/clap-zig-bindings), and
leverages ImGui to render the plugin GUI.## Features
- Very lightweight CPU load
- 2 oscillators powered by anti-aliased wave tables: Sine, Saw, Triangle, Square
- Intuitive GUI with accurate visual of waveform
- Biquad filter with low pass, high pass, and band pass
- ADSR with flexibility within a time domain of 0ms to 20s
- Optional compile-time embedding of wave tables with `-Dgenerate_wavetables_comptime`
- No oversampling.## Planned Work
This is just a hobby project / proof of concept for now, but I have some grand designs regardless:
- Custom wave table integration
- On-board delay and reverb## Installation
### Prerequisites
- ZSynth requires Zig nightly. It was last tested with version `0.14.0-dev.2546+0ff0bdb4a`
- Git### Steps
1. Clone the repository with `git clone https://github.com/jrachele/zsynth.git`
2. Run `zig build -Doptimize=ReleaseFast` to generate the CLAP plugin. It will be in the `zig-out/lib` folder.
- Optionally, if you want to embed the wave tables into the binary directly at compile time, run
`zig build -Doptimize=ReleaseFast -Dgenerate_wavetables_comptime=true` instead.
3. The build process should move the resulting `ZSynth.clap` plugin to your DAW's CLAP plugin folder.