/MOZLib

A set of pedagogical tools for MaxMSP, dedicated to introduce musicians to the world of computer-aided / algorithmic composition and programming.

OtherNOASSERTION

MOZ’Lib MOZ icon

MOZ’Lib is a Max package dedicated to computer-aided composition (or CAC). Its main purpose is to introduce the various problematics of CAC, programming and creation in general to young musicians between 9 and 99 years old. The library is made of several modules (or bpatchers) largely based on the bach ecosystem created by Andrea Agostini and Daniele Ghisi. Each of these modules represents a compositional idea or technique, allowing the user to interact through various graphical interfaces.

But that's just the tip of the iceberg ! In addition to those main modules, MOZ’Lib includes a system called PWforMax. Previously hidden in the background, PWforMax allows users to generate and run Lisp code in Max, and to work in real time with any library from the PatchWork / OpenMusic / PWGL family !

MOZ’Lib is developed by composer Julien Vincenot, initially as a commission from the project Ariane#, directed by the DRAC (Regional Directorate of Cultural Affairs) of Franche-Comté region and piloted by the Conservatory of Montbéliard. This new version, fully documented and translated into English, is part of Vincenot's doctoral research in composition at Harvard University, under the guidance of Hans Tutschku.

Developed since the beginning on macOS, MOZ'Lib and the PWforMax system it contains have been ported to Windows 10 in 2021 thanks to the invaluable help of Matteo Marson and Juan Vassallo :)

Using this library requires to install Cycling’74’s Max 7 or 8 for Mac or Windows — it will work without a licence (Runtime mode) but you won’t be able to save new patches ! MOZ’Lib makes an extensive use of the bach package, extended by the Common LISP language through SBCL (Steel Bank Common LISP), which is distributed with MOZ’Lib under GNU licence.

MOZ’Lib will remain free and open-source, just like the many pieces of CAC software it relies on. However if you enjoy this project very much and would like to buy me a beer, a pizza or a ticket for an exuberant art show or the last blockbuster movie, you can leave me a tip here. You can also contact me directly if you are interested to organize private lessons or collective courses on CAC with bach and MOZ'Lib.

If you want to be kept informed about future MOZ’Lib updates, just send an email to this address.


Dependencies:

MOZ'Lib includes the following open-source software :

  • shell object for Max by Jeremy Bernstein and Bill Orcutt
  • SBCL (Steel Bank Common Lisp), an open source Common Lisp compiler Note: MOZ'Lib contains an executable of SBCL 2.1.3 pre-compiled for macOS. New versions will be compiled when needed. In April 2022, this version is compatible with macOS Catalina and onwards.
  • the moz-complete.core used for PWforMax contains a modified version of several Lisp functions from Ircam's OpenMusic sources (based on PatchWork), as well as user libraries written for either PatchWork, OpenMusic or PWGL by Mikael Laurson (PW Constraints a.k.a. OMCS), Örjan Sandred (Cluster-Engine), Jean-Baptiste Barrière (Chréode), Kaija Saariaho (Transkaija), Jacopo Baboni Schilingi (JBS-CMI, JBS-Profile and JBS-Constraints), Torsten Anders (Cluster-Rules), and Frederic Voisin (Morphologie). The core also contains the ITERATE library by Jonathan Amsterdam and Andrea Fuchs and a modified version of Guy Steele's BACKQUOTE implementation in Common Lisp.

Note: All those are available in the sources subfolder, allowing users to recompile the core and add other libraries if they wish.


How to install MOZ'Lib :

ATTENTION: before installing/updating, make sure you don't have any past version of MOZ'Lib on your machine !

  1. Download and install the latest version of Max (ideally 8 but 7 works too) for Mac or PC

  2. Now start Max and install the last version of the bach, cage and dada packages from Max’s Package Manager (File menu in Max) or bach’s official website

    The minimum recommended version is bach 0.8.1, released in the fall 2019.

    If installing from the website, make sure to place the decompressed folders of bach / cage / dada into Max’s Packages folder

    on Mac : your_user_folder/Documents/Max 8/Packages/ (or equivalent for Max 7)

    on PC : C:\Windows\Users\your_name\Documents\Max8\Packages
       or C:\Windows\Users\your_name\OneDrive\Documents\Max8\Packages\




macOS install

  1. Copy the decompressed folder of MOZ’Lib in the Packages folder as well.

   IMPORTANT:

   — If you downloaded the GitHub version, after unzipping you got a MOZLib-master folder. DO NOT place this one in packages ! Instead, unzip the MOZLib.zip inside of it, then place the resulting MOZLib folder in Packages.

   — If you downloaded MOZLib from my website, just unzip and place the MOZLib folder in Packages.

   — If your system is macOS 10.13 or later it is possible that your Documents folder is actually located on iCloud Drive... PWforMax will not work in these conditions ! You will need either to disable iCloud Drive (at least for Documents and Desktop) or create a dummy Documents folder in your user folder (home), with the following directory structure :   your_user_folder/Documents/Max 8/Packages/   (you still put MOZLib in Packages obviously)

   VERY IMPORTANT:

   If your computer runs macOS 10.15 (Catalina) or above, MOZ'Lib will not be able to work in Max unless you remove it from the system quarantine by entering the following command in the terminal :   xattr -rd com.apple.quarantine ~/Documents/Max\ 8/Packages/ *  (substitute 7 with 8 if you still use Max 7 — don't forget the * symbol !) This operation is mandatory to use any package not distributed on Cycling'74's Package Manager.

  1. Restart Max and go to Extras menu -> MOZ'Lib -> PWforMax LISPTest to check everything went well.




Windows 10 or 11 install

  1. Install on Windows is slightly more complicated but following this separate install instructions pdf very carefully will ensure that everything works, including PWforMax and ~99% of Lisp-based functionalities.

   The whole install can take time, be patient it's a one time thing ! ;)

Unlike previous attempts to build a full installer for Windows user, tests on multiple machines and setups proved this project completely out of our reach. This is why we prefer now to ask users to be responsible for their own install of WSL - Windows subsystem for Linux) and SBCL. This way, installing future updates of MOZ'lib will also require a minimal effort !

   VERY IMPORTANT:

At some point in the procedure you will need to choose a username and password for WSL. Keep those preciously, you will need them later to compile and install SBCL as well as some other small install actions.




...and finally

  1. Go to the MOZ’Lib Intro patch in the Extras menu and… HAVE FUN !