Skip to content

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.

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
PathHoldsCreated byWritten by
resonon.tomlThe manifestnew, initinstall, update, remove, collect, kits remove, you
resonon.lockThe lock fileinstallinstall, update, remove
src/main.nonThe entry point resonon run runsnew, inityou
src/lib.nonThe module a package’s users importnew --lib, --nativeyou
lib/Modules found by useyouyou
kits/Kits found by Kit("…")new --kit (with .gitkeep), collectcollect, you
scales/.scl files found by load_scalayouyou
dependencies/<name>/One installed package eachinstallinstall, update, remove
native/Cargo.toml and src/lib.rs of the extensionnew --nativeyou
bin/The extension’s library, built by resonon buildnew --native (with .gitkeep)build
renders/<name>_<date>_<time>/One render or midi_export callrender, midi_exportthe same
plugin-state/Plugin statessave_projectsave_project
README.md, LICENSEA readme; the MIT licence with the current yearnew, inityou
.gitignoredependencies/ and renders/; with --native also native/target/ and the built libraries in bin/new, inityou

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.

ExtensionWhat it isReadWritten
.nonresonon sourceRun, use—
.tomlresonon.toml, kit.toml, preferences.tomlAt start and on useresonon.toml by the package commands
.lockresonon.lockinstallThe package commands
.wavAudioSamples, kitsrender, track.save, clip.save
.sclScala tuningload_scala—
.glslGLSL fragment shadergfx.load_shader—
.midStandard MIDI File—midi_export
.pngImage—screen >> "file.png", render(screen, n)
.presetA plugin’s state, JSONload_project, load_statesave_project, save_state

A kit folder without a kit.toml has its .wav files found by name (kit.toml).