OverviewWoMax (OMax without OpenMusic) is a experimental version of the virtual improviser OMax, freed from the non real time Lisp part of it and adding an interactive visualisation.
OMax, designed and developed by G. Assayag, G. Bloch, M. Chemillier in collaboration with S. Dubnov, combines two computer music environments: Max/MSP (real time graphical programming environment) and OpenMusic (composition graphical programming environment based on a Lisp core) to learn style features and co-improvise with a musician. Recently, the team has issued MoMax, a modular version of OMax.
- Factor Oracle, the core of OMax knowledge is directly included in the Max/MSP environment with external objects.
- A new visualisation of the internal knowledge is provided using Jitter which allows a feedback on its functioning.
Thanks to the unity of the programming environment (Max/MSP/Jitter exclusively), WoMax has also been made more reactive compared to OMax and MoMax and refines the interaction possibilites with the virtual improviser.
Here is an diagram of the current WoMax architecture:
ExternalsTo port Factor Oracle into Max/MSP, 9 external objects have been developed for Max5. Two of them implement structures to hold the data sequence (Data object) and the graph of Factor Oracle (Oracle object). The other objects are meant to write, read and browse both structures as shown in the following diagram:
A full documentation of the C/C++ code can be found here.
VisualisationWith extensive use of Jitter, WoMax adds a visualisation of Factor Oracle. Based on a growing linear timeline representing the input sequence, bezier curves and arc diagrams show and allow to explore Factor Oracle. It strongly highlight pattern repetitions and high level structures giving an orientation map to drive the improviser.
Here is an example of the visualisation:
MoMaxMoMax is a modular version of OMax recently developed. It uses the same (Max/MSP) patches and (Lisp) code as the original OMax but it is organised with consistent modules which order follows the conceptual workflow of the improviser. Aiming to be a development version, it voluntary drops some advance features of OMax for the sake of clarity. But its modular structure allows to test some changes in chosen modules or try new knowledge models without rebuilding the whole software.
Here is a capture of MoMax main patch: