Skip to content

fix: Persist and restore VST3 and WAM plugin instance state with projects #1793

@ChuxiJ

Description

@ChuxiJ

Problem

Plugin preset/project state persistence is incomplete. VST3 state manager exists but is only referenced by tests, VST3 preset actions are mostly UI state, native state commands are not exposed through Tauri, and WAM instances live in a non-persisted store.

Root Cause

Plugin runtime state and project persistence were implemented in separate layers without a unified project serialization contract.

Solution

  • Define project schema for VST3/WAM instances, parameters, bypass, order, and state blobs.
  • Wire VST3 state save/load through bridge/Tauri where applicable.
  • Persist WAM instance state and restore on project load.
  • Add migration/backward compatibility for projects without plugin state.

Verification

  • Add save/reload tests for VST3 and WAM plugin chains.
  • Add E2E project reload scenario with plugin state preserved.
  • Verify missing plugin handling is user-visible and non-destructive.

Files to Touch

  • src/services/vst3bridge/VST3StateManager.ts
  • src/store/vst3Store.ts
  • src/store/wamStore.ts
  • src/types/project.ts
  • src/services/projectStorage.ts
  • src-tauri/src/commands/plugin.rs

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions