Skip to content

jrachele/zsynth

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GUI

ZSynth is a light-weight digital synthesizer audio plugin written in Zig. It uses Zig-friendly CLAP 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.

Releases

No releases published

Packages

No packages published