I’m developing MetaCsound, a new plugin for Unreal that aims to integrate the audio signal processing engine Csound (csound.com) within the MetaSounds environment. This integration will result in a new set of available nodes for MetaSounds. When executed, they will create a new Csound instance, compile the input Csound file, and start processing the resulting audio.
I have the code uploaded in a git repository. It’s an Unreal Project with the MetaCsound plugin inside.
The core file, for now only a header file, can be found here:
Here’s a capture of how the new Csound node looks. It is the MMS_Wind graph asset in the GitHub project.
So far, I have been working with static vertex interfaces, which are working fine. However, I was wondering if it would be possible to create a node that, once a new Csound file has been set, reads the file and changes its vertex interface to match the number and names of Csound input and output audio and control channels. Looking at the FNodeFacade description, it says:
“FNodeFacade implements a significant amount of boilerplate code required to build a Metasound INode. FNodeFacade is particularly useful for an INode which has a static FVertexInterface and always creates the same IOperator type.”
So, it seems like creating a dynamic FVertexInterface could be possible. Any advice on this would be very helpful.
I think that the non-static metasound nodes comment refer to things such as the mixer node that has variants and as such may expose different vertex interfaces, but I think that when a node is registered they’re all ‘static’, I looked for examples of metasound nodes that are not completly static either in the engine code or elsewhere and couldn’t find any, really the only metasound node that exposes anything other than the k2 pins is the float input node, and this one uses a different slate widget.