When Tim and I wrote the very first paper on Jamoma, Jamoma: a modular standard for structuring patches in Max for the ICMC 2006 conference, we stated that one of the benefits of a standardised way of creating modules in Max is that it “ensures inter-operability of modules so that they might be reused”. In the upcoming Jamoma 0.6 release, with its model-view-controller separation, this potential is further enhanced.
A filter or a limiter can come in handy in all sorts of audio processing models. Previously this caused us to implement limiters and their parameters several times over for different modules, in a way that could not be considered DRY (Don’t Repeat Yourself).
In Jamoma 0.6 it is possible to embed models in models, and the output~ model is one example that makes extensive use of this. It offers saturation and limiter master effects as well as stereo balance, and in 0.6 these functions are impemented by embedding the pre-existing saturation~, limiter~ and balance~ models:
The @amenities attribute, when set to none, ensures that the embedded models do not introduce additional audio/foo, preset/foo or view/foo parameters and messages of their own in the model. The result is a nice and clean namespace of parameters and messages, as can be seen from the pop-up menu of the output~.view: