Dawproject is a format for exchanging user data between digital audio workstations (DAWs). This project is port of DAWproject in Rust.
You can easily read and write .dawproject files.
use dawproject::prelude::*;
// read dawproject file
let mut reader = DawprojectReader::open("assets/tests/canon.dawproject").unwrap();
reader.read_dawproject().unwrap();
// use it wherever you want
let dawproject = reader.build_dawproject().unwrap();
// Write
let mut writer = DawprojectWriter::create("assets/tests/copied_canon.dawproject").unwrap();
writer.write_dawproject(&dawproject).unwrap();- DAWproject
- Bitwig DAWproject repository
- DAWPROJECT XML Reference
- Bitwig DawProject XML Reference
- Project Document
- This project document
The published crate supports Rust 1.88 and newer. This repository pins Rust
1.99.1 so code generation and rustfmt output remain reproducible.
cargo buildNormal builds use the generated Rust models committed under src/generated/.
They do not run xsd-parser and do not require either submodule.
The xsd-parser submodule is pinned to commit
96299a06eb207b420c3ce03b6d07c41421f555b0 and is only needed when
refreshing the generated models. The source DAWproject schema is pinned to
upstream main commit ee4dcdde75940f30e14e55401a26955a58b8322b:
git submodule update --init --recursive
cargo run --manifest-path tools/codegen/Cargo.toml --lockedCommit changes under assets/ and src/generated/ together with any
intentional schema or generator update.