VST3 host and Tauri
| File | Contents |
|---|---|
lib.rs |
Public API: instantiate, PluginProcessor, PluginController, PluginState, ParamInfo, MidiEvent, TransportInfo, Gesture. |
module.rs |
Loading bundles and talking to the plug-in factory; PluginDescriptor. |
scan.rs |
Finding VST3 bundles on disk. |
plugin.rs |
The types of a plug-in instance: PluginProcessor, PluginController, MidiEvent, TransportInfo, PluginState. |
plugin/instantiate.rs |
Instantiation and the split into an audio-thread processor and a main-thread controller. |
plugin/processor.rs |
The audio-thread half: process. |
plugin/controller.rs |
The main-thread half: parameters, state, editor. |
plugin/multi_out.rs |
Output buses past the main one, and activating them while playing. |
process.rs |
Preallocated audio-thread COM objects: parameter change queues and event lists. |
host.rs |
Host-side COM objects: IHostApplication, IComponentHandler, messages and attribute lists. |
stream.rs |
In-memory IBStream for state save and restore. |
editor_linux.rs |
X11 editor windows and the IRunLoop bridge. |
editor_macos.rs |
macOS editor windows (NSWindow, its delegate, main-queue hops). |
editor_other.rs |
Placeholder editor for Windows. |
macos.rs |
CFBundle handling for loading bundles on macOS, and dyld error messages. |
keys.rs |
Keys a plug-in editor doesn’t use, passed on to the app (set_key_forwarder; macOS key codes to KeyboardEvent names). |
util.rs |
String helpers. |
src-tauri/src
Section titled “src-tauri/src”| File | Contents |
|---|---|
main.rs |
Startup (scan subprocess mode, GDK_BACKEND, plug-in cache, settings, CLI project path), the tick thread, the idle timer, MIDI refresh, autosave, command registration. |
commands.rs |
The Snapshot, the edit / try_edit / edit_made wrappers, get_state, undo, redo. |
commands/*.rs |
Every other Tauri command, by what it acts on: transport, tracks, regions, arrangement, takes, plugins, automation, project, bounce, settings (also the update check’s app_version and open_release_page), sampler. All are reachable as commands::<name>. |
menu.rs |
The native menu bar: its spec, set_menu_state (ticks, enabled, labels, shown keys, greyed submenus), radio items on GTK, Quit, Window and Help, gtk_key_names. |
schemas.rs |
Linux: finds GTK’s file chooser schema at startup (ensure_file_chooser_schema) and file_dialog_problem, asked before every file dialog. See File dialogs. |
settings.rs |
settings.json: Settings, UiPrefs, PluginPrefs, tolerant parsing. |
recent.rs |
recent.json and the Project Chooser’s recent list. |
glib_loop.rs |
Linux: runs plug-in editor file descriptors and timers on GTK’s main loop. |
windows.rs |
Detached panel windows: opening, focusing and closing them, broadcast_snapshot, menu routing to the focused window. |
crash.rs |
A last autosave when the app panics on the main thread. |
Marbble is released under the MIT licence.Source on GitHub.