digital audio workstation experimentation
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-07-05 23:55:28 -07:00
src shader: remove inline workaround 2026-07-05 23:55:28 -07:00
.gitignore update to zig 0.17.0-dev.1121+8f7febfa6 2026-06-26 20:45:43 -07:00
build.zig depend on pulseaudio 2026-07-03 16:09:44 -07:00
build.zig.zon depend on pulseaudio 2026-07-03 16:09:44 -07:00
LICENSE MIT license 2024-08-30 22:35:06 -07:00
README.md readme 2026-07-05 22:33:27 -07:00

DAW Project

Digital audio workstation experimentation.

Status

Basic text rendering using Vulkan and libxcb (X11).

Building from Source

zig build run

On NixOS, I had to add these to my shell:

buildInputs = [
    vulkan-loader
    vulkan-validation-layers

    xorg.libxcb # if you use -fsys=x11
    wayland     # if you use -fsys=wayland
];

VK_LAYER_PATH="${pkgs.vulkan-validation-layers}/share/vulkan/explicit_layer.d";

Design Decisions

  • This project is just for fun.
  • No C++ dependencies, no exceptions, not even harfbuzz. Only Zig and C dependencies allowed.
  • No dependencies on system-installed plugins. No VST support. No LADSPA support. Actively sabotage the ability to interact with proprietary interfaces. Projects made with this application depend only on this software, no third parties.

Short-Term Roadmap

  • sample browser

Medium-Term Roadmap

  • drum sequencer
  • reallocating when the shared memory runs out
  • a way to visualize debug sounds, waveform/freq
  • convert from using pixels as unit of measurement to ems
  • allow adjusting DPI
  • detect default DPI

Long-Term Roadmap

  • don't hardcode stereo
  • cross-platform and safe effects and generator plugins via wasm JIT
  • peer-to-peer multiplayer editing
  • plugin, project, and sample sharing with a built-in community component