Project Layout
A project is the folder holding resonon.toml, and everything below it. resonon new and
resonon init create one; their flags are in the
CLI reference.
Files and folders
Section titled “Files and folders”my-song/├── resonon.toml the manifest├── resonon.lock exact dependency commits├── src/│ ├── main.non a piece's entry point│ └── lib.non a library's entry point├── lib/ your own modules├── kits/ sampler kits that travel with the project├── scales/ Scala tunings├── dependencies/ installed packages├── native/ a native extension's Rust crate├── bin/ a native extension's built libraries├── renders/ renders and MIDI exports├── plugin-state/ plugin states from save_project├── README.md├── LICENSE└── .gitignore| Path | Holds | Created by | Written by |
|---|---|---|---|
resonon.toml | The manifest | new, init | install, update, remove, collect, kits remove, you |
resonon.lock | The lock file | install | install, update, remove |
src/main.non | The entry point resonon run runs | new, init | you |
src/lib.non | The module a package’s users import | new --lib, --native | you |
lib/ | Modules found by use | you | you |
kits/ | Kits found by Kit("…") | new --kit (with .gitkeep), collect | collect, you |
scales/ | .scl files found by load_scala | you | you |
dependencies/<name>/ | One installed package each | install | install, update, remove |
native/ | Cargo.toml and src/lib.rs of the extension | new --native | you |
bin/ | The extension’s library, built by resonon build | new --native (with .gitkeep) | build |
renders/<name>_<date>_<time>/ | One render or midi_export call | render, midi_export | the same |
plugin-state/ | Plugin states | save_project | save_project |
README.md, LICENSE | A readme; the MIT licence with the current year | new, init | you |
.gitignore | dependencies/ and renders/; with --native also native/target/ and the built libraries in bin/ | new, init | you |
new and init also run git init, unless the folder is already inside a git repository.
resonon.lock is not ignored: commit it.
The layout of a render and of the plugin-state/ folder is in
Levels & Files. Where modules, kits and scales are
searched for is in Home & Search Paths.
File types
Section titled “File types”| Extension | What it is | Read | Written |
|---|---|---|---|
.non | resonon source | Run, use | — |
.toml | resonon.toml, kit.toml, preferences.toml | At start and on use | resonon.toml by the package commands |
.lock | resonon.lock | install | The package commands |
.wav | Audio | Samples, kits | render, track.save, clip.save |
.scl | Scala tuning | load_scala | — |
.glsl | GLSL fragment shader | gfx.load_shader | — |
.mid | Standard MIDI File | — | midi_export |
.png | Image | — | screen >> "file.png", render(screen, n) |
.preset | A plugin’s state, JSON | load_project, load_state | save_project, save_state |
A kit folder without a kit.toml has its .wav files found by name
(kit.toml).