Contribution Guidlines
Getting Started
Legato has a flake.nix for nix users that makes it fairly easy to get started.
For non-nix users, you can use a modern (1.96+) Rust toolchain.
The simd feature is recommended for stronger performance, developers will need to use
a nightly toolchain > 1.96 for compatibility.
Contribution Guidelines
For more complicated functionality, please feel free to open an issue beforehand. This is to prevent any developers from spending significant time on features that maybe don't fit the overall plan or design of Legato.
Contributions are expected to pass CI, and all contributions are made under the LICENSE and ADDITIONAL_PERMISSIONS distributed with the repository.
AI Policy
AI tools can be useful in software and can help increase correctness and productivity, while making it more accesible to learn new technologies and concepts. I've found use in using AI for auditing my code, finding correctness or performance issues, generating tests, and making quick placeholder CLI and UI applications.
However, this project will set a few firm boundaries for AI usage:
- You are expected to understand your PR as if you yourself wrote it, anyone pushing slop content will be quickly banned from making similar contributions.
- DSP-related functionality will be even more strict. A lot of DSP code that LLMs have trained on comes from repositories that are not open source or permissive. DSP functionality should generally be clean-room implementations unless referencing a highly-permissive repository. I will be very skeptical reviewing DSP code from individuals that do not have a DSP, math, musical, or systems background.
- I am firmly against any sort of generative AI output aimed at replacing creatives. This project is open source, do as you please, but I don't want this project to highlight slop content when there are real creatives honing their craft every day.