
DESCRIPTION
VOID Shared Memory is a local real-time communication infrastructure designed to connect Ableton Live, Max / Max for Live and TouchDesigner through an ultra-lightweight shared memory with very low latency.
The system is based on a unified memory architecture (V2) defining a strict contract shared across all implementations (audio-rate, message-rate, Jitter and TouchDesigner). This contract guarantees a deterministic memory layout, a secure invalidation mechanism (epoch), a real-time heartbeat (frame counter), and robust communication between processes running on the same machine.
Data is written and read directly in local memory, without OSC, without a network stack, without MIDI and without any intermediate transport layer. This approach removes transport overhead and ensures stable, direct and high-performance transmission, suitable for live performance, audiovisual systems, installations and experimental prototyping.
The project takes the form of a coherent set of technical building blocks developed through in-house research and development at Structure Void, and designed and implemented by Julien Bayle at a low-level systems layer.
The package includes ready-to-use Max for Live devices — VOID envFollower, VOID freqAnalysis, VOID 8params, VOID 8notes, VOID sync and VOID receiver — as well as Max externals (writer / reader in audio and message rate), Jitter objects and TouchDesigner CHOP operators, all developed in C++ and strictly compliant with the same memory contract.
VOID Shared Memory is not a closed or monolithic tool, but a complete and modular technical foundation, designed as a direct infrastructure between systems — reflecting a structured R&D process fully developed in-house.
ARCHITECTURE & POSITIONING
VOID Shared Memory is not a simple bridge between applications, but a deterministic local memory infrastructure designed for demanding real-time systems. Unlike approaches based on OSC, MIDI or network protocols (UDP / TCP), the system relies on a strict shared memory contract between processes running on the same machine, without any intermediate transport layer.
The V2 architecture defines a common header (magic, version, channels, length), an explicit invalidation mechanism (epoch) for handling structural changes safely, and a real-time synchronization counter (frame) acting as a heartbeat. Every implementation — Max audio-rate, message-rate, Jitter or TouchDesigner — strictly complies with this contract, ensuring full consistency between reading and writing.
The model is intentionally constrained: linear memory, deterministic layout, no serialization, no dynamic negotiation. This design prioritizes robustness, predictability and minimal latency over generic flexibility. The goal is not to replace existing network pipelines, but to provide a direct local alternative when stability, temporal coherence and deterministic real-time behavior are critical.
VOID Shared Memory therefore acts as an extensible technical foundation, capable of integration into other real-time environments (VCV Rack, openFrameworks, Processing, custom engines, etc.) via the same memory contract. The architecture is designed to remain simple, explicit and reproducible, ensuring identical behavior regardless of the integration context.
CONNECTORS
VOID SHM is protocol-first.
Connectors implement the same memory contract (Header V2) across different environments.
Each implementation strictly complies with the header structure, the epoch mechanism and the frame-based synchronization logic.
Max Package (V2.x)
Includes native externals (.mxo / .mxe64):
- void.sm.writer (message-rate writer)
- void.sm.writer~ (audio-rate writer)
- void.sm.reader (message-rate reader)
- void.sm.reader~ (audio-rate reader)
- jit.void.sm.writer (Jitter writer)
- jit.void.sm.reader (Jitter reader)
- void.sm.info (header inspection / metadata)
- void.sm.state (connection / epoch state monitoring)
Native C / C++ implementation based on mmap / POSIX shared memory (macOS) and the Windows equivalent.
Deterministic memory layout, explicit handling of structural changes (epoch++) and controlled invalidation.
Platforms:
macOS (Intel / Apple Silicon)
Windows (x64)
Distributed as a Max Package.
TouchDesigner Connector (V2.x)
Includes:
- Custom CHOP reader
- Strict Header V2 compliance
- Epoch-aware automatic reconnection
- Deterministic channel mapping
- Frame-synchronized reading
C++ plugin using the same memory structure as the Max package, ensuring full cross-application consistency.
Platforms:
macOS (Intel / Apple Silicon)
Windows (x64)
Distributed as a TouchDesigner plugin.
Future / Experimental Connectors
- openFrameworks
- VCV Rack
- Standalone C++ applications
- Additional real-time environments
All connectors must strictly comply with the Header V2 and the memory contract defined by the protocol.
LEARN MAX & MAX FOR LIVE
Many Structure Void participants develop their own Max for Live devices to design audio effects, MIDI sequencers, MIDI tools for Live (generators, transformations), instruments, or generative control and modulation systems inside Ableton Live. These approaches rely on mastering Max, Max for Live and the Ableton Live ecosystem, enabling the creation of custom systems tailored to performance, artistic production and installation contexts.
If you wish to learn how to design this type of module, we offer dedicated training programs covering both fundamentals and advanced Max and Max for Live workflows.
You can visit our training page for more information:
Formations Ableton Live, Max, RNBO, Max for Live, Live AV, Arduino, Synthèse sonore
And in particular the pages dedicated to Max and Max for Live.
Compatibility Note
VOID Shared Memory includes universal binaries for Max externals and TouchDesigner operators (Apple Silicon + Intel).
However, due to current limitations related to Max for Live freeze mechanisms and host architecture handling, Max for Live devices are officially supported only on Apple Silicon systems running Ableton Live natively.
Max standalone externals and TouchDesigner plugins operate normally on both architectures.
This limitation is technical and host-related, not a restriction of the underlying code. It may evolve in future versions.
TECHNICAL CHARACTERISTICS
Local inter-application communication between Live, Max, TouchDesigner and other compatible environments
Bidirectional transmission of continuous parameters, envelopes, triggers and arbitrary data
Direct memory access without OSC, MIDI, network stack or serialization
Minimal latency through deterministic memory layout
Unified architecture (V2) with common header, epoch handling and real-time heartbeat
Native C++ implementations (audio-rate, message-rate, Jitter, TouchDesigner)
Designed for performative systems, installations and multi-application architectures
CREDITS
Programmed by Structure Void / Julien Bayle
VOID Sync

VOID sync Max for Live Device is part of the VOID Shared Memory suite and allows Ableton Live’s temporal synchronization data to be sent to TouchDesigner — transport, phase and global timing — enabling visual or generative systems to be tightly locked to musical time, without MIDI, OSC or network-based protocols.
VOID 8notes

VOID 8notes Max for Live Device is part of the VOID Shared Memory suite and allows eight selectable MIDI notes in Ableton Live to be converted into eight independent envelope signals, which are then sent to TouchDesigner in real time without MIDI, OSC or network-based protocols. Each note generates its own envelope, with attack and release parameters controlling the temporal shape of the signal. This makes the device suitable for rhythmic envelope-driven modulation, structured event shaping and tightly synchronized audiovisual behaviors derived directly from Live’s musical material.
VOID freqAnalysis

VOID freqAnalysis Max for Live Device is part of the VOID Shared Memory suite and allows audio frequency analysis data extracted in Ableton Live to be sent to TouchDesigner in real time, enabling frequency-driven control of visual or generative systems without MIDI, OSC or network-based protocols. The device provides band-based energy analysis derived from audio signals in Live, making it suitable for audio-reactive visuals, spectral modulation and tightly coupled audiovisual behaviors across low, mid and high frequency ranges.
VOID 8params

VOID 8params Max for Live Device is part of the VOID Shared Memory suite and allows up to eight continuous parameters generated in Ableton Live to be sent to TouchDesigner in real time, enabling precise and flexible control of visual or generative systems without MIDI, OSC or network-based protocols. The device exposes eight independent control streams designed for real-time modulation, mapping and automation, making it suitable for structured parameter control, complex audiovisual mappings and tightly coupled Live–TouchDesigner workflows.
VOID envFollower

VOID envFollower Max for Live Device is part of the VOID Shared Memory suite and allows audio amplitude data extracted in Ableton Live to be sent to TouchDesigner in real time, enabling envelope-driven control of visual or generative systems without MIDI, OSC or network-based protocols. The device provides a continuous envelope signal derived from audio sources in Live, making it suitable for dynamic modulation, audio-reactive visuals and tightly coupled audiovisual behaviors.
VOID receiver

VOID receiver Max for Live Device is part of the VOID Shared Memory suite and allows arbitrary data sent from TouchDesigner to be received directly inside Ableton Live, enabling real-time control and modulation workflows without MIDI, OSC or network-based protocols. Incoming data streams can be mapped to four real-time parameters using the Max for Live Live Object Model, allowing control either through automation or modulation, and making the data immediately usable inside Live’s native parameter system.
WOULD YOU LIKE TO LEARN MAX & MAX FOR LIVE?
Many Structure Void trainees develop their own Max for Live devices in order to design audio effects, MIDI sequencers, MIDI tools for Live (generators, transformations), instruments, or generative control and modulation systems within Ableton Live. These approaches rely on a solid understanding of Max, Max for Live and the Ableton Live ecosystem, enabling the design of custom devices adapted to creative, performance or installation contexts.
If you would like to learn how to design this type of modules, we offer dedicated training programmes covering both the fundamentals and advanced uses of Max and Max for Live.
You can visit our training page for more details:
https://structure-void.com/training
In particular, see the pages dedicated to Max and Max for Live.
Compatibility Notes
VOID Shared Memory provides universal binaries for the Max externals and TouchDesigner connectors (Apple Silicon + Intel, macOS and Windows x64 where applicable).
However, due to current limitations related to the Max for Live freeze mechanism and host-level architecture handling, the Max for Live devices are officially supported only on Apple Silicon systems with Ableton Live running natively.
The Max externals used in Max standalone, as well as the TouchDesigner plugins, operate normally on both Intel and Apple Silicon architectures (and Windows x64).
This constraint is purely host-related and does not reflect a limitation of the underlying shared memory implementation. The core Header V2 architecture remains cross-platform and deterministic. Support may evolve with future host updates.
TECHNICAL FEATURES
- Local inter-application communication between Live, Max, TouchDesigner and other compatible environments
- Bidirectional transmission of continuous parameters, envelopes, triggers and arbitrary data
- Direct memory access without OSC, MIDI, network stack or serialization
- Minimal latency enabled by a deterministic memory layout
- Unified Architecture (V2) with shared header, epoch handling and real-time heartbeat
- Native C++ implementations (audio-rate, message-rate, Jitter, TouchDesigner)
- Designed for performative systems, installations and multi-application real-time architectures
CREDITS
Developed by Structure Void / Julien Bayle
VOUS SOUHAITEZ APPRENDRE MAX FOR LIVE ?

