Repository files navigation
the cpu-side of the project should be as uninteresting as possible: just a solid base for management
initial project decisions
language: C++
version: 2014
coding style:
PascalCase for types and namespaced enum values
camelCase for functions/methods
all primitive types should be from with "std::" omitted
(exception) floating point types should stick to float or double
all enums should be backed by a int32_t
all functions should return either bool for success/failure, pointer to constructed object (where nullptr is failure) or void if status is irrelevant
avoid inheritance
stick to data in structures and regular functions that operate on data
the rest can be assumed from the repo's code
build system: meson
api selection: Vulkan
audio backend(s): Miniaudio and if necessary later, platform-specific backends
shader tooling: SPIR-V first , but other languages planned (see VULKAN.md )
Vulkan loader (of course)
on macOS, it would be possible to prefer KosmicKrisp over MoltenVK if available (better Vulkan support on top of Metal 4)
SDL3 (windowing, input, platform abstraction)
Miniaudio (for simple audio API)
Dear ImGUI (simple immediate mode UI)
Vulkan Memory Allocator (GPU memory allocation management)
json (nlohmann/json) (for ease of use when managing processors and save data)
About
GPU-based DAW using Vulkan
Resources
License
Stars
Watchers
Forks
You can’t perform that action at this time.