CategorySoDA

The Social Distancing Application kit (SoDA) was developed as part of the Social D[ist]ancing research project to explore networked, music-related dance practice.

SoDA

An application kit for networked dance performance

Abstract

A component-based distributed system, SoDA enables networked dance practice and computer-assisted choreography for virtual interaction between human and non-human performers (including third-party software such as Wekinator, INScore, MaxMSP, etc). Using SoDA, participants in a networked rehearsal receive aural and visual cues in the form of sounds, verbal cues, and visual displays that correlate to specific actions or movements. Cues regarding relative positioning and movement quality (direction, weight, speed and flow as per Laban movement theory) as well as pre-composed sequences or routines are communicated via webcam, microphone input, or shared video playback. Through such cues, the system fosters co-creation in a networked performance space as developed by the ongoing artistic research project “[Social D[ist]ancing: Development of a networked artistic practice out of confinement](SoDA - An application kit for networked dance performance · NIME 2021)” at the University of Music and Performing Arts Vienna, which is working to leverage ML and integrate computer capabilities within networked music and dance practices.

The SoDA kit consists of a set of applications that communicate through a custom message broker application (AMEX) in a remote server. SoDA works parallel to video conferencing applications (Jitsy, Zoom, etc) to annotate, document and enhance the performer’s experience. A SoDA Node exchanges and translates messages between SoDA components and third-party applications such as INScore (GRAME) or Wekinator (Rebecca Fiebrink). An optional SoDA Point of View (PoV) component monitors temporal communication parameters –latency, clock offset– relatively to a designated ‘central observer’, adding artificial delays where necessary to fine tune the perceived synchrony of actions at that particular node.

SoDA Nodes exchange messages via TCP protocol across the network, but communication between the Nodes and other SoDA components as well as third-party software —typically running alongside each other in the same machine— uses Open Sound Control (OSC) over UDP. This network design provides flexibility to the SoDA mesh, while having the advantage of being extremely scalable – the specifically conceived AMEX application running in the server allows for a large number of SoDA nodes to interact seamlessly in real time.

Additional SoDA components include SoD4L, a MaxForLive device that serves as a bridge between Ableton Live and the SoDA mesh, and SoDATA, a standalone application used for sequence recall and choreography annotation in different human-readable formats.

Using the SoDA kit enables dance practitioners to harness the immediacy and scalability of computer systems for artistic experimentation, and allows them to tap into the potential of AI in a networked, distributed environment.

Credits

Adrián Artacho is currently a PhD candidate at the University of Music and Performing Arts of Vienna, researching the use of technology to enhance performance capabilities. He is also an active performer of live electronics either solo or in different configurations. As a composer, his interest in cross-media projects and dance in particular has led him to regularly collaborate with choreographers and to become founder of the dance companies Tanz.Labor.Labyrinth and SyncLab Tanzkollektiv. (adrian@neuesatelier.org)

Oscar Medina Duarte has many years of experience working on technological projects in the safety-critical domain (aviation, railway, …). His great interest in the performing arts brought him to an active role at NeuesAtelier where he is active as a technologist and software developer. As a technologist, his main interest is on the effects of the pervasive tecnification of society and the role of performing arts in a post-pandemic world. (oscar@neuesatelier.org)

Links

Here is a link to a video showcasing the use of the SoDA system by a team of artists-researchers in the context of the research project “Social D[ist]ancing: Development of a networked artistic practice out of confinement” at the University of Music and Performing Arts Vienna.

Here is the project public repository, including instructions for the installation and use of the Soda kit:

https://bitbucket.org/AdrianArtacho/soda-node/

Acknowledgements

The authors would like to thank Hanne Pilgrim, Mariama Diagne, Benedikt Berner, Katharina Püschel, Dalma Sarnyai, Magdalena Eidenhammer, Maximilian Resch and Maria Solberger for their participation in the evaluation and testing of the applications. It was their invaluable feedback that ultimately informed the design of the software. This work is supported by the Artistic Research Center and the Research Support department of the University of Music and Performing Arts Vienna.

Modules

Name Description
sod4l SoDA for Live (Max For Live device)
soda-node Basic SoDA network unit
soda-pov SoDA - point of view (latency management)
sodapink
sodata
soundcues Aural cues
videogrid Video collage tool
zoomkeeper Zoom Videoconference tool

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:

repo:SODA:node-neutral

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

repo:SODA:tcp-on

Now, select your participant ID:

repo:SODA:select-pid

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.

repo:SODA:drop-audiofile

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.

repo:SODA:internal-sid

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

soda-message-ecosystem

Quick message reference (pdf):

quick-reference