Hey,
I am working on project that needs an interface for modular components that involves connecting nodes and edges. I have looked at the plugin host demo, but needed some more features.
Searching through this forum, there seem to be an interest in such component, so, I am sharing the one I created.
The code of the component and a demo application is available on Github:
This is almost creepy - Iāve been working on this exact same thing the last week or so. Your solution is more complete than mine, so Iāll look into seeing if I can contribute anything to yours and likely migrate everything over to your system - pending one issueā¦
You seem to have licensed the code as GPL, so unfortunately that reduces its usefulness for a large number of JUCE devs (such as myself) pursuing commercial applications. Any chance of changing the license to a permissive one, such as MIT or BSD?
I have also written a system like this. However, Iāve never figured out how to serialize it, because XML type structure is not well suited to graphs. Do you have a way to encode the data model for this component in a ValueTree?
Thank you for sharing, Hossam. Iām also working on a node editor in JUCE, and Iām curious if it might be possible to integrate node classes directly into JUCEās core library. There seems to be growing interest in creating node-based applications, and considering the success of tools like Blenderās Geometry Nodes and Shaders, Unrealās Blueprints, and Godotās Orchestrator, this could save others from reinventing the wheel. I believe you used the Audio Plugin Host (JUCE/extras/AudioPluginHost/Source/UI at master Ā· juce-framework/JUCE Ā· GitHub) from JUCE as a starting Point. This also maybe a good start to merge it into the JUCE core framework.
Hey rbdr, yes this is one of my private projects i am currently working on. i designed it in Figma and started to merge each single Module back into C++ inside JUCE. Some nice details i already added like changing values with wheels and touch gestures in combination with key modifiers.
There are also some few new Modules and UI changes available.
Unfortunately i donāt have much time to work on it, so i just spend two days on the design and another on the first JUCE implementation. Thatās why i asked for a possible Node framework inside JUCE.
Impressive design!
So are those pics only Figma screenshots for the moment?
Still, the design, breaking things into classified parts etc is a big part of the development process.
It goes easier when actually implementing them next (guess, ideally there should be some āskinā description āscriptā that gets C++ generated or something like that to make complex controls coding easier)
The second last Screenshot with the changing Values is a real Implementation in C++ and JUCE. And yes it needs a kind of UI Architecture to work systematic in order to easily modularize the Node Modules and share UX and UI behavior over all Components, but that should be easy doable.
Itās not a āsplitā, you just connect any source to any destination and if you want to remove a connection you hold ctrl and right click and draw through a connection like in Blender.