About me

Welcome to my website. At the moment this is still a work in progress…






The TESSER environment is composed of a number of MaxForLive devices designed for real-time midi manipulation.


This environement is developed and mantained by Adrian Artacho.


  • Rename the other repos called TesserAkt, including the Live sets, which do not have anything to do with the current meaning of TesserAkt now...

  • Complete documentation

  • <Tesser_function> like, making leise notes loud and the louder leise... values in/values out

SoDA node

SoDA application kit

This code repository also hosts the documentation and help files of the set of applications included in the Social Distancing Applications kit (SoDA), developed by Adrián Artacho. The standalone programs has been written in MaxMSP, while the message broker (AMEX) is C# programm written by Oscar Medina Duarte. The build standalone for the SoDA node can be downloaded here.

Required externals:

From the CNMAT package:

  • OSC-route.mxo

Computer Vision for Jitter (Jean-Marc Pelletier)

  • cv.jit.resize.mxo
  • cv.jit.track.mxo

Probabilistic Models by Jules Francoise:

  • mubu.mxo
  • mubu.gmm.mxo
  • mubu.hhmm.mxo

From the Ejies library:

  • zsa.descriptors.mxo

SoDA ecosystem

The SoDA ecosystem is composed by a network of SoDA node applications in addition to standalone components that add some features to the system. The local standalone components communicate by means of OSC messages with the SoDA node, and the individual nodes exchange messages via TCP protocol with the AMEX.md message broker application usually running in a remote server.

  • OSC messages (Description of the SoDA message ecosystem)
  • AMEX.md (Message broker program running in the remote server)

Standalone applications

  • SoDA node is the main application you will need to participate in a networked performance session.

  • SoDA pov (This application monitors and corrects latency problems)
  • SoDATA

Max for Live devices

  • SoDA for Live (SoD4L) is a M4L object that acts as a bridge between Ableton Live and the SoDA-node standalone.

SoDA node

This are the instructions for the installation and use of the SoDA-node application. The installation process will be different between Mac and Windows operating systems.

Download SoDA node

The toolkit heavily relies on the MuBu lib developed by the ISMM team at IRCAM. This a Max/MSP library that is free (only to register to the IRCAM forum: http://forumnet.ircam.fr/product/mubu-en/.)

SoDA-node v.1.5 Standalones (2021.03.26)

For Mac OS:

: SoDA-node-standalone-v1.5_Max8-MacOS-10-13-6

For Windows:

: SoDA-node-standalone-v1.5_Max8-Windows7

Note for Windows' users: you need to install Visual Studio 2015 Redistributable Package to have MuBu working! Once downloaded, add the Mubu library into the ext-libs folder within the GST.

Last step: in MaxMSP add all the toolkit to your file preferences:

Options > File Preferences

Installation in Mac operation systems

  1. First you will need to download the appropriate version from the Downloads page to your Desktop.
  2. Uncompress the .zip file by double clicking on it.
  3. Move the uncompressed file (SoDA-node.app) to your Applications folder (optional)
  4. Lauch it as you would with any other application and enjoy!

→ (error) If your computer protests that the application is broken / corrupted / or from an unknown developer, you may solve with a little line in your computer Terminal:

  1. Open your Terminal application (⌘CMD + SPACEBAR to open Spotlight, then type terminal)
  2. Write the following:

xattr -cr /Applications/SoDA-node.app

Installation in Windows operation systems

  1. First you will need to download the appropriate version to your Desktop.
  2. Uncompress the .zip file by double clicking on it.
  3. Lauch it as you would with any other application and enjoy!

Using the SoDA-node application (both operating systems)

Using the program is pretty straightforward. Once the remote server is on (which can also be done from the SoDA pov application),
hit connect button:


Then, the application should show the status "connected" and the toggle "tcp on".


Now, select your participant ID:


If we are going to use audio for the session, make sure to drop the audiofile (.wav, .mp3 etc.) in the rectangle on the right.


You will know that a connection is established with the POV application when your internal SID number appears near your Participant ID. You will also see a red blink at the top corner right whenever 'pinged' by the POV Application.


Set your volume level as you like with the horizontal slider, but make sure to leave the audio ON (the speaker symbol on the left) if we are going to be working with audio.

OSC messages


Quick message reference (pdf):





Here is the links to the live.device (OS-agnostic):

TransForms M4L device

[comment]: # ( TransForms standalone (MacOS) )

(*) In order to have polyphonic Pitch Bend, the Max For Live device needs to be used together with additional routing devices.

work in progress... - - -

OSC messages to & from TransForms App

OSC messages from the PolytempoNetwork App to the TransForms App use the port 22574 and these are the ones implemented so far:

TransForms app (OSC port IN 22574)



This Patch is part of the TESSER environment.



This device allows to block selectively different kinds of midi data.



The settings can be stored with the device/set. They can also be automated.


This device is a derivative patch largely taken from AbletonDrummer's object.


  • document device
  • Add feature to print in maxwindow specific kinds of cc input
  • Extended feature: block specific notes which are set using the gesture CC. This is practical, for example, if you are playing the keyboard and whant to block the area where the hands are from playing new notes, etc.


This Patch is part of the TESSER environment.



This device is analogous to an autotune effect, only with midi. It takes midinotes and allows to substitute the entered midinote number and/or velocity with alternative CC values entered via CC86 and CC87.


View of the device. Click here) to edit.


Here is a full description of the functions associated to CC messages within the TESSER environment.

override pitch The entered pitch will be substituted by the last entered CC86 value.

override velocity The entered velocity will be substituted by the ;ast entered CC87 value.

auto AllNotesOff When this toggle is on, a note off (vel = 0) will cause a 0 123 message to be sent to all 16 midi channels.


  • document
  • how does a gesture gets stored, and then recalled one by one in a loop? The device should accept (and store) a gesture string, possibly via CC90