The idea behind the current implementation of Jamoma is based on separating GUI from algorithm. Currently this is solved by having the algorithm in a separate file which is included in the module file containing the GUI. This is better than having everything in one patch, but I don’t think that we could say that the GUI is separated enough from the algorithm.
We have discussed this a bit over the last couple of days, and I have been trying to think about various ways of dealing with this problem. Conceptually, I think it would be interesting to have the possibility to have multiple GUIs to one algorithm:
This would make it possible to sometimes have a full-fledged GUI with access to everything, while other times just have some basic features. Similarly, I think it would be interesting to also have only one GUI that could could serve several different algorithms:
This could be practical when having multiple algorithms (e.g. reverb) that might have the same technical and/or perceptual features, since it allows for swapping the algorithm without having to do any remapping in the system.
If we succeed in creating a real separation between GUI and algorithm, it is also possible to have any number of GUIs and algorithms that could be mixed:
The biggest challenge, I think, is to create a set of namespaces that allow for this type of functionality.