Startup & the Environment
Some things are not settings about your music at all. They exist for continuous integration, headless rendering — a file run that renders needs no audio device and opens no window — and benchmarking. They are resolved once at startup before any audio engine exists, and so they are flags and environment variables rather than data. Every knob, its flag and VSCode setting, and the rules they share are listed in Environment Variables.
A value resonon cannot read stops it starting
Section titled “A value resonon cannot read stops it starting”There is no fallback here that would not be a lie: a benchmark that quietly ran serial because of a
typo is worse than one that refused to run at all. It is the same answer the flag spelling already
gave — --multicore=ture has always been a usage error — and the environment spelling is not the
more forgiving of the two.
A location is ignored rather than fatal
Section titled “A location is ignored rather than fatal”RESONON_HOME and RESONON_STDLIB_PATH are the exception to that rule, because they name a
location rather than a value. A location has a safe default to fall back to, and the very
command you would run to find out what went wrong prints it — so an unusable one is ignored, the
default stands, and the startup says so, rather than leaving you unable to start at all over a
stale line in a shell profile. An env typo must not be able to cost you a set.
Both must be absolute, and that is the load-bearing half: everything below the home hangs off it
and the whole standard library hangs off the other, so a relative value would be a different library
for every directory you happened to start in — the terminal in ~/songs, the editor’s language
server at your workspace root, a render launched from the Finder.
Past that they differ, and the difference is between a folder resonon makes and one it only reads — the same split Live draws between its Library and a Place. A home that is not there yet is how a second rig is set up; a standard library that is not there is not a standard library.
Locations are settled once
Section titled “Locations are settled once”Both are settled once, when the process starts, and the answer is kept for as long as it runs — so the home cannot move under a running session because something appeared or went away on disk. It is the same trade Live makes: it works out where its Library is at launch, gives you the default when it cannot use the one it was told about, and does not run a set on a Library it already knows it cannot write to.
Either way, resonon config paths prints the directory that was actually taken — and tags the
standard library line with RESONON_STDLIB_PATH only when the variable was applied, so it cannot
claim an override that was refused.
Startup checks before it claims anything
Section titled “Startup checks before it claims anything”Startup reads ~/.resonon/preferences.toml before the command branches, so resonon config paths
and the plugin scan see the same folders a session does, and resonon setup edits the file that was
just read without opening an audio device of its own. It resolves the project before the audio
device, so a piece that belongs to no project — or one written for a newer resonon — says so without
first claiming an interface and putting a window on screen. The steps are listed under
Startup Sequence.
Related
Section titled “Related”- Environment Variables — every knob and its flag
- Home & Search Paths — the
~/.resononlayout - The Machine and the Piece — where the other kinds of setting live