Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Investigate co-simulation #88

Open
ggkountouras opened this issue May 31, 2022 · 0 comments
Open

Investigate co-simulation #88

ggkountouras opened this issue May 31, 2022 · 0 comments

Comments

@ggkountouras
Copy link

Investigate support for co-simulation API for audio plugins

Motivation

Many audio plugins feature detailed simulations of analog equipment (oscillators, filters, etc.). A host could provide a modular environment to load those simulations and patch them together, in a similar manner to analog hardware (e.g. Eurorack). While some hosts today provide these environments, they have several limitations. In particular, audio rate modulation is not guaranteed and feedback loops have at least 1 sample of delay.

Background

The Functional Mock-up Interface (FMI) is a standard that enables exchange of dynamic models. Binaries as well as C code can be included in the model described. There is some support for real-time simulation. Generally, this is considered a requirement in audio plugins that will be used during live performance.

Advantages

Disadvantages

  • Performance concerns
    • Calls into a model require chasing 2 pointers: the extension pointer, then the function pointer (C-style vtables).
    • Optimizations that are theoretically possible won't be in practice, as commercial plugins will hide their internals in binary form.
  • FMI abstractions don't necessarily map into legacy plugin (VST3, etc.) abstractions.
  • Models/hosts may have to ship iterative solvers.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants