Development

Model-View-Controller separation in Max using Jamoma

The joint ICMC|SMC|2014 Conference, Athens, Greece 14.09.2014 19.0020.09.2014 23.00

Published

T. Lossius, T. de la Hogue, P. Baltazar, T. Place, N. Wolek & J. Rabin (2014): Model-View-Controller separation in Max using Jamoma. Proceedings of the joint 40th International Computer Music Conference & 11th Sound and Music Computing Conference, Athens.

T. Lossius, N. Wolek, T. de la Hogue & P. Baltazar (2014): Demo: Using Jamama’s MVC features to design an audio effect interface. Proceedings of the joint 40th International Computer Music Conference & 11th Sound and Music Computing Conference, Athens.

Alpha versions of Jamoma 0.6 are currently available.

 

Paper: Model-View-Controller separation in Max using Jamoma

by Trond Lossius (BEK), Theo de la Hogue (GMEA), Pascal Baltazar (L’Arboretum), Tim Place (74objects LLC), Nathan Wolek (Stetson University) and Julien Rabin (GMEA)

Absctract

The Model-View-Controller (MVC) software architecture pattern separates these three program components, and is well-suited for interactive applications where flexible human-computer interfaces are required. Separating data presentation from the underlying process enables multiple views of the same model, customised views, synchronisation between views, as well as views that can be dynamically loaded, bound to a model, and then disposed. Jamoma 0.6 enables MVC separation in Cycling’74 Max through custom externals and patching guidelines for developers. Models and views can then be nested for a hierarchal structuring of services. A local preset system is available in all models, along with namespace and services that can be inspected and queried application-wide. This system can be used to manage cues with modular, stringent and transparent handling of priorities. It can also be expanded for inter-application exchange, enabling the distribution of models and views over a network using OSC and Minuit. While this paper demonstrates key principles via simple patchers, a more elaborate demonstration of MVC separation in Max is provided in [1].

Demo: Using Jamama’s MVC features to design an audio effect interface

by Trond Lossius (BEK), Nathan Wolek (Stetson University), Theo de la Hogue (GMEA) and Pascal Baltazar (L’Arboretum)

Absctract

The Model-View-Controller (MVC) software architecture pattern separates these three program components, and is well-suited for interactive applications where flexible human-computer interfaces are required. Separating data presentation from the underlying process enables multiple views of the same model, customised views, synchronisation between views, and views that can be dynamically loaded, repurposed, and disposed.

The use of MVC is widespread in web applications, but is far less common in interactive computer music programming environments. Jamoma 0.6 enables MVC separation in Cycling’74 Max, as presented in [1]. This demonstration will examine the development of a multi-band equaliser using these recent additions to Jamoma. This review of the design process will serve to highlight many of the benefits of MVC separation.