Latent Gloves is a wearable Digital Musical Instrument (DMI) designed for the embodied exploration of neural audio latent spaces through hand gestures. The instrument combines a DIY glove-based controller, embedded sensor processing, and a neural audio synthesis engine based on the nn~ Max package to transform a vocal audio recording using a RAVE timbre transfer model.
This instrument was used in performances at:
- Interactive Digital Multimedia Techniques (IDMT) module concert from the Sound and Music Computing MSc at Queen Mary University of London, Dec 2025.
- AI Playground at Sónar+D, Barcelona, Jun 2026.
- NIME LATAM Gathering, at NIME 2026, London, Jun 2026.
TODO: Update with new prototype and lessons learned.
- Max 8 or later
- Arduino IDE
- nn~ Max Package
- Download pretrained RAVE model models by Shuoyang Zheng
- Place downloaded model in nn~ models folder
- Put the glove on and connect it via to the PC via USB
2. Connect MIDI Interface to PC (if additional control is wanted)
-
Open
Arduino/Latent_gloves/Latent_gloves.inoon Arduino IDE, select the Ardino Nano ESP32 board and click Upload. -
(Calibration) While holding the hand in a neutral, horizontal position with fingers extended and the palm facing the floor, run the code. The LED will start bliking. Wait until the blinking stops.
-
Open the Serial Monitor to check if the calibration ran without errors, you should be seeing the values of flexion in each finger and the pitch and roll angles updating.
-
Close Serial Monitor.
For playing, assuming everything is working correctly, you will only need to plug the glove, as the program is already saved in the board. Remember that everytime the board is turned on the calibration is triggered, so act accordingly, or manually trigger the calibration by pressing the reset button on the board.
-
Connect Glove to PC
-
Wait for Calibration to finish (wait until the blinking stops)
-
Ensuring the Serial Port is closed, open
Max/Latent Gloves.maxpatMax Patch in Max and follow instructions on screen.
- Max Patch is
Max/Latent Gloves.maxpatbased on examples of acid-ircam's nn~ Max Package - Pre-trained RAVE model downloaded from Shuoyang Zheng's pre-trained RAVE models
- Max Patch test
Max/Tests/Latent Gloves - regression test.maxpatis based on FluCoMa's tutorial, Controlling a Synth using a Neural Network - Arduino MPU6050 code in
Arduino/Latent_gloves/Latent_gloves.inobased on examples of Adafruit's MPU6050 library - Arduino Kalman filter code in
Arduino/Latent_gloves/Latent_gloves.inobased on Kristian Lauszus (TKJ Electronics) implementation

