Zero-Copy Sound: How MXL Reinvents Audio Exchange for the Software-Defined Studio

The broadcast industry is undergoing a fundamental shift from hardware-centric systems to software-defined infrastructure, a move championed by initiatives like the EBU Dynamic Media Facility (DMF). At the heart of this transition lies the Media eXchange Layer (MXL), a high-performance data plane designed to solve the interoperability challenges of virtualized production. While MXL handles video through discrete grains, its approach to audio—via Continuous Flows—represents a sophisticated evolution in how compute resources exchange data using shared memory.

The Move from Sending to Sharing
Traditional IP broadcast workflows rely on a “sender/receiver” model involving packetization and network overhead. MXL replaces this with a shared memory model. In this architecture, media functions (such as audio processors or mixers) do not “send” audio; rather, they write data to memory-mapped files located in a tmpfs (RAM disk) backed volume known as an MXL Domain.
This allows for a “zero-overhead” exchange where readers and writers access the same physical memory, eliminating the CPU cycles usually wasted on copying data or managing network stacks. Continue reading

Schematic Semantics: Ethernet left or right side

The debate over whether an Ethernet port functions as a transmitter or a receiver on a schematic is the technical equivalent of the “toilet paper over or under” argument. It is a fundamental disagreement over orientation that often ignores the fact that the utility remains the same regardless of which way the roll is hanging.

Traditionally, schematics follow a rigid left-to-right flow: sources (transmitters) live on the left, and sinks (receivers) live on the right. This worked perfectly for analog audio or serial data where electricity moved in one direction. Ethernet, however, is a bidirectional transceiver technology. It is constantly “pushing” and “pulling” simultaneously, which breaks the traditional rules of drafting.

The Access vs. Consumption Debate

Many designers view the Ethernet switch as the “provider.” In this mental model, the switch is the source of connectivity, sitting on the left side of the page and “feeding” access to the edge devices on the right. The edge device is seen as the consumer of the network.

Conversely, others view the edge device as the “source” of the data itself. If a 4K camera is generating a video stream, that camera is the transmitter, and the switch is merely the consumer of that stream. In this scenario, the camera sits on the left, and the switch sits on the right.

Why It Is Like Toilet Paper

Just like the “over or under” debate, both sides have logical justifications that feel like common sense to the practitioner:

* The “Over” (Switch as Source) Argument

* It prioritizes infrastructure. Without the switch, there is no signal path.

* It follows the logic of power distribution, where the source of “energy” (in this case, data access) starts at the core.

* It treats the network as a utility, similar to a water main providing flow to a faucet.

* The “Under” (Edge as Source) Argument

* It prioritizes the payload. A switch with no devices has nothing to move.

* It maintains the “Signal Flow” tradition. If a microphone generates audio, it must be on the left, regardless of whether it uses an XLR or an RJ45 jack.

* It focuses on the intent of the system (e.g., getting video from a camera to a screen).

The Best Mechanism for Drafting

The shift in modern schematic design is moving away from seeing the switch as a “provider of access.” Instead of trying to force a bidirectional “highway” into a one-way “pipe” layout, the most effective designers are treating the switch as a neutral center point.

By placing the network switch in the center of the drawing, you acknowledge its role as a transceiver. You can then place “Signal Generators” (like cameras or microphones) to the left of the switch and “Signal Consumers” (like displays or speakers) to the right. This acknowledges that while the switch provides the “road,” it is the edge devices that provide the “traffic.”

Ultimately, as long as the drawing is consistent, it doesn’t matter if the “paper” is hanging over or under—as long as the data reaches its destination.

 

Rust Headless 96kHz Audio Console

Architecting a Scalable, Headless Audio Console in Rust

In the world of professional audio—spanning broadcast, cinema, and large-scale live events—the mixing console is the heart of the operation. Traditionally, these have been massive hardware monoliths. Today, however, the industry is shifting toward headless, scalable audio engines that run on standard server hardware, controlled remotely by software endpoints.

This article proposes the architecture for Titan-96k, a scalable, 32-bit floating-point audio mixing engine written in Rust. It is designed to handle everything from a simple podcast setup to complex 7.1.4 immersive audio workflows, controlled entirely via MQTT.

Continue reading

SCPI and VISA FLEET INVENTORY

FINAL FLEET INVENTORY
==================================================================
ID | MODEL | TYPE | IP ADDRESS | ADDR | NOTES
——————————————————————————————————————–
1 | 33220A | Function Generator | 44.44.44.33 | Direct | 20 MHz Arbitrary Waveform
2 | N9340B | Spectrum Analyzer | 44.44.44.66 | Direct | Handheld (100 kHz – 3 GHz)
3 | 33210A | Function Generator | 44.44.44.151 | Direct | 10 MHz Arbitrary Waveform
4 | DS1104Z | Oscilloscope | 44.44.44.163 | Direct | 100 MHz, 4 Channel Digital
5 | 34401A | Multimeter (DMM) | 44.44.44.111 | 4 | 6.5 Digit Benchtop Standard
6 | 54641D | Oscilloscope | 44.44.44.111 | 6 | Mixed Signal (2 Ana + 16 Dig)
7 | 34401A | Multimeter (DMM) | 44.44.44.111 | 11 | 6.5 Digit Benchtop Standard
8 | 34401A | Multimeter (DMM) | 44.44.44.111 | 12 | 6.5 Digit Benchtop Standard
9 | 34401A | Multimeter (DMM) | 44.44.44.111 | 13 | 6.5 Digit Benchtop Standard
10 | 6060B | Electronic Load | 44.44.44.111 | 22 | DC Load (300 Watt)
11 | 6060B | Electronic Load | 44.44.44.111 | 23 | DC Load (300 Watt)
12 | 66101A | DC Power Module | 44.44.44.111 | 30,0 | 8V / 16A (128W)
13 | 66102A | DC Power Module | 44.44.44.111 | 30,1 | 20V / 7.5A (150W)
14 | 66102A | DC Power Module | 44.44.44.111 | 30,2 | 20V / 7.5A (150W)
15 | 66103A | DC Power Module | 44.44.44.111 | 30,3 | 35V / 4.5A (150W)
16 | 66104A | DC Power Module | 44.44.44.111 | 30,4 | 60V / 2.5A (150W)
17 | 66104A | DC Power Module | 44.44.44.111 | 30,5 | 60V / 2.5A (150W)
18 | 66104A | DC Power Module | 44.44.44.111 | 30,6 | 60V / 2.5A (150W)
19 | 66104A | DC Power Module | 44.44.44.111 | 30,7 | 60V / 2.5A (150W)
20 | 34401A | Multimeter (DMM) | 44.44.44.222 | 1 | 6.5 Digit Benchtop Standard
21 | 34401A | Multimeter (DMM) | 44.44.44.222 | 2 | 6.5 Digit Benchtop Standard
22 | 34401A | Multimeter (DMM) | 44.44.44.222 | 3 | 6.5 Digit Benchtop Standard
23 | 34401A | Multimeter (DMM) | 44.44.44.222 | 5 | 6.5 Digit Benchtop Standard
24 | Unknown | Unknown | 44.44.44.222 | 10 | Connection Timed Out
25 | 54641D | Oscilloscope | 44.44.44.222 | 16 | Mixed Signal (2 Ana + 16 Dig)
26 | Unknown | Unknown | 44.44.44.222 | 18 | Connection Timed Out
27 | N9340B | Spectrum Analyzer | USB | Direct | Handheld (100 kHz – 3 GHz)

 

Continue reading

The Clocking Crisis: Why the Cloud is Breaking Broadcast IP

The Clocking Crisis: Why the Cloud is Breaking Broadcast IP

The move from SDI to IP was supposed to grant the broadcast industry ultimate flexibility. However, while ST 2110 and AES67 work flawlessly on localized, “bare metal” ground networks, they hit a wall when crossing into the cloud.

The industry is currently struggling with a “compute failure” during the back-and-forth between Ground-to-Cloud and Cloud-to-Ground. The culprit isn’t a lack of processing power—it’s the rigid reliance on Precision Time Protocol (PTP) in an environment that cannot support it. Continue reading

The Art of Media-tion: Bridging the Gap Between “Secure” and “Now”

The Art of Media-tion: Bridging the Gap Between “Secure” and “Now”

In the high-stakes world of modern infrastructure, two distinct tribes are forced to share the same territory.

On one side, the Network Team. They are the gatekeepers. Their priorities are clear: Security, Stability, and Standardization. They live by the firewall and die by the protocol. Continue reading

Why “Red” and “Blue” Are Misleading in Network Architecture

In network design, naming conventions matter. They shape how engineers think about systems, how teams communicate, and how failures are diagnosed. Among the more popular—but problematic—naming schemes are “red” and “blue” architectures. While these color-coded labels may seem harmless or even intuitive, they often obscure the true nature of system behavior, especially in environments where redundancy is partial and control mechanisms are not fully mirrored.

“When you centralize the wrong thing, you concentrate the blast… Resiliency you don’t practice – is resiliency you don’t have” – David Plumber

The Illusion of Symmetry

The use of “red” and “blue” implies a kind of symmetrical duality—two systems operating in parallel, equally capable, equally active. This might be true in some high-availability setups, but in many real-world architectures, one side is clearly dominant. Whether due to bandwidth, control logic, or failover behavior, the systems are not truly equal. Calling them “red” and “blue” can mislead engineers into assuming a level of redundancy or balance that simply doesn’t exist.

Why “Main” and “Failover” Are Better

A more accurate and practical naming convention is “main” and “failover.” These terms reflect the intentional asymmetry in most network designs:

  • Main: The primary path or controller, responsible for normal operations.
  • Failover: A backup that activates only when the main system fails or becomes unreachable.

This terminology makes it clear that the system is not fully redundant—there is a preferred path, and a contingency path. It also helps clarify operational expectations, especially during troubleshooting or disaster recovery.

The Problem with “Primary” and “Secondary”

While “primary” and “secondary” are common alternatives, they carry their own baggage. These terms often imply that both systems are active and cooperating, which again may not reflect reality. In many architectures, the secondary system is passive, waiting to take over only in specific failure scenarios. Using “secondary” can lead to confusion about whether it’s actively participating in control or data flow.

Naming Should Reflect Behavior

Ultimately, naming conventions should reflect actual system behavior, not just abstract design goals. If one path is dominant and the other is a backup, call them main and failover. If both are active and load-balanced, then perhaps red/blue or A/B makes sense—but only with clear documentation.

Misleading names can lead to misconfigured systems, delayed recovery, and poor communication between teams. Precision in naming is not just pedantic—it’s operationally critical.

Alternative Terminology for Primary / Secondary Roles

  • Anchor / Satellite
  • Driver / Follower
  • Coordinator / Participant
  • Source / Relay
  • Lead / Support
  • Commander / Proxy
  • Origin / Echo
  • Core / Edge
  • Root / Branch
  • Beacon / Listener
  • Pilot / Wingman
  • Active / Passive
  • Initiator / Responder
  • Principal / Auxiliary
  • Mainline / Standby