1
0
Fork 0
forked from hanez/xtc
xtc/README.md

64 lines
2.3 KiB
Markdown
Raw Normal View History

2026-10-26 23:03:17 +01:00
# xtc — a lightweight, modular DAW
2026-10-26 22:51:25 +01:00
`xtc` is a new, energyXT-inspired digital audio workstation project. It is not a clone and contains no energyXT source code or assets.
2026-10-26 22:51:25 +01:00
## Design decisions
- **Modular engine first:** sequencer, instruments, effects, mixers and I/O are nodes in one processing graph.
- **C core:** project model, graph, DSP and audio engine are implemented in C.
- **FLTK/C++ GUI:** C++ is confined to the graphical interface and calls the core through a C API.
- **Linux first:** keep backend-specific details behind an interface.
- **Small increments:** build and test each milestone before adding features.
## Current status
This repository is a starter scaffold, not a production DAW. It currently provides:
- a small C library/API;
2026-10-26 23:20:00 +01:00
- a mono graph model with port validation, cycle rejection and topological ordering;
- compiled offline plans with preallocated buffers, sine oscillator, gain, meter and output nodes;
- C tests for deterministic rendering, routing, validation and lifecycle;
2026-10-26 22:51:25 +01:00
- an optional FLTK GUI shell;
- architecture, format, GUI, roadmap, and decision documents.
Real audio-device integration, recording, MIDI, plugin hosting, project persistence, and the actual sequencer UI are not implemented yet.
## Build
Requirements: a C compiler, a C++ compiler, GNU Make, and `pkg-config`. FLTK is optional for the core and tests.
```sh
make
make test
```
`make` also builds `build/xtc-check`, a headless core startup/shutdown
2026-10-26 23:03:17 +01:00
check. Use `make debug` for a separate debug build and test run. See
[docs/BUILD.md](docs/BUILD.md) for the inspected toolchain and baseline limits.
2026-10-26 22:51:25 +01:00
Build the optional FLTK GUI if FLTK is installed:
```sh
make gui
```
Run the GUI:
```sh
./build/xtc
2026-10-26 22:51:25 +01:00
```
The current GUI is only a shell and does not yet produce sound. The core's offline graph test is the first executable audio-processing milestone.
Clean generated files:
```sh
make clean
```
## Suggested first agent task
Read `AGENT.md` and `docs/ARCHITECTURE.md`. Inspect the existing implementation, run `make test`, and report gaps before adding the next feature. Do not jump directly to plugin hosting or a full sequencer.
## License
The project is scaffolded under the MIT License; see `LICENSE`. Review the licenses of any future dependencies before distribution.