Rage Against The Glue: Beyond Run-Time Media Frameworks with Modern C++
Résumé
We identify a set of issues with the current abstraction systems for media objects and introduce a methodology to solve these issues, associated with a sample implementation in the Avendish library. This methodology is based on the limited reflection features available in recent C++ versions, unlike the existing systems which are overwhelmingly based on class-based inheritance or other run-time affordances of the language. We propose using a simple subset of the C++ object model to define media processor's metadata and interface declaratively: this subset can be reflected in order to generate the binding code to various plug-in interfaces such as VST, the Max or Python API, and automatically generate UI code or OSC APIs at compile-time. Unlike existing systems and frameworks, our proposed method has the advantage of being non-intrusive. The media processors do not need to inherit from existing base classes or be part of a framework: they can be written without even having to include any specific header.
Domaines
Informatique [cs]Origine | Fichiers produits par l'(les) auteur(s) |
---|---|
Licence |