forked from andrewrk/daw
digital audio workstation experimentation
- Zig 96.5%
- GLSL 3.5%
| shaders | fix zig shader | |
| src | swapchain: call deviceWaitIdle before recreating it | |
| .gitignore | update to zig 0.17.0-dev.1121+8f7febfa6 | |
| build.zig | fix zig shader | |
| build.zig.zon | update to zig 0.17.0-dev.1121+8f7febfa6 | |
| LICENSE | MIT license | |
| README.md | update dependencies to latest | |
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.
Short-Term Roadmap
- beep boop button
Medium-Term Roadmap
- sample browser
- drum sequencer
- reallocating when the shared memory runs out
- convert from using pixels as unit of measurement to ems
- allow adjusting DPI
- detect default DPI
Long-Term Roadmap
- 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